Student_Course_Registration

πŸŽ“ Course Registration System

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!

πŸš€ Quick Glance

πŸ”’ Role-Based Access
πŸ’Ύ MySQL Database Integration
🧱 Modular Architecture (DAO, Models, Utils)
πŸŽ›οΈ Interactive Command-Line Interface

πŸ“Œ Use Cases

This project is ideal for:

🧠 Tech Stack

Layer Technology
Language Java (JDK 8/11/17+)
Database MySQL
Design Pattern DAO (Data Access Object)
Connection JDBC
UI Console (CLI)
IDE Eclipse

πŸ—οΈ Architecture

com.course_registration/
β”œβ”€β”€ dao/ # DAO interfaces
β”œβ”€β”€ daoimpl/ # JDBC implementations
β”œβ”€β”€ model/ # Data models (POJOs)
β”œβ”€β”€ util/ # DBConnection utility
└── main/ # MainApp.java (Entry point)

πŸ” Role-Based Access

Role Permissions
πŸ‘¨β€πŸ’Ό Admin Manage students, instructors, courses, departments, enrollments
πŸ‘©β€πŸŽ“ Student View & enroll in courses, view enrolled courses
πŸ‘¨β€πŸ« Instructor (Extensible) View assigned courses, enrolled students

πŸ—ƒοΈ Database Schema

Tables:

Relational structure using foreign keys ensures referential integrity.

πŸ§ͺ Test Flow

πŸŽ“ Welcome to Course Registration System

Login as:

  1. Admin
  2. Student
  3. Instructor
  4. Exit

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) );

ScreenShots

image

image

image

image

image

πŸ” 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!