How koder95/school-booking-platform-backend works
School Booking Platform Backend is a Spring Boot REST API for school lesson scheduling and booking. Its core flow exposes teacher availability, generates availability slots and lessons, lets students book lessons, and serves lesson searches and booking views; administrators also manage teachers, students, subjects, and resources. Authentication supports password/JWT and one-time-token login, with login notifications and logged email delivery. The tree and README establish the broader capabilities; sampled controller and service sources confirm selected call paths, so uncertain service-to-storage wiring is omitted.
Main entry points: TeacherController.java Teacher API · impl Authentication services · OneTimeTokenAuthenticationServiceImpl.java One-time tokens · EmailDeliveryServiceImpl.java Email delivery
Components 22
REST API
- Authentication API
src/main/java/pl/koder95/sbp/backend/controller/AuthenticationController.java - Lesson API
src/main/java/pl/koder95/sbp/backend/controller/LessonController.java - Teacher API
src/main/java/pl/koder95/sbp/backend/controller/TeacherController.java - Subject API
src/main/java/pl/koder95/sbp/backend/controller/SubjectController.java - Other APIs
src/main/java/pl/koder95/sbp/backend/controller
Identity and access
- Authentication services
src/main/java/pl/koder95/sbp/backend/service/impl - JWT security
src/main/java/pl/koder95/sbp/backend/security - User repository
src/main/java/pl/koder95/sbp/backend/repository/UserRepository.java - One-time tokens
src/main/java/pl/koder95/sbp/backend/service/impl/OneTimeTokenAuthenticationServiceImpl.java
Scheduling and booking
- Availability services
src/main/java/pl/koder95/sbp/backend/service/impl/AvailabilityServiceImpl.java - Availability slot services
src/main/java/pl/koder95/sbp/backend/service/impl/AvailabilitySlotServiceImpl.java - Lesson services
src/main/java/pl/koder95/sbp/backend/service/impl/LessonServiceImpl.java - Booking services
src/main/java/pl/koder95/sbp/backend/service/impl/BookingServiceImpl.java
School records
- Teacher services
src/main/java/pl/koder95/sbp/backend/service/impl/TeacherServiceImpl.java - Student services
src/main/java/pl/koder95/sbp/backend/service/impl/StudentServiceImpl.java - Subject services
src/main/java/pl/koder95/sbp/backend/service/impl/SubjectServiceImpl.java - Resource services
src/main/java/pl/koder95/sbp/backend/service/impl/ResourceServiceImpl.java
Email delivery
- Email delivery
src/main/java/pl/koder95/sbp/backend/service/impl/EmailDeliveryServiceImpl.java - Email services
src/main/java/pl/koder95/sbp/backend/service/impl/EmailServiceImpl.java
Other components
- API client
- PostgreSQL
- SMTP mail server
Connections 25
- API client → Authentication API: requests login
- API client → Lesson API: requests lessons
- API client → Teacher API: manages availability
- API client → Subject API: manages subjects
- API client → Other APIs: uses APIs
- Authentication API → Authentication services: dispatches
- Authentication API → One-time tokens: dispatches OTT
- Authentication services → JWT security: creates JWT
- JWT security → User repository: loads user
- One-time tokens → User repository: resolves principal
- One-time tokens → Email delivery: sends notification
- Authentication services → Email delivery: sends notification
- Lesson API → Lesson services: dispatches
- Lesson API → Booking services: dispatches booking
- Teacher API → Teacher services: dispatches
- Teacher API → Availability services: dispatches availability
- Teacher API → Availability slot services: dispatches slots
- Subject API → Subject services: dispatches
- Availability slot services → Lesson services: generates lessons
- Other APIs → Student services: dispatches student operations
- Other APIs → Resource services: dispatches resource operations
- Authentication services → PostgreSQL: reads users
- One-time tokens → PostgreSQL: stores token data
- Email delivery → SMTP mail server: sends email
- Email delivery → PostgreSQL: records deliveries