How vaishnavisxngh/ai-microservices-platform works
The repository is a career-support web application with account access, chat, resume analysis, search, and notifications. Its clearest end-to-end workflow is resume upload: the authenticated resume route extracts text, records a pending analysis, and publishes a job; a worker analyzes it and updates the record for status and history views. Chat has a separate authenticated, model-backed history flow. The frontend and several service capabilities are visible in the tree, but their wiring is not shown in the excerpts, so those connections are omitted.
Main entry points: resume_routes.py Resume endpoints · auth_routes.py Auth endpoints · chat_routes.py Chat endpoints · worker.py Analysis worker
Components 26
Web application
- Sign in / signup
apps/frontend/components/AuthForm.tsx - Dashboard
apps/frontend/app/dashboard/page.tsx - Resume tools
apps/frontend/components/ResumeUpload.tsx - Chat interface
apps/frontend/components/ChatWindow.tsx - Job search
apps/frontend/components/SearchExperience.tsx - Notifications
apps/frontend/app/dashboard/notifications/page.tsx
Identity service
- Auth endpoints
services/auth-service/app/routes/auth_routes.py - Token handling
services/auth-service/app/jwt_handler.py - User records
services/auth-service/app/models.py - Auth database
services/auth-service/app/db.py
Chat service
- Chat endpoints
services/chat-service/app/routes/chat_routes.py - Gemini responses
services/chat-service/app/gemini_service.py - Chat records
services/chat-service/app/models.py - Chat database
services/chat-service/app/db.py
Resume analysis
- Resume endpoints
services/resume-service/app/routes/resume_routes.py - PDF extraction
services/resume-service/app/services/pdf_service.py - Analysis records
services/resume-service/app/models.py - Resume database
services/resume-service/app/db.py - Job publisher
services/resume-service/app/services/rabbitmq_service.py - Analysis worker
services/resume-worker-service/app/worker.py - Resume analysis AI
services/resume-worker-service/app/gemini_service.py - Worker database
services/resume-worker-service/app/db.py
Supporting services
- Embedding service
services/embedding-service/app/main.py - Notification service
services/notification-service/app/main.py
Other components
- User
- RabbitMQ queue
Connections 15
- User → Sign in / signup: enters credentials
- Auth endpoints → User records: queries / writes
services/auth-service/app/routes/auth_routes.py - Auth endpoints → Token handling: creates token
services/auth-service/app/routes/auth_routes.py - Auth endpoints → Auth database: gets session
services/auth-service/app/routes/auth_routes.py - Chat endpoints → Gemini responses: requests response
services/chat-service/app/routes/chat_routes.py - Chat endpoints → Chat records: writes / reads
services/chat-service/app/routes/chat_routes.py - Chat endpoints → Chat database: gets session
services/chat-service/app/routes/chat_routes.py - Resume endpoints → PDF extraction: extracts text
services/resume-service/app/routes/resume_routes.py - Resume endpoints → Analysis records: writes / reads
services/resume-service/app/routes/resume_routes.py - Resume endpoints → Resume database: gets session
services/resume-service/app/routes/resume_routes.py - Resume endpoints → Job publisher: publishes job
services/resume-service/app/routes/resume_routes.py - Job publisher → RabbitMQ queue: sends job
services/resume-service/app/services/rabbitmq_service.py - RabbitMQ queue → Analysis worker: delivers job
services/resume-worker-service/app/worker.py - Analysis worker → Resume analysis AI: analyzes text
services/resume-worker-service/app/worker.py - Analysis worker → Worker database: updates analysis
services/resume-worker-service/app/worker.py