How arindam-roy2004/roastforge works
RoastForge is a resume-feedback and developer-discovery app. Users can try an anonymous roast, or sign in, upload a resume, receive an AI evaluation, and share it for community comments and reactions; projects add a portfolio track, while recruiters search candidate profiles and scores. The graph follows documented API and client flows and sampled controller/service ownership; some capability wiring is documented only in the README, so uncertain internal calls are omitted.
Main entry points: app.ts Express API · analysis.controller.ts AI analysis · resume.service.ts Resume management · (roasthub) App pages
Components 23
Web client
- App pages
frontend/src/app/(roasthub) - API client
frontend/src/lib/api.ts - Reaction sync
frontend/src/lib/resume-reaction-sync.ts
Identity and profiles
- Authentication
backend/src/modules/auth/auth.service.ts - Google sign-in
backend/src/modules/auth/google-auth.service.ts - User records
backend/src/modules/auth/auth.model.ts
Resume feedback
- Resume routes
backend/src/modules/resume/resume.routes.ts - Resume management
backend/src/modules/resume/resume.service.ts - Resume records
backend/src/modules/resume/resume.model.ts - File upload
backend/src/modules/upload/upload.routes.ts - Analysis routes
backend/src/modules/analysis/analysis.routes.ts - AI analysis
backend/src/modules/analysis/analysis.controller.ts - Comments and votes
backend/src/modules/comment/comment.service.ts
Portfolio and recruiting
- Project portfolio
backend/src/modules/project/project.routes.ts - Candidate search
backend/src/modules/recruiter/recruiter.controller.ts - Talent scoring
backend/src/modules/auth/talent-score.service.ts
Other components
- Visitor / user
- Express API
backend/src/app.ts - Cloudinary storage
- Gemini AI
- Redis cache
- MongoDB
- Google OAuth
Connections 30
- Visitor / user → App pages: uses
- App pages → API client: requests
- API client → Express API: calls
- Express API → Resume routes: dispatches
- Express API → Analysis routes: dispatches
- Express API → Authentication: dispatches
- Express API → Comments and votes: dispatches
- Express API → Project portfolio: dispatches
- Express API → Candidate search: dispatches
- Resume routes → Resume management: calls
- Resume management → Resume records: reads/writes
- Resume management → Talent scoring: recalculates
- Talent scoring → MongoDB: updates scores
- Resume management → MongoDB: reads/writes
- File upload → Cloudinary storage: uploads files
- Analysis routes → AI analysis: dispatches
- AI analysis → Resume records: loads and saves
- AI analysis → Cloudinary storage: fetches PDF
- AI analysis → Redis cache: checks/stores cache
- AI analysis → Gemini AI: requests roast
- AI analysis → Talent scoring: recalculates score
- Comments and votes → MongoDB: reads/writes
- Project portfolio → MongoDB: reads/writes
- Candidate search → MongoDB: searches profiles
- Candidate search → User records: reads candidate data
- Authentication → User records: reads/writes
- Google sign-in → Google OAuth: verifies token
- Google sign-in → Authentication: issues tokens
- Reaction sync → API client: syncs reactions
- App pages → Reaction sync: queues reactions