π Course Enrollment System A Complete Spring Boot + Thymeleaf + PostgreSQL Web Application
A full-stack Course Enrollment Web Application built using Spring Boot, Thymeleaf, and PostgreSQL. The system supports Admin & User portals, secure role-based access, course management, enrollment requests, approval/rejection workflows, and detailed dashboards.
π Demo Video (LinkedIn) π https://shorturl.at/aNTSQ
β’ Browse available courses β’ View course details with icons β’ Login / Register
[ Search / Filter Courses ]
Clean, modern layout with gradient background
π¦ Browse Courses π¦ My Enrollments π¦ Enrollment History π¦ Profile Settings π¦ Logout
π Manage Courses ποΈ Enrollment Requests π₯ Manage Users βοΈ Settings π Logout
π System Roles & Access Control π¨βπΌ Admin Role (ROLE_ADMIN)
Admins are registered via service layer using a dedicated admin registration logic.
Capabilities
π Add / Update / Delete Courses
ποΈ Approve or Reject Enrollment Requests
π₯ View & Manage Users
π€ Profile, Password Update, Logout
π€ User Role (ROLE_USER) Capabilities
π Browse available courses with icons
βοΈ Send enrollment requests
β³ Track Pending / Approved enrollments
π§Ύ View complete enrollment history
π€ Profile management & logout
π οΈ Admin Registration Logic (Important)
Admins are not hardcoded and not manually assigned via DB.
β Service Layer Approach
βοΈ This ensures:
Secure role assignment
No duplicate entity for Admin
Same StudentEntity used for both roles
π οΈ Tech Stack Layer Technology Backend Spring Boot 4.0 Frontend Thymeleaf + Bootstrap 5 Database PostgreSQL Security Spring Security (Role-Based Access) Spring Tool Suit ποΈ Database Setup (PostgreSQL) 1οΈβ£ Configure Database Connection
src/main/resources/application.properties
spring.datasource.url=jdbc:postgresql://localhost:5432/course_enroll spring.datasource.username=postgres spring.datasource.password=your_pg_password spring.jpa.hibernate.ddl-auto=update
π How to Run the Project
1οΈβ£ Import project into IntelliJ / Eclipse /STS 2οΈβ£ Ensure PostgreSQL is running 3οΈβ£ Update application.properties 4οΈβ£ Run Spring Boot application 5οΈβ£ Open browser:
π Project Structure CourseEnrollmentSystem/ β βββ src/main/java/ β βββ hello/security/main/ β βββ controller/ β βββ entities/ β βββ repository/ β βββ service/ β βββ src/main/resources/ β βββ templates/ # Thymeleaf HTML files β βββ application.properties β βββ README.md
β Feature Matrix Role Features Admin Manage Courses, View Requests, User Management Admin Approve / Reject Enrollments User Browse Courses, Send Requests User Enrollment History Shared Secure Login, Logout, Role-Based Access π± Future Enhancements
π© Email / OTP Notifications
π³ Payment Integration for Premium Courses
π Advanced Course Search & Filters
π Admin Analytics Dashboard
π¨βπ» Author
Haris Khatti π Demo Video: https://shorturl.at/aNTSQ
π License
This project is created for educational and demo purposes.