How dcane4ever/support-system-eac works
Classroom Support System is a Spring Boot application for students, teachers, and support agents. Users register and verify accounts, students enter a support queue, agents accept sessions and exchange real-time messages, and users can view chat history or reports. Voice calling adds WebRTC signaling alongside chat. The graph follows the documented capabilities and sampled caller/service relationships; unsampled controller and integration details are represented conservatively, with no inferred links where wiring was not shown.
Main entry points: ChatService.java Queue and chat service · ChatController.java Chat messaging and queue routes · UserService.java User service · UserRepository.java User repository
Components 30
Identity and access
- Authentication and registration
src/main/java/com/cusservice/bsit/controller/AuthController.java - User service
src/main/java/com/cusservice/bsit/service/UserService.java - Login user lookup
src/main/java/com/cusservice/bsit/service/CustomUserDetailsService.java - Security configuration
src/main/java/com/cusservice/bsit/config/SecurityConfig.java - Verification email
src/main/java/com/cusservice/bsit/service/EmailService.java
Support conversations
- Student support pages
src/main/resources/templates/student-chat.html - Agent queue and chat
src/main/resources/templates/support-queue.html - Chat messaging and queue routes
src/main/java/com/cusservice/bsit/controller/ChatController.java - Chat history API
src/main/java/com/cusservice/bsit/controller/ChatApiController.java - Queue and chat service
src/main/java/com/cusservice/bsit/service/ChatService.java - Chat message model
src/main/java/com/cusservice/bsit/model/ChatMessage.java - Queue student view
src/main/java/com/cusservice/bsit/dto/QueueStudentDTO.java - WebSocket configuration
src/main/java/com/cusservice/bsit/config/WebSocketConfig.java - Chat history pages
src/main/resources/templates/chat-history.html
Voice calling
- Call session lifecycle
src/main/java/com/cusservice/bsit/service/CallSessionService.java - Call session model
src/main/java/com/cusservice/bsit/model/CallSession.java - Call session repository
src/main/java/com/cusservice/bsit/repository/CallSessionRepository.java - WebRTC browser client
src/main/resources/static/js/webrtc-call.js - TURN configuration endpoint
src/main/java/com/cusservice/bsit/controller/TurnConfigController.java
Reports and analytics
- Support reports page
src/main/resources/templates/support-reports.html - Report routes
src/main/java/com/cusservice/bsit/controller/ReportController.java - Session analytics
src/main/java/com/cusservice/bsit/service/ReportService.java
Domain persistence
- User repository
src/main/java/com/cusservice/bsit/repository/UserRepository.java - Chat session repository
src/main/java/com/cusservice/bsit/repository/ChatSessionRepository.java - Chat message repository
src/main/java/com/cusservice/bsit/repository/ChatMessageRepository.java - User model
src/main/java/com/cusservice/bsit/model/User.java - Chat session model
src/main/java/com/cusservice/bsit/model/ChatSession.java
Other components
- Students, teachers, agents
- MySQL database
- SendGrid email service
Connections 30
- Students, teachers, agents → Authentication and registration: register or sign in
README.md - Authentication and registration → User service: register and verify
src/main/java/com/cusservice/bsit/controller/AuthController.java - User service → User repository: persist accounts
src/main/java/com/cusservice/bsit/service/UserService.java - User service → Verification email: send verification
src/main/java/com/cusservice/bsit/service/UserService.java - Verification email → SendGrid email service: send email
README.md - Security configuration → Login user lookup: loads user details
src/main/java/com/cusservice/bsit/config/SecurityConfig.java - Login user lookup → User repository: find account
src/main/java/com/cusservice/bsit/service/CustomUserDetailsService.java - Student support pages → Chat messaging and queue routes: send chat events
README.md - Agent queue and chat → Chat messaging and queue routes: accept queue sessions
README.md - Chat messaging and queue routes → Queue and chat service: manage sessions
src/main/java/com/cusservice/bsit/controller/ChatController.java - Chat messaging and queue routes → User service: look up participants
src/main/java/com/cusservice/bsit/controller/ChatController.java - Queue and chat service → Chat session repository: read and save sessions
src/main/java/com/cusservice/bsit/service/ChatService.java - Queue and chat service → Chat message repository: read and save messages
src/main/java/com/cusservice/bsit/service/ChatService.java - Queue and chat service → Queue student view: build queue view
src/main/java/com/cusservice/bsit/service/ChatService.java - Queue and chat service → WebSocket configuration: broadcast updates
src/main/java/com/cusservice/bsit/service/ChatService.java - Chat history API → Queue and chat service: serve chat history
src/main/java/com/cusservice/bsit/controller/ChatApiController.java - Chat history pages → Chat history API: request history
README.md - Chat session repository → MySQL database: store sessions
README.md - Chat message repository → MySQL database: store messages
README.md - User repository → MySQL database: store accounts
README.md - Report routes → Session analytics: request analytics
src/main/java/com/cusservice/bsit/controller/ReportController.java - Session analytics → Chat session repository: query sessions
src/main/java/com/cusservice/bsit/service/ReportService.java - Session analytics → User repository: query users
src/main/java/com/cusservice/bsit/service/ReportService.java - Support reports page → Report routes: view reports
README.md - WebRTC browser client → TURN configuration endpoint: get call configuration
- Call session lifecycle → Call session repository: persist call state
src/main/java/com/cusservice/bsit/service/CallSessionService.java - Call session lifecycle → Call session model: update lifecycle
src/main/java/com/cusservice/bsit/service/CallSessionService.java - Call session repository → MySQL database: store calls
README.md - Students, teachers, agents → WebRTC browser client: start voice call
README.md - WebRTC browser client → Chat messaging and queue routes: exchange signaling
README.md