The design behind our ISKOnnect logo tells its own story:
The "i" in the Middle — It's more than just a letter. Shaped like a pencil, it stands for the tools that every Iskolar uses to write, create, and learn. Simple but meaningful, just like the students who use them.
The Book/Files in the Background — Look around the "i" and you'll see books or files coming together. This shows what ISKOnnect is about — students sharing what they know, helping each other out with resources they've made themselves.
The Owl — Up at the top sits an owl, known everywhere as a symbol of wisdom. But for us PUPians, it means something more. Those tired but determined eyes? They're for every Iskolar pulling all-nighters, proving that real learning doesn't stop when the sun sets. It's a friendly nod to everyone who's ever said "one more chapter" at 3 AM.
ISKOnnect is a desktop application made for PUP students to help each other excel in their studies. Think of it as a digital library made by students, for students — where everyone can share reviewers, notes, and practice tests.
To make studying more fun and rewarding, we've added badges and titles that students can earn by sharing good study materials. When you start sharing, you're a "Fresh Contributor." Share more helpful reviewers and you could become a "Junior Mentor" or even reach the "PUP Hall of Famer" status.
The best part is how easy it is to find what you need. Everything is listed by college and course, so Engineering students can find Math reviewers right away, while Communication students can get writing guides quickly. Plus, students can upvote materials they find helpful, so you know which ones work best.
ISKOnnect showcases inheritance through several layers — but let us break down the most important ones.
First, let's look at our User class. Instead of creating separate user types from scratch, we built a foundation that all users share:
// Path: src/main/java/com/iskonnect/models/User.java
public abstract class User {
private String strUserId;
private String strFirstName;
private String strLastName;
private String strEmail;
private String strUserType; // STUDENT or ADMIN
public String getFullName() {
return strFirstName + " " + strLastName;
}
}Both students and admins need these basic details, so they inherit from this base class. It's like having a template — why write the same code twice? For example, the Student class adds points and badges on top of these basics, while Admin gets special moderation powers.
Next up is our view structure. Take a look at how both student and admin interfaces share a common layout in base.fxml:
<!-- Path: src/main/resources/fxml/student/base.fxml -->
<BorderPane>
<left>
<!-- Common sidebar for navigation -->
<VBox>
<Text fx:id="fullNameText" />
<Text fx:id="idText" />
<Button fx:id="logoutButton" />
</VBox>
</left>
<center>
<!-- This is where specific content goes -->
<VBox fx:id="contentArea" />
</center>
</BorderPane>Both student and admin views inherit this layout, but each adds its own special elements — students see their materials grid and upload options, while admins get their moderation tools. It's like having a house blueprint where you can add different furniture based on who lives there!
This approach really shows the DRY (Don't Repeat Yourself) principle in action. Instead of copy-pasting the same navigation code or user properties everywhere, we write it once and let inheritance do the heavy lifting. For instance, when we need to add a new feature to all users, we just update the parent User class, and both students and admins automatically get the update — pretty neat, right?
Look at the login controller — it checks the user type and sets the appropriate root:
// Path: src/main/java/com/iskonnect/controllers/LoginController.java
public void handleLogin() {
if (user.getUserType().equals("ADMIN")) {
Main.setAdminRoot();
} else {
Main.setMainRoot(); // For students
}
}Each type gets its own specialized view, but the underlying logic stays the same. It's like having a single front door that leads to different rooms based on who's walking in!
This inheritance setup makes our code cleaner and easier to maintain. When we want to add new features or fix bugs, we know exactly where to look — no more hunting through duplicate code or wondering which copy to update. It's all organized and connected through inheritance, just like a well-planned family tree!
- Create an account using your student number
- Look for materials in your college or course
- Download materials you need
- Share your own reviewers and earn rewards
- Upvote and bookmark materials that helped you
- Check reported materials
- Keep track of users
- Look at how students use the app
- Remove reported materials or ban users
- CURADA, John Paul M.(Project & Backend Lead)
- ZARAGOZA, Marie Criz (Front-End Lead)
- LUCERO, Ken Audie S. (Backend Developer)
- FAELDONIA, Elias Von Isaac R. (Front-End Java Programmer)
- OJA, Ma. Izabelle L. (Front-End Java Programmer)
- GENTE, Daisyrie I. (Designer)
- RACELIS, Michael Richmond V. (Designer)
-
Check if you have these installed
# For Java java --version # Should be 23 # For Maven mvn --version # Should be 3.9.9
-
Get the code running
# Get the files git clone https://github.com/JpCurada/iskonnect.git cd iskonnect # Set things up mvn clean install
-
Start the app
mvn javafx:run
Contact us if you need our keys for database and storage (pa-ready gcash ^^)
- Polytechnic University of the Philippines
- PUP College of Computer and Information Sciences
- COMP 20083 Course
- Master Chris Piamonte (#CPP)






