A comprehensive web-based student management system designed to streamline educational administration, enhance student engagement, and improve academic oversight for educational institutions.
- Overview
- Key Features
- System Architecture
- Technologies Used
- Screenshots
- Installation
- Usage
- API Documentation
- Project Structure
- Development Team
- Contributing
- License
EduManager is a modern, feature-rich student management system built using Java Spring Boot backend and React TypeScript frontend. It provides a comprehensive solution for educational institutions to manage students, courses, schedules, and academic performance through an intuitive, responsive interface.
The system addresses common challenges in educational administration by centralizing data management, improving accessibility to information, and streamlining communication between students, teachers, and administrators.
- Personalized Dashboard: Track enrolled courses, upcoming assignments, and recent grades
- Course Management: View course details, materials, and announcements
- Assignment Tracking: Submit assignments and view feedback
- Calendar Integration: Access comprehensive academic calendar with personal events
- Performance Analytics: Monitor academic progress and grades
- Course Administration: Create and manage courses, schedules, and materials
- Student Oversight: Track student performance and participation
- Assignment Management: Create, collect, and grade assignments
- Calendar Management: Schedule classes and office hours
- Communication Tools: Announce course updates and communicate with students
- User Management: Oversee student and teacher accounts and permissions
- Course Catalog: Manage institutional course offerings
- System Configuration: Configure system parameters and security settings
- Reporting Tools: Generate institutional reports and analytics
EduManager implements a three-tier architecture:
- Presentation Layer: React with TypeScript, providing a responsive and type-safe user interface
- Application Layer: Spring Boot REST API implementing business logic and authentication
- Data Layer: JPA/Hibernate with MySQL database for persistence
The system follows the Model-View-Controller (MVC) pattern with clear separation of concerns:
βββββββββββββββββ ββββββββββββββββ βββββββββββββββββ
β React Frontendββββ>β REST API ββββ>β Service Layer β
β (TypeScript) β<ββββ (Controllers)β<ββββ (Business β
βββββββββββββββββ ββββββββββββββββ β Logic) β
βββββββββ¬ββββββββ
β
βββββββββΌββββββββ
β Data Access β
β (Repositories)β
βββββββββ¬ββββββββ
β
βββββββββΌββββββββ
β MySQL Databaseβ
βββββββββββββββββ
- React 18: Component-based UI library
- TypeScript 4.9: Type-safe JavaScript superset
- NextUI: Modern UI component library
- React Router: Navigation and routing
- Axios: HTTP client for API requests
- React Query: Data fetching and caching
- Context API: State management
- Jest & React Testing Library: Testing framework
- Java 17: Programming language
- Spring Boot 3.0: Application framework
- Spring Security: Authentication and authorization
- Spring Data JPA: Data access framework
- Hibernate: ORM for database operations
- MySQL 8: Relational database
- JWT: JSON Web Tokens for authentication
- JUnit & Mockito: Testing frameworks
- Maven: Build automation
- npm: Package management
- Git & GitHub: Version control
- GitHub Actions: CI/CD pipeline
- Docker: Containerization
- JaCoCo: Code coverage
- SonarQube: Code quality
Include screenshots of key pages like student dashboard, course view, calendar, admin panel, etc.
- Java 17 or higher
- Node.js 16 or higher
- MySQL 8.0 or higher
- Maven 3.8 or higher
in your mysql workbench First run the Manage Setup.sql Then run Manage Insert.sql
- Clone the repository:
git clone https://github.com/sasantha1/EduManager.git
- Configure the database:
# src/main/resources/application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/edumanager
spring.datasource.username=your_username
spring.datasource.password=your_password
- Build and run the application:
mvn clean install
mvn spring-boot:runOr you can use intellij or visual code to run the main java file
The backend will start on http://localhost:8080
- Install dependencies:
npm i --legacy-peer-deps- Configure the API URL:
# lib/api.ts
API_BASE_URL=http://localhost:8080/api
- Start the development server:
npm run devor
npm start
The frontend will start on http://localhost:3000
The system comes with pre-configured accounts for testing:
-
Student Account
- Email: student1@example.com
- Password: 123456
-
Teacher Account
- Email: teacher1@example.com
- Password: 123456
-
Admin Account
- Email: admin@example.com
- Password: 123456
-
Student Journey:
- Log in with student credentials
- View enrolled courses on the dashboard
- Check upcoming assignments and class schedule
- Submit assignments and track grades
-
Teacher Journey:
- Log in with teacher credentials
- Manage courses and class schedules
- Create assignments and grade submissions
- Track student performance
-
Admin Journey:
- Log in with admin credentials
- Manage user accounts and permissions
- Configure system settings
- Generate reports and analytics
The REST API is documented using OpenAPI/Swagger and can be accessed at http://localhost:8080/swagger-ui.html when the backend is running.
Key API endpoints include:
- Authentication:
/api/auth/login,/api/auth/register - Students:
/api/students,/api/students/{id} - Teachers:
/api/teachers,/api/teachers/{id} - Courses:
/api/courses,/api/courses/{id} - Assignments:
/api/assignments,/api/assignments/{id} - Grades:
/api/grades,/api/students/{id}/grades
backend/
βββ src/
β βββ main/
β β βββ java/com/edumanager/
β β β βββ config/ # Configuration classes
β β β βββ controller/ # REST controllers
β β β βββ dto/ # Data Transfer Objects
β β β βββ exception/ # Custom exceptions
β β β βββ model/ # Entity classes
β β β βββ repository/ # Data access interfaces
β β β βββ security/ # Authentication and authorization
β β β βββ service/ # Business logic
β β β βββ EduManagerApplication.java
β β βββ resources/
β β βββ application.properties # Application configuration
β β βββ db/ # Database migrations
β βββ test/ # Test classes
βββ pom.xml # Maven configuration
frontend/
βββ public/ # Static files
βββ src/
β βββ components/ # Reusable UI components
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utilities and API clients
β βββ pages/ # Page components
β β βββ admin/ # Admin-specific pages
β β βββ student/ # Student-specific pages
β β βββ teacher/ # Teacher-specific pages
β βββ styles/ # CSS and style definitions
β βββ types/ # TypeScript type definitions
β βββ App.tsx # Main application component
β βββ index.tsx # Entry point
βββ package.json # npm configuration
This project was developed as part of the "Development of Enterprise Applications" course at the Faculty of Computing.
We welcome contributions to EduManager! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure your code follows the project's coding standards and includes appropriate tests.
This project is licensed under the MIT License - see the LICENSE file for details.
Β© 2025 EduManager. All Rights Reserved.