The Student Management System is a Spring Boot-based application designed to streamline the process of managing students and their courses. The system provides functionalities for administrators and students to perform various operations securely.
- Admit a student with details such as name, date of birth, gender, and a unique student code. Multiple addresses (permanent, correspondence, current) are supported.
- Upload course details, including course name, description, course type, duration, and topics.
- Assign courses to students (many-to-many relationship).
- Search for students by name.
- Retrieve a list of students assigned to a particular course.
- Update profile details, including email, mobile number, parent's name, and address.
- Search for topics/courses assigned to the student.
- Leave a course.
- Admins authenticate using credentials (Role-Based Authentication).
- Students validate themselves using their unique student code and password.
- Spring Boot: Framework for creating standalone, production-grade Spring-based applications.
- Hibernate: Object-relational mapping framework for Java.
- JPA: Java Persistence API for managing relational data in Java applications.
- Swagger: Tool for API documentation.
- Spring Security: Authentication and access control framework.
The project follows a modular structure with distinct layers:
- Entity Layer: Contains the JPA entities representing the data model.
- Repo Layer: Includes repositories for database operations.
- Controller: Manages incoming HTTP requests, handling the flow of data between the client and the application.
- Service: Business logic layer that contains the core functionalities.
- DTO Layer: Data Transfer Objects for mapping between DTOs and entities.