How sathvikchoudar61/codemanager works
CodeManager aggregates competitive-programming profiles and adds account management, daily problems, contests, and an online compiler. The main workflow is a signed-in user viewing the dashboard or refreshing platform data: platform services fetch external statistics, update a unified record, and expose aggregate views to the frontend. The graph also preserves the documented feature areas whose source was not sampled. Relationships among those unsampled parts are shown as unverified where necessary; source excerpts establish the specific service-to-fetcher, persistence, and authentication links.
Main entry points: api.js API client · App.jsx Route application · auth Authentication · CodingStats.java Platform statistics
Components 23
Web application
- Route application
frontend/src/App.jsx - Auth state
frontend/src/contexts/AuthContext.jsx - API client
frontend/src/services/api.js - Dashboard views
frontend/src/pages/Dashboard.jsx - Platform details
frontend/src/pages/PlatformDetails.jsx - Profile settings
frontend/src/pages/Profile.jsx
Identity and profile
- Authentication
CodingManager/src/main/java/com/sathvik/CodingManager/service/auth - Email delivery
CodingManager/src/main/java/com/sathvik/CodingManager/service/email/EmailService.java - User records
CodingManager/src/main/java/com/sathvik/CodingManager/model/User.java - Profile updates
CodingManager/src/main/java/com/sathvik/CodingManager/service/profile
Platform aggregation
- Stats synchronization
CodingManager/src/main/java/com/sathvik/CodingManager/service/platform/PlatformUpdateService.java - Platform fetchers
CodingManager/src/main/java/com/sathvik/CodingManager/service/fetchers - Platform statistics
CodingManager/src/main/java/com/sathvik/CodingManager/model/CodingStats.java - Stats retrieval
CodingManager/src/main/java/com/sathvik/CodingManager/service/platform/PlatformGetService.java
Coding features
- Daily problems
CodingManager/src/main/java/com/sathvik/CodingManager/service/problemoftheday/ProblemOfTheDayService.java - Daily problem record
CodingManager/src/main/java/com/sathvik/CodingManager/model/problemoftheday/ProblemOfTheDay.java - Contest updates
CodingManager/src/main/java/com/sathvik/CodingManager/service/contest/ContestUpdateService.java - Contest records
CodingManager/src/main/java/com/sathvik/CodingManager/model/Contest.java - Online compiler
CodingManager/src/main/java/com/sathvik/CodingManager/service/compiler
Other components
- User
- Coding platforms
- Docker runtime
- MongoDB
Connections 30
- User → Route application: uses
README.md - Route application → Auth state: provides auth
frontend/src/App.jsx - Auth state → API client: requests session
frontend/src/contexts/AuthContext.jsx - Route application → Dashboard views: routes to
frontend/src/App.jsx - Route application → Platform details: routes to
frontend/src/App.jsx - Route application → Profile settings: routes to
frontend/src/App.jsx - Dashboard views → API client: loads stats
- Platform details → API client: loads details
- Profile settings → API client: updates profile
frontend/src/pages/Profile.jsx - API client → Authentication: calls API
- Authentication → User records: reads and writes
CodingManager/src/main/java/com/sathvik/CodingManager/service/auth/AuthCheckService.java - Authentication → Email delivery: sends verification
CodingManager/src/main/java/com/sathvik/CodingManager/service/auth/SignUpService.java - Authentication → Email delivery: sends email
CodingManager/src/main/java/com/sathvik/CodingManager/service/auth/SignUpService.java - Email delivery → User: delivers mail
- Profile updates → User records: updates user
CodingManager/src/main/java/com/sathvik/CodingManager/service/profile/UpdateProfileService.java - Profile updates → Platform statistics: updates usernames
CodingManager/src/main/java/com/sathvik/CodingManager/service/profile/UpdateProfileService.java - Stats synchronization → Platform fetchers: dispatches fetches
CodingManager/src/main/java/com/sathvik/CodingManager/service/platform/PlatformUpdateService.java - Stats synchronization → Platform statistics: saves totals
CodingManager/src/main/java/com/sathvik/CodingManager/service/platform/PlatformUpdateService.java - Platform fetchers → Coding platforms: fetches profiles
CodingManager/src/main/java/com/sathvik/CodingManager/service/fetchers/LeetcodeFetcherService.java - Stats retrieval → Platform statistics: reads stats
CodingManager/src/main/java/com/sathvik/CodingManager/service/platform/PlatformGetService.java - Stats retrieval → API client: serves views
- Daily problems → Daily problem record: saves daily picks
CodingManager/src/main/java/com/sathvik/CodingManager/service/problemoftheday/ProblemOfTheDayService.java - Daily problems → Platform fetchers: fetches challenges
CodingManager/src/main/java/com/sathvik/CodingManager/service/problemoftheday/ProblemOfTheDayService.java - Daily problems → API client: serves problems
- Contest updates → Contest records: updates contests
CodingManager/src/main/java/com/sathvik/CodingManager/service/contest/ContestUpdateService.java - Contest updates → API client: serves contests
- API client → Online compiler: submits code
- Online compiler → Docker runtime: executes isolated
README.md - Platform statistics → MongoDB: stored in
CodingManager/src/main/java/com/sathvik/CodingManager/model/CodingStats.java - User records → MongoDB: stored in
CodingManager/src/main/java/com/sathvik/CodingManager/model/User.java