Skip to content

Latest commit

 

History

History
138 lines (112 loc) · 3.8 KB

File metadata and controls

138 lines (112 loc) · 3.8 KB

Student Information System (SIS) with JDBC

A full-featured console-based Student Information System built with Java and MySQL using JDBC.


Java & OOP Concepts Demonstrated

Concept Where Used
Encapsulation All Model classes (Student, Grade, Course, etc.)
Inheritance Custom Exceptions extend Exception
Polymorphism Service layer method overloading
Abstraction DAO pattern separates implementation
Custom Exceptions StudentNotFoundException, ValidationException
try-catch-finally All DAO and Service methods
Collections (ArrayList, List) getAllStudents(), searchStudents()
JDBC All DAO classes
PreparedStatement Prevents SQL Injection
Singleton Pattern DatabaseConnection
DAO Pattern StudentDAO, GradeDAO, CourseDAO, UserDAO
Service Layer StudentService, GradeService, AuthService
Lambda Expressions forEach printing
Scanner User input in ConsoleUI
Switch Expression Menu navigation
Static Methods InputValidator utility methods

Project Structure

StudentInfoSystem/
├── database/
│   └── schema.sql              ← Run this first in MySQL
├── src/
│   └── com/sis/
│       ├── Main.java           ← Entry Point
│       ├── model/              ← Entity Classes (Encapsulation)
│       │   ├── Student.java
│       │   ├── Grade.java
│       │   ├── Course.java
│       │   ├── Department.java
│       │   └── User.java
│       ├── dao/                ← Database Operations (JDBC)
│       │   ├── StudentDAO.java
│       │   ├── GradeDAO.java
│       │   ├── CourseDAO.java
│       │   ├── DepartmentDAO.java
│       │   └── UserDAO.java
│       ├── service/            ← Business Logic Layer
│       │   ├── StudentService.java
│       │   ├── GradeService.java
│       │   └── AuthService.java
│       ├── exception/          ← Custom Exceptions
│       │   ├── StudentNotFoundException.java
│       │   └── ValidationException.java
│       └── util/               ← Utility Classes
│           ├── DatabaseConnection.java  ← Singleton
│           └── InputValidator.java
└── README.md

Setup Instructions

1. Prerequisites

  • Java JDK 17+
  • MySQL 8.0+
  • MySQL Connector/J JAR (mysql-connector-java-8.x.jar)

2. Database Setup

-- Open MySQL and run:
source database/schema.sql

3. Configure Database

Edit src/com/sis/util/DatabaseConnection.java:

private static final String URL = "jdbc:mysql://localhost:3306/student_info_system";
private static final String USERNAME = "root";
private static final String PASSWORD = "your_mysql_password";

4. Compile & Run

# Compile (adjust path to mysql connector jar)
javac -cp .;mysql-connector-j-8.x.jar -d out -sourcepath src src/com/sis/Main.java

# Run
java -cp out;mysql-connector-j-8.x.jar com.sis.Main

Default Login Credentials

Username Password Role
admin admin123 ADMIN
student1 pass123 STUDENT

Features

Admin Can:

  • Add / View / Search / Update / Delete students
  • Add and view grades
  • View dashboard summary (total students, departments, courses)
  • Filter students by department
  • Add new courses

Student Can:

  • View their own profile
  • View their own grades and CGPA
  • View available courses

Grade Calculation System

Marks (%) Grade
90 - 100 A+
80 - 89 A
70 - 79 B+
60 - 69 B
50 - 59 C
40 - 49 D
Below 40 F

Dependencies