Skip to content

s-kumalo0115/UniversityPortal

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“βœ¨ University Portal β€” Premium Java EE Campus Experience

πŸ“– Project Description

The University Portal is a web-based Java application with JDBC database integration, designed for students and faculty.

  • Students can view personalized course schedules.
  • Faculty can update course details like instructors and schedules.
    This multipage portal demonstrates dynamic, database-driven web functionality with secure, role-based features.πŸš€
image

🌟 What is this project?

University Portal is a full-stack web application for managing core academic workflows between:

  • πŸ‘©β€πŸŽ“ Students (view personal schedules and course data)
  • πŸ‘¨β€πŸ« Lecturers/Faculty (update course instructor and schedule details)

It combines strong backend fundamentals (MVC-style layering, DAO pattern, prepared statements) with a modern, animated UI (glassmorphism, dark/light mode, transitions, responsive layout). 🎨


πŸ› οΈ Technologies Used

  • Java (Servlets)
  • JDBC (MySQL/PostgreSQL)
  • HTML / CSS
  • Apache Tomcat
  • NetBeans IDE

🧠 Why this project is cool

This isn’t just a CRUD demo β€” it’s an end-to-end campus portal with:

  • βœ… Role-based navigation and access behavior
  • βœ… Session-driven login/logout flow
  • βœ… Dynamic student schedule retrieval
  • βœ… Faculty update workflows with server-side validation
  • βœ… Recently-updated course visibility logic
  • βœ… Mobile-friendly, premium UI experience

This project gives is a real-world baseline, because it is project based on Java web development and demonstrating full-stack architecture πŸ’Ό


πŸ—οΈ Architecture Overview

The codebase follows a practical layered structure:

  • Model Layer (com.university.model) Represents domain entities like Student, Course, Faculty, and update metadata.

  • DAO Layer (com.university.dao) Handles all SQL/database interactions using PreparedStatement only for safe, parameterized queries.

  • Servlet Layer (com.university.servlet) Coordinates HTTP request handling, validation, role checks, session state, and view forwarding.

  • View Layer (web/*.jsp) Renders student/faculty/login/dashboard pages with responsive, themeable UI.

  • Static Assets (web/css, web/js) Styling, animations, theme toggle, and UI interactions.


πŸš€ Core Features

πŸ” Authentication & Session Flow

  • Login with role selection (student or lecturer) and you can log even if not registered
  • Session-aware dashboard experience
  • Logout support with redirect handling

πŸ‘©β€πŸŽ“ Student Experience

  • Enter Student ID to load personalized schedule and Student ID's start from 1 to 4 (use only one degit)
  • View student profile details (name, email)
  • See updated modules relevant to enrolled courses
  • Friendly validation and empty-state handling (no ugly null values)

πŸ‘¨β€πŸ« Lecturer Experience

  • Select a course and update:
    • Instructor
    • Schedule
  • Secure update handling with validation feedback
  • Recently updated courses panel for quick visibility

πŸ•’ Recent Updates Logic

  • Course updates are tracked with timestamp metadata
  • Update visibility is scoped to meaningful users/flows
  • Designed around a 24-hour update window concept

🎨 Premium UI/UX

  • Glassmorphism-inspired cards
  • Dark/light theme toggle
  • Smooth hover states and subtle micro-interactions
  • Responsive layout for desktop/tablet/mobile

🧰 Tech Stack

  • β˜• Java (Servlet API / JSP)
  • πŸ—„οΈ JDBC
  • 🐬 MySQL
  • 🌐 Apache Tomcat
  • 🧱 HTML5 / CSS3 / JavaScript
  • πŸ› οΈ NetBeans (recommended) or any Java web IDE

πŸ—‚οΈ Project Structure (High Level)

UniversityPortal/
β”œβ”€β”€ dist/UniversityPortal.war
β”œβ”€β”€ src/java/com/university/
β”‚   β”œβ”€β”€ dao/
β”‚   β”œβ”€β”€ model/
β”‚   β”œβ”€β”€ servlet/
β”‚   └── util/
β”œβ”€β”€ web/
β”‚   β”œβ”€β”€ WEB-INF/web.xml
β”‚   β”œβ”€β”€ css/style.css
β”‚   β”œβ”€β”€ js/app.js
β”‚   β”œβ”€β”€ index.jsp
β”‚   β”œβ”€β”€ login.jsp
β”‚   β”œβ”€β”€ student.jsp
β”‚   β”œβ”€β”€ faculty.jsp
β”‚   β”œβ”€β”€ courses.jsp
β”‚   └── error.jsp
β”œβ”€β”€ gitignore.txt
β”œβ”€β”€ build.xml
└── README.md

πŸ›’οΈ Database Schema (Concept)

The portal uses three core tables:

  • Students
  • Courses
  • StudentCourse (many-to-many mapping)

This design supports:

  • Student enrollment across multiple courses
  • Course reuse across multiple students
  • Efficient joins for personalised schedule loading

βš™οΈ Setup Guide

### 1) Clone the repo

cd UniversityPortal


### 2) Configure database

- Create/import your MySQL schema and seed data.
- Update DB credentials in:
  - `src/java/com/university/util/DBConnection.java`

### 3) Add JDBC driver

- Add MySQL Connector/J to your web project libraries.
- In NetBeans: **Project Properties β†’ Libraries β†’ Add JAR/Folder**.

### 4) Run on Tomcat

- Use Tomcat 9+.
- Deploy and run project from IDE or build tool.

### 5) Open app

Typical local URLs:

- `http://localhost:8080/UniversityPortal/index.jsp`
- `http://localhost:8080/UniversityPortal/login`
- `http://localhost:8080/UniversityPortal/student`
- `http://localhost:8080/UniversityPortal/faculty`
- `http://localhost:8080/UniversityPortal/courses`

---

πŸ§ͺ Validation & Quality Notes

  • SQL calls are structured around prepared statements.
  • UI handles blank/empty states gracefully.
  • Role access behavior is validated in servlet flow.
  • Session + update visibility logic implemented across views.

πŸ›£οΈ Suggested Future Improvements

If I want to level this up even further:

  • πŸ”’ Password hashing and real authentication provider
  • 🧾 Audit trail table for persistent update history in DB
  • πŸ“Š Lecturer analytics dashboard
  • πŸ”” Notification center for students
  • πŸ§ͺ Automated tests (JUnit + integration tests)
  • 🐳 Dockerized local environment for one-command setup

🀝 Contributing

Contributions are welcome! If you improve UI, validations, or data flow logic, feel free to open a PR. πŸ™Œ


πŸ“„ License

Licensed under the MIT License. See LICENSE for details.


πŸ’¬ Final Note

This project is a strong demonstration of combining classic Java EE architecture with modern UX expectations. If you present this in a portfolio, highlight:

  • your MVC layering
  • role-based behavior
  • DB-safe query handling
  • and polished frontend execution

🌐 Website Link

About

A Web app where students view personalised schedules and lecturers manage course instructor/schedule updates.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 64.1%
  • CSS 23.2%
  • JavaScript 12.7%