__ ___ __ __ ___ __
/ |/ /___ ______/ /__/ |/ /___ _/ /____
/ /|_/ / __ `/ ___/ //_/ /|_/ / __ `/ __/ _ \
/ / / / /_/ / / / ,< / / / / /_/ / /_/ __/
/_/ /_/\__,_/_/ /_/|_/_/ /_/\__,_/\__/\___/
A lightweight Spring Boot application that enables dynamic management of students and their academic records using an embedded, in-memory H2 database. Tailored for rapid development with minimal system dependencies, this version introduces subject flexibility and persistent schema tracking.
- Uses an embedded H2 database for runtime operations with no external DB software required.
- Ideal for
.jardeployments and lightweight environments where memory and dependencies must be minimized. - Designed to simulate a real-world academic system, supporting dynamic schema creation.
- User-driven architecture: both student data and subject tables are defined at runtime.
-
Student Table
- Stores basic student information:
roll number,full name, andcity. - Auto-generated at runtime using
schema.sql.
- Stores basic student information:
-
Dynamic Subject Tables
- Users can create any number of custom subject tables during execution.
- Each subject table contains
subjectID(foreign key tostudent.rollno) andmarks. - The structure of each new subject table is written to a dedicated
subjectlist.sqlfile, ensuring persistence of schema definitions.
-
Data Persistence
- Student and marks data are saved back to
data.sqlusing Java FileWriter. - Created subject schemas are written to
subjectlist.sqlto ensure they are loaded on subsequent runs. - All database changes are also logged to
changes.txtfor traceability.
- Student and marks data are saved back to
-
Lightweight Console UI
- Intuitive menu-driven switch-case interface for all operations.
- Timestamps displayed for tracking session context.
- Java 17+
- Spring Boot 3
- H2 Database (In-Memory)
- Spring JDBC Template
- Maven
- β Implement full CRUD operations for all dynamically added subjects.
- β Support custom subject deletion with table removal.
- π Enable persistent storage using file-based H2 mode (instead of purely in-memory).
- π Expose all functionality via REST APIs with DTO mapping, validation, and exception handling.
- π Add report generation and statistics for student performance.
- v1.0 β Basic student table with fixed subject tables (
math,physics,chemistry) - v2.0 β Integration with H2 DB, schema.sql/data.sql structure
- v3.0 β Java FileWriter-based persistence
- v4.0 β π₯ Major overhaul:
- Subject tables are now user-defined, dynamically created at runtime
- Changes saved to
changes.txt - New tables added to
subjectlist.sqlto keep track and contradict extra creta - No hardcoded subject logic β truly flexible structure
- Added ASCII banner branding and log support
schema.sqlβ creates core student table.data.sqlβ stores runtime-added students and marks.subjectlist.sqlβ stores schema for each user-added subject table.changes.txtβ logs of data and schema updates.
This project is released under the MIT License.
SoultySprings