The Student Management System is a comprehensive application designed to manage various aspects of a school environment, including students, teachers, parents, classrooms, homework assignments, and more. The system is built using a robust and scalable technology stack, making it suitable for deployment in small to large-scale educational institutions.
- Student Management: Manage student profiles, including their addresses, reports, and associated parents.
- Teacher Management: Handle teacher profiles, subject assignments, and classrooms.
- Parent Portal: Parents can view their children's progress and reports.
- Homework Tracking: Teachers can assign homework to students and track submissions.
- Classroom Management: Manage classroom details and assign students and teachers.
- School Administration: Manage school information, including subjects and school-wide reports.
- User Authentication: Secure login and role-based access for administrators, teachers, students, and parents.
- Java: The primary programming language for the application.
- Spring Framework: Used for dependency injection, aspect-oriented programming, and transaction management.
- Spring Boot: Facilitates rapid application development with Spring, offering embedded servers, auto-configuration, and more.
- HTML/CSS: Structure and styling of the web pages.
- JavaScript: Provides interactivity and dynamic content.
- Thymeleaf: Template engine for rendering server-side HTML content.
- MySQL / PostgreSQL / AzureSQL: For production-grade relational database management.
- H2 Database: For in-memory testing and development.
- MongoDB: For handling unstructured data.
The system is designed with the following core entities:
- Address: Stores addresses of students, parents, teachers, etc.
- Classroom: Manages information related to classrooms and their assignments.
- Homework: Tracks homework assignments, submissions, and evaluations.
- Parent: Contains parent profiles linked to students.
- Report: Stores academic reports for students.
- School: Represents the overall school entity.
- Student: Manages student profiles and their associations with classrooms, parents, and subjects.
- Subject: Contains information about subjects taught in the school.
- Teacher: Manages teacher profiles, including subjects they teach and classrooms they manage.
- User: Represents system users with roles (Admin, Teacher, Student, Parent).
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── studentmanagementsystem
│ │ │ ├── entity # Entity classes
│ │ │ │ ├── Address.java
│ │ │ │ ├── Classroom.java
│ │ │ │ ├── Homework.java
│ │ │ │ ├── Parent.java
│ │ │ │ ├── Report.java
│ │ │ │ ├── School.java
│ │ │ │ ├── Student.java
│ │ │ │ ├── Subject.java
│ │ │ │ ├── Teacher.java
│ │ │ │ └── Users.java
│ │ │ │
│ │ │ ├── repository # Repository interfaces
│ │ │ │ ├── AddressRepository.java
│ │ │ │ ├── ClassroomRepository.java
│ │ │ │ ├── HomeworkRepository.java
│ │ │ │ ├── ParentRepository.java
│ │ │ │ ├── ReportRepository.java
│ │ │ │ ├── SchoolRepository.java
│ │ │ │ ├── StudentRepository.java
│ │ │ │ ├── SubjectRepository.java
│ │ │ │ ├── TeacherRepository.java
│ │ │ │ └── UsersRepository.java
│ │ │ │
│ │ │ ├── service # Service interfaces
│ │ │ │ ├── AddressService.java
│ │ │ │ ├── ClassroomService.java
│ │ │ │ ├── HomeworkService.java
│ │ │ │ ├── ParentService.java
│ │ │ │ ├── ReportService.java
│ │ │ │ ├── SchoolService.java
│ │ │ │ ├── StudentService.java
│ │ │ │ ├── SubjectService.java
│ │ │ │ ├── TeacherService.java
│ │ │ │ ├── UsersService.java
│ │ │ │ └── impl # Service implementation classes
│ │ │ │ ├── AddressServiceImpl.java
│ │ │ │ ├── ClassroomServiceImpl.java
│ │ │ │ ├── HomeworkServiceImpl.java
│ │ │ │ ├── ParentServiceImpl.java
│ │ │ │ ├── ReportServiceImpl.java
│ │ │ │ ├── SchoolServiceImpl.java
│ │ │ │ ├── StudentServiceImpl.java
│ │ │ │ ├── SubjectServiceImpl.java
│ │ │ │ ├── TeacherServiceImpl.java
│ │ │ │ └── UsersServiceImpl.java
│ │ │ │
│ │ │ └── controller # REST controllers
│ │ │ ├── AddressController.java
│ │ │ ├── ClassroomController.java
│ │ │ ├── HomeworkController.java
│ │ │ ├── ParentController.java
│ │ │ ├── ReportController.java
│ │ │ ├── SchoolController.java
│ │ │ ├── StudentController.java
│ │ │ ├── SubjectController.java
│ │ │ ├── TeacherController.java
│ │ │ └── UsersController.java
│ │ │
│ │ └── resources # Resources directory
│ │ ├── application.properties
│ │ ├── application-mysql.properties
│ │ ├── application-plsql.properties
│ │ ├── applicationazure_sql.properties
│ │ ├── application-mongo.properties
│ │ ├── application-h2.properties
│ │ └── templates # Thymeleaf templates
│ │
│ └── test # Test directory
│ └── java
│ └── com
│ └── studentmanagementsystem
│ └── (Test Classes) # Test classes for unit and integration testing
│
└── pom.xml # Maven Project Object Model file
- Java 17 or higher
- Maven: For building and managing project dependencies.
- MySQL/PostgreSQL/AzureSQL/MongoDB: Depending on your database choice.
-
Clone the repository:
git clone https://github.com/adityakalambe01/StudentManagementSystem.git cd student-management-system
-
Setup the database:
- Configure your database of choice (MySQL, PostgreSQL, AzureSQL, or MongoDB).
- Update the
application.properties
orapplication.yml
file in thesrc/main/resources
directory with your database credentials.
-
Build the project:
mvn clean install
-
Run the application:
mvn spring-boot:run
- In-Memory Database Testing: The project is configured to use the H2 database for testing.
mvn test
-
Access the application: Open a web browser and navigate to
http://localhost:9090
to start using the application. -
Admin Dashboard: Administrators can manage students, teachers, subjects, and more.
-
Teacher Dashboard: Teachers can manage their assigned classes, assign homework, and track student progress.
-
Student and Parent Portals: Students and parents can view homework, reports, and other relevant information.
For further information or inquiries, feel free to contact:
- Mail: adityakalambe20
- GitHub: adityakalambe01