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.π
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). π¨
- Java (Servlets)
- JDBC (MySQL/PostgreSQL)
- HTML / CSS
- Apache Tomcat
- NetBeans IDE
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 πΌ
The codebase follows a practical layered structure:
-
Model Layer (
com.university.model) Represents domain entities likeStudent,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.
- Login with role selection (
studentorlecturer) and you can log even if not registered - Session-aware dashboard experience
- Logout support with redirect handling
- 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)
- Select a course and update:
- Instructor
- Schedule
- Secure update handling with validation feedback
- Recently updated courses panel for quick visibility
- Course updates are tracked with timestamp metadata
- Update visibility is scoped to meaningful users/flows
- Designed around a 24-hour update window concept
- Glassmorphism-inspired cards
- Dark/light theme toggle
- Smooth hover states and subtle micro-interactions
- Responsive layout for desktop/tablet/mobile
- β Java (Servlet API / JSP)
- ποΈ JDBC
- π¬ MySQL
- π Apache Tomcat
- π§± HTML5 / CSS3 / JavaScript
- π οΈ NetBeans (recommended) or any Java web IDE
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
The portal uses three core tables:
StudentsCoursesStudentCourse(many-to-many mapping)
This design supports:
- Student enrollment across multiple courses
- Course reuse across multiple students
- Efficient joins for personalised schedule loading
### 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`
---- 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.
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
Contributions are welcome! If you improve UI, validations, or data flow logic, feel free to open a PR. π
Licensed under the MIT License.
See LICENSE for details.
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