Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ“ Student Management System

A console-based Student Management System developed using Java, JDBC, and MySQL. This project demonstrates CRUD operations, database connectivity, Object-Oriented Programming (OOP), and the DAO (Data Access Object) design pattern.


๐Ÿ“Œ Overview

This application allows users to manage student records from a console interface. It follows a modular architecture by separating database access, business logic, and user interaction into different packages.

The project was built to strengthen practical knowledge of:

  • Java Programming
  • JDBC Connectivity
  • MySQL Database
  • Object-Oriented Programming
  • DAO Design Pattern
  • CRUD Operations
  • Input Validation
  • Exception Handling
  • Git & GitHub

โœจ Features

Feature Status
Add Student โœ…
View Students โœ…
Search Student โœ…
Update Student โœ…
Delete Student โœ…
Email Validation โœ…
Phone Validation โœ…
Duplicate Email Prevention โœ…
PreparedStatement โœ…
Exception Handling โœ…

๐Ÿš€ Tech Stack

Technology Purpose
Java Programming Language
JDBC Database Connectivity
MySQL Database
Git Version Control
GitHub Repository Hosting
VS Code IDE

๐Ÿ—๏ธ Project Architecture

                +------------------+
                |    Console UI    |
                +---------+--------+
                          |
                          v
                +------------------+
                | Student Service  |
                +---------+--------+
                          |
                          v
                +------------------+
                |   Student DAO    |
                +---------+--------+
                          |
                          v
                +------------------+
                | JDBC Connection  |
                +---------+--------+
                          |
                          v
                +------------------+
                |     MySQL DB     |
                +------------------+

๐Ÿ”„ Application Flow

User

โ†“

Main Menu

โ†“

Choose Operation

โ†“

Input Validation

โ†“

DAO Layer

โ†“

PreparedStatement

โ†“

MySQL Database

โ†“

Success / Failure

โ†“

Console Output

๐Ÿ“‚ Project Structure

StudentManagementSystem
โ”‚
โ”œโ”€โ”€ lib
โ”‚   โ””โ”€โ”€ mysql-connector-j.jar
โ”‚
โ”œโ”€โ”€ screenshots
โ”‚
โ”œโ”€โ”€ src
โ”‚   โ”œโ”€โ”€ dao
โ”‚   โ”‚    โ””โ”€โ”€ StudentDAO.java
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ db
โ”‚   โ”‚    โ””โ”€โ”€ DBConnection.java
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ model
โ”‚   โ”‚    โ””โ”€โ”€ Student.java
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ ui
โ”‚   โ”‚    โ””โ”€โ”€ MainMenu.java
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ App.java
โ”‚
โ”œโ”€โ”€ README.md
โ””โ”€โ”€ .gitignore

๐Ÿ“ฆ Package Description

Package Responsibility
dao Performs CRUD operations
db Manages database connection
model Student entity class
ui Console interface
App.java Entry point of application

๐Ÿ—„๏ธ Database

Database Name

student_management_system

Table

students

Database Schema

CREATE TABLE students (

id INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(100) NOT NULL,

email VARCHAR(100) UNIQUE NOT NULL,

phone VARCHAR(15),

department VARCHAR(100)

);

ER Diagram

+------------------------------------------------+
|                 STUDENTS TABLE                 |
+------------------------------------------------+
| id (PK)                                       |
| name                                          |
| email                                         |
| phone                                         |
| department                                    |
+------------------------------------------------+

๐Ÿ“š Concepts Demonstrated

  • Object-Oriented Programming
  • DAO Design Pattern
  • JDBC Connectivity
  • CRUD Operations
  • SQL
  • PreparedStatement
  • ResultSet
  • Exception Handling
  • Input Validation
  • Package Organization

โš™๏ธ Installation

Clone Repository

git clone https://github.com/codefuser/student-management-system-java.git

Open project inside VS Code.


Compile

javac -cp ".;lib/mysql-connector-j.jar" src/App.java

Run

java -cp ".;lib/mysql-connector-j.jar;src" App

๐Ÿ“ธ Screenshots

Main Menu

screenshots/main-menu.png

Add Student

screenshots/add-student.png

View Students

screenshots/view-students.png

Search Student

screenshots/search-student.png

Update Student

screenshots/update-student.png

Delete Student

screenshots/delete-student.png

Database

screenshots/mysql-table.png

๐Ÿ’ก Project Highlights

  • Built using Java, JDBC, and MySQL.
  • Implements complete CRUD functionality.
  • Uses DAO Design Pattern.
  • Uses PreparedStatement to execute SQL queries.
  • Prevents duplicate email entries.
  • Performs input validation.
  • Organized using modular package structure.
  • Easy to extend and maintain.

๐Ÿ“– Learning Outcomes

Through this project, I gained practical experience in:

  • Java Programming
  • Object-Oriented Programming
  • JDBC API
  • MySQL Integration
  • SQL Queries
  • CRUD Operations
  • DAO Design Pattern
  • Exception Handling
  • Validation Techniques
  • Git & GitHub Workflow

๐Ÿ”ฎ Future Improvements

  • Spring Boot REST API
  • JavaFX User Interface
  • User Authentication
  • Admin Dashboard
  • Role-Based Access
  • Export to CSV
  • Docker Support
  • Maven Project Structure
  • Unit Testing with JUnit
  • Logging Framework

๐Ÿงช Sample Workflow

Start

โ†“

Display Menu

โ†“

User selects option

โ†“

Validate Input

โ†“

DAO Method Called

โ†“

Execute SQL Query

โ†“

Receive Result

โ†“

Display Response

โ†“

Repeat Until Exit

๐Ÿ›ก๏ธ Best Practices Used

  • Layered Project Structure
  • Reusable Database Connection
  • PreparedStatement
  • Input Validation
  • Exception Handling
  • Modular Code Organization

๐Ÿ“ˆ Skills Demonstrated

  • Core Java
  • JDBC
  • SQL
  • MySQL
  • OOP
  • DAO Pattern
  • CRUD Operations
  • Git
  • GitHub

๐Ÿ“„ License

This project is created for learning and educational purposes.


๐Ÿ‘จโ€๐Ÿ’ป Author

Joseph


โญ If you found this project useful, consider giving it a Star on GitHub.


About

A console-based Student Management System built using Java, JDBC, and MySQL with full CRUD operations and validation features.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages