Skip to content

Hariskhatti/Course-Enroll-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 

Repository files navigation

πŸŽ“ 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

🌐 UI Preview (Design Concept) 🏠 Home Page πŸŽ“ COURSE ENROLLMENT SYSTEM

β€’ Browse available courses β€’ View course details with icons β€’ Login / Register

[ Search / Filter Courses ]

Clean, modern layout with gradient background

πŸ“Š User Dashboard πŸ‘€ Welcome, Student

🟦 Browse Courses 🟦 My Enrollments 🟦 Enrollment History 🟦 Profile Settings 🟦 Logout

πŸ› οΈ Admin Dashboard πŸ‘‘ Admin Control Panel

πŸ“š 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:

http://localhost:8080/

πŸ“ 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors