Exam Scheduler is a full-stack web application built with Spring Boot (Java) for the backend and React for the frontend.
The app allows users to register, log in, and manage their exams in a personalized dashboard, with secure authentication using JWT.
- User Registration & Login with JWT authentication
- Password encryption using BCrypt
- Personalized Dashboard β each user sees only their own exams
- CRUD Operations for Exams (Create, Read, Update, Delete)
- Validation with DTOs to ensure data integrity
- Error Handling using
@ControllerAdvice - Responsive Frontend built with React + Axios + React Router
- User Counter β displays the total number of users in the app
- Protected Routes β only authenticated users can access the dashboard
Backend:
- Java 24
- Spring Boot 3 (Web, Security, Data JPA)
- JWT Authentication
- PostgreSQL Database
- Maven
Frontend:
- React (Vite)
- Axios
- React Router DOM
- CSS Modules
backend/
βββ src/main/java/com/exam_scheduler/Exam_Scheduler
β βββ dto/
β βββ exception/
β βββ controller/ # REST controllers
β βββ model/ # Entities (User, Exam)
β βββ repository/ # JPA repositories
β βββ service/ # Business logic
β βββ security/ # JWT config & filters
β βββ ExamSchedulerApplication.java
βββ src/main/resources/
βββ application.properties
frontend/
βββ src/
β βββ pages/ # Page-level components
β βββ styling/
β βββ App.jsx
β βββ main.jsx
βββ public/

