How tarunpurohit11/distributed-chat-application works
This repository implements a chat-branded web application whose sampled runtime is focused on account authentication, not message exchange. The principal flow is a user submitting login or registration details in the frontend, the backend issuing access and refresh tokens, and the frontend restoring or ending a session through cookie-backed requests. Backend layers cover HTTP endpoints, authentication and token services, and persistence; frontend layers cover forms, shared auth state, and routing. The graph follows shown calls and documented imports; unsampled route and security wiring is not asserted.
Main entry points: AuthService.java Auth orchestration · AuthController.java Auth endpoints · Login.jsx Login page · MyUserDetailService.java User lookup
Components 24
Frontend experience
- Auth form
frontend/src/components/auth/AuthForm.jsx - Input control
frontend/src/components/common/Input.jsx - Button control
frontend/src/components/common/Button.jsx - Login page
frontend/src/pages/Login.jsx - Registration page
frontend/src/pages/Register.jsx - Navigation bar
frontend/src/components/common/Navbar.jsx - Route selection
frontend/src/routes/AppRoutes.jsx - Route guards
frontend/src/routes
Frontend session
- Auth state
frontend/src/context/AuthContext.jsx
Backend API
- Auth endpoints
backend/src/main/java/com/app/chat/controllers/AuthController.java
Backend authentication
- Auth orchestration
backend/src/main/java/com/app/chat/services/AuthService.java - Cookie handling
backend/src/main/java/com/app/chat/services/CookieService.java - Access token service
backend/src/main/java/com/app/chat/jwtAuth/JwtService.java - Refresh token service
backend/src/main/java/com/app/chat/jwtAuth/RefreshTokenService.java - JWT request filter
backend/src/main/java/com/app/chat/jwtAuth/JwtFilter.java - Security configuration
backend/src/main/java/com/app/chat/config/SecurityConfig.java - User lookup
backend/src/main/java/com/app/chat/services/MyUserDetailService.java - User principal
backend/src/main/java/com/app/chat/modals/MyUserDetails.java
Backend persistence
- User repository
backend/src/main/java/com/app/chat/repository/UserRepository.java - Refresh repository
backend/src/main/java/com/app/chat/repository/RefreshTokenRepository.java - User entity
backend/src/main/java/com/app/chat/entities/Users.java - Refresh token entity
backend/src/main/java/com/app/chat/entities/RefreshToken.java
Other components
- User
- Web app
Connections 25
- User → Web app: uses
- Web app → Route selection: renders
- Login page → Auth form: renders
frontend/src/pages/Login.jsx - Auth form → Input control: uses
frontend/src/components/auth/AuthForm.jsx - Auth form → Button control: uses
frontend/src/components/auth/AuthForm.jsx - Login page → Auth state: updates session
frontend/src/pages/Login.jsx - Navigation bar → Auth state: reads session
frontend/src/components/common/Navbar.jsx - Route selection → Route guards: routes through
- Auth state → Auth endpoints: requests session
frontend/src/context/AuthContext.jsx - Login page → Auth endpoints: submits credentials
frontend/src/pages/Login.jsx - Auth endpoints → Auth orchestration: delegates auth
backend/src/main/java/com/app/chat/controllers/AuthController.java - Auth endpoints → Cookie handling: sets cookies
backend/src/main/java/com/app/chat/controllers/AuthController.java - Auth orchestration → Access token service: creates access token
backend/src/main/java/com/app/chat/services/AuthService.java - Auth orchestration → Refresh token service: creates refresh token
backend/src/main/java/com/app/chat/services/AuthService.java - Auth orchestration → Cookie handling: reads refresh cookie
backend/src/main/java/com/app/chat/services/AuthService.java - Auth orchestration → User repository: looks up and saves users
backend/src/main/java/com/app/chat/services/AuthService.java - Auth orchestration → Refresh repository: revokes refresh token
backend/src/main/java/com/app/chat/services/AuthService.java - Auth orchestration → User principal: uses principal
backend/src/main/java/com/app/chat/services/AuthService.java - Refresh token service → Refresh repository: stores tokens
backend/src/main/java/com/app/chat/jwtAuth/RefreshTokenService.java - Refresh token service → Refresh token entity: creates entity
backend/src/main/java/com/app/chat/jwtAuth/RefreshTokenService.java - User lookup → User repository: loads user
backend/src/main/java/com/app/chat/services/MyUserDetailService.java - User lookup → User entity: maps user
backend/src/main/java/com/app/chat/services/MyUserDetailService.java - User lookup → User principal: creates principal
backend/src/main/java/com/app/chat/services/MyUserDetailService.java - Access token service → User principal: validates principal
backend/src/main/java/com/app/chat/jwtAuth/JwtService.java - Security configuration → JWT request filter: registers filter