A robust and scalable Java + MySQL course registration system with a clean separation of concerns using the DAO design pattern. It supports multi-role access for Admins, Students, and Instructors, offering real-time student enrollments, course management, and academic record viewingβall from a command-line interface!
π Role-Based Access
πΎ MySQL Database Integration
π§± Modular Architecture (DAO, Models, Utils)
ποΈ Interactive Command-Line Interface
This project is ideal for:
Layer | Technology |
---|---|
Language | Java (JDK 8/11/17+) |
Database | MySQL |
Design Pattern | DAO (Data Access Object) |
Connection | JDBC |
UI | Console (CLI) |
IDE | Eclipse |
com.course_registration/
βββ dao/ # DAO interfaces
βββ daoimpl/ # JDBC implementations
βββ model/ # Data models (POJOs)
βββ util/ # DBConnection utility
βββ main/ # MainApp.java (Entry point)
Role | Permissions |
---|---|
π¨βπΌ Admin | Manage students, instructors, courses, departments, enrollments |
π©βπ Student | View & enroll in courses, view enrolled courses |
π¨βπ« Instructor | (Extensible) View assigned courses, enrolled students |
Tables:
students
courses
departments
instructors
enrollments
Relational structure using foreign keys ensures referential integrity.
π Welcome to Course Registration System
Login as:
Sample Admin Action: Add Student > Name: Praveen | Email: praveen@gmail.com | Dept ID: 1 β Student added!
Sample Student Action: Enroll in Course > Course ID: 101 | Semester: Fall 2024 β Enrollment successful! π· Screenshots / Demo (Optional)
π§Ύ SQL Dump
CREATE TABLE students ( studentId INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), departmentId INT, FOREIGN KEY (departmentId) REFERENCES departments(departmentId) );
π Security Notes β Plain password inputs (Consider using hashed passwords in future)
β PreparedStatements used (prevents SQL Injection)
π Role-based access control enforced in MainApp.java
π οΈ Setup Instructions
Clone Repository
git clone https://github.com/JerishRaj/course-registration-system.git
cd course-registration-system
Create MySQL DB CREATE DATABASE course_registration; β Run schema.sql here Update DB Credentials Edit DBConnection.java with your DB username/password.
Compile & Run
javac com/course_registration/main/MainApp.java java com.course_registration.main.MainApp
π§± Future Roadmap β DAO Layer β Role-specific login β Modular code
π Coming Soon:
JavaFX / Swing GUI
Instructor dashboard
Enrollment status tracking
Email notifications
RESTful API (Spring Boot)
π‘ Learning Outcomes JDBC CRUD operations
MySQL foreign key usage
Multi-class CLI interaction
MVC + DAO layering
Reusable code principles
π€ Contributing Pull requests are welcome! Open issues or suggestions to improve features or add enhancements.
π’ You can contribute by:
Adding GUI with JavaFX
Extending instructor features
Writing unit tests with JUnit
π§βπ» Author Developed with β€οΈ by [D A JERISH MARY SAHANA] π§ Email: jerishraj25@gmail.com π GitHub: JerishRaj
π Star the Repo If this project helped you, please consider starring π the repository. It helps others discover it and shows your support!