- CHEKZAM is an online learning platform that provides a centralized space for teachers to manage classes and for students to access materials and assessments.
- It standardizes online class organization, reduces technical barriers, and improves teacher–student interaction.
- The system follows an e-classroom model with separate spaces for tests, member management, and activity tracking.
- Help teachers easily create and manage online classes.
- Provide multiple-choice testing with automatic grading.
- Support student management and allow flexible joining or leaving of classes.
- Backend: Spring Boot (Spring Web, Spring Data JPA, Spring Security, OAuth2 Resource Server (JWT), Lombok, MySQL Connector/J)
- Frontend: ReactJS (react-dom, react-router-dom, react-bootstrap, react-icons, react-toastify)
- Database: MySQL
- Admin: Manages and monitors the entire system, including user management.
- Teacher: Creates and manages classes and assignments, and guides students.
- Student: Joins classes, completes assignments, and tracks personal progress.
- (Before role assignment, all users are general users.)
- General Users: Register, log in, and update personal information.
- Admin: Create, update, and delete user accounts.
- Teacher: Manage classes (create, edit, delete, add/remove students) and assignments (create, assign, track results).
- Student: Join/leave classes, complete assignments, and view submission history.
- User
- Classroom
- Assignment
- Question
- Answer
- Submission
- ClassroomStudents (junction)
- AssignmentClassrooms (junction)
- AssignmentQuestions (junction)
- SubmissionAnswers (junction)
| Relationship | Type |
|---|---|
| User – Classroom | N–N |
| User – Assignment | 1–N |
| Assignment – Classroom | N–N |
| Assignment – Question | N–N |
| Question – Answer | 1–N |
| Submission – AssignmentClassrooms | N–1 |
| Submission – Answer | N–N |
The backend is modularized for scalability, maintainability, and clear separation of concerns.
common/: Shared componentsmodule/: Feature-based modules
| Folder/File | Responsibility | Key Components |
|---|---|---|
configuration/ |
System configuration | SecurityConfig, CustomJwtDecoder, AdminConfig |
exception/ |
Error handling | ApplicationException, GlobalExceptionHandler |
message/ |
Message codes | ExceptionMessageCode, SuccessMessageCode |
util/ |
Utilities | IdGenerator, JwtUtil, PaginationUtil |
ApiResponse |
API response format | Standardized response structure |
Endpoint |
API endpoints | Centralized route definitions |
Design Principles
-
Feature-based structure
-
Each module includes:
- Controller
- Service
- Repository
- Entity & DTO
- Optional: mapper, enum
-
N-N relationships are separated into dedicated modules (SRP compliant)
Modules
| Module | Description |
|---|---|
user/ |
User management |
auth/ |
Authentication & JWT |
classroom/ |
Classroom management |
classroom_student/ |
Student–classroom relationship |
assignment/ |
Assignment management |
assignment_classroom/ |
Assignment–classroom mapping |
assignment_question/ |
Assignment–question mapping |
question/ |
Question management |
answer/ |
Answer management |
submission/ |
Submission & grading |
submission_answer/ |
Submission details |




















