How lyfe691/chatapp works
ChatApp is a Spring Boot/MongoDB messaging application. Users register and verify by email, authenticate, then create or join chat rooms and exchange real-time messages; account recovery and profile preferences are additional flows. The graph separates web/authentication, chat, and persistence concerns. The sampled controllers and services establish the principal calls; README claims preserve documented capabilities where implementation details were not sampled. The separate UserDetailsService is included as a substantial indexed module, though its wiring is not shown.
Main entry points: ChatController.java Chat Controller · AuthController.java Auth Controller · UserService.java User Service · UserRepository.java User Repository
Components 19
Web and Security
- Web UI
src/main/resources/templates - Landing Routes
src/main/java/com/ybdd/ChatApp/controller/LandingController.java - Security Config
src/main/java/com/ybdd/ChatApp/config/WebSecurityConfig.java
Accounts and Email
- Auth Controller
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - User Service
src/main/java/com/ybdd/ChatApp/service/UserService.java - User Details Service
src/main/java/com/ybdd/ChatApp/service/UserDetailsService.java - Email Service
src/main/java/com/ybdd/ChatApp/service/EmailService.java - Token Repositories
src/main/java/com/ybdd/ChatApp/repository - Token Models
src/main/java/com/ybdd/ChatApp/model - User Model
src/main/java/com/ybdd/ChatApp/model/User.java
Rooms and Messaging
- Chat Controller
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - WebSocket Config
src/main/java/com/ybdd/ChatApp/config/WebSocketConfig.java - Message Model
src/main/java/com/ybdd/ChatApp/model/Message.java
Persistence
- User Repository
src/main/java/com/ybdd/ChatApp/repository/UserRepository.java - Message Repository
src/main/java/com/ybdd/ChatApp/repository/MessageRepository.java
Other components
- User
- MongoDB
- Mail Provider
- Chat Client
Connections 21
- User → Web UI: uses
README.md - Web UI → Landing Routes: requests pages
- User → Auth Controller: submits account requests
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - Auth Controller → User Service: manages accounts
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - Auth Controller → Token Repositories: stores and checks tokens
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - Auth Controller → Token Models: creates and checks tokens
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - Auth Controller → Email Service: sends account email
src/main/java/com/ybdd/ChatApp/controller/AuthController.java - User Service → User Repository: reads and saves users
src/main/java/com/ybdd/ChatApp/service/UserService.java - User Service → User Model: creates and updates
src/main/java/com/ybdd/ChatApp/service/UserService.java - Security Config → User Service: authenticates with
src/main/java/com/ybdd/ChatApp/config/WebSecurityConfig.java - Email Service → Mail Provider: sends messages
src/main/java/com/ybdd/ChatApp/service/EmailService.java - User → Chat Controller: creates or joins rooms
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - Chat Client → Chat Controller: sends chat events
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - Chat Controller → Message Repository: stores and loads messages
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - Chat Controller → User Repository: reads and saves users
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - Chat Controller → Message Model: sets message fields
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - Chat Controller → User Model: updates room and messages
src/main/java/com/ybdd/ChatApp/controller/ChatController.java - User Repository → MongoDB: persists users
src/main/java/com/ybdd/ChatApp/repository/UserRepository.java - Message Repository → MongoDB: persists messages
src/main/java/com/ybdd/ChatApp/repository/MessageRepository.java - Token Repositories → MongoDB: persists tokens
- Chat Client → WebSocket Config: connects over WebSocket
README.md