AI-powered Resume Builder built with a Production-Ready Microservices Architecture.
ResumePilot helps students and freshers create professional, ATS-friendly resumes using AI. The platform combines resume generation, ATS analysis, secure authentication, payments, caching, event-driven communication, and scalable infrastructure into a real-world SaaS application.
- Overview
- Features
- Architecture
- Microservices
- Technology Stack
- Infrastructure
- Project Structure
- Prerequisites
- Environment Variables
- Running the Project
- Docker Deployment
- API Gateway
- Redis
- RabbitMQ
- AI Integration
- Payment System
- Security
- Performance
- Future Improvements
- Author
- License
ResumePilot is designed as a production-ready SaaS platform rather than a traditional CRUD application.
The project demonstrates modern backend engineering practices including:
- Microservices Architecture
- API Gateway Pattern
- Event-Driven Communication
- Redis Caching
- Rate Limiting
- Dockerized Deployment
- AI Integration
- Payment Integration
- Database Per Service Pattern
Every backend service runs independently inside Docker containers and communicates through RabbitMQ.
- OTP Email Authentication
- JWT Access Tokens
- Secure Login
- Protected Routes
- AI Resume Summary
- ATS Resume Analysis
- Resume Management
- Resume Editing
- Resume History
- Google Gemini Integration
- Resume Summary Generation
- ATS Suggestions
- Content Improvement
- Free Credits on Registration
- Resume Credit Consumption
- Credit Tracking
- Razorpay Payment Integration
- Live Resume Preview
- Responsive Design
- Progressive Web App
- Modern SaaS UI
- Smooth Animations
Client
│
│
API Gateway
│
───────────────────────────────────────
Auth Service
Profile Service
Resume Service
Payment Service
Notification Service
───────────────────────────────────────
RabbitMQ Event Bus
───────────────────────────────────────
MongoDB PostgreSQL Redis
The API Gateway acts as the single entry point.
All backend services communicate asynchronously using RabbitMQ.
Each service owns its own database.
Responsibilities
- Authentication Middleware
- Route Forwarding
- Rate Limiting
- Request Validation
- Redis Caching
- JWT Verification
Responsibilities
- User Registration
- OTP Verification
- Login
- JWT Generation
Database
MongoDB
Responsibilities
- User Profile
- Personal Information
- Skills
- Education
- Experience
Database
MongoDB
Responsibilities
- Resume CRUD
- AI Summary
- ATS Analysis
- Resume Templates
Database
MongoDB
Responsibilities
- Razorpay Integration
- Credit Purchase
- Transaction History
Database
PostgreSQL
Responsibilities
- OTP Emails
- Payment Emails
- Resume Notifications
Communication
RabbitMQ Consumer
- React
- Redux Toolkit
- TanStack Query
- Tailwind CSS
- Framer Motion
- React Router
- Node.js
- Express.js
- JWT Authentication
- Google Gemini API
- MongoDB
- PostgreSQL
- Docker
- Docker Compose
- Redis
- RabbitMQ
- Nginx (Optional)
- Razorpay
ResumePilot is completely containerized.
Every service runs independently using Docker.
Client
↓
API Gateway
↓
Microservices
↓
MongoDB
PostgreSQL
Redis
RabbitMQ
ResumePilot/
client/
server/
gateway/
services/
│
├── auth-service
├── profile-service
├── resume-service
├── payment-service
└── notification-service
docker-compose.yml
README.md
Before running the project make sure you have
- Docker
- Docker Compose
No local MongoDB or Redis installation is required.
Everything runs inside Docker.
Each service contains its own .env file.
Example
PORT=
JWT_SECRET=
MONGODB_URI=
POSTGRES_URI=
REDIS_HOST=
REDIS_PORT=
RABBITMQ_URL=
GEMINI_API_KEY=
RAZORPAY_KEY_ID=
RAZORPAY_SECRET=
SMTP_HOST=
SMTP_USER=
SMTP_PASS=
Clone the repository
git https://github.com/Dev-akash77/ResumePilot.gitMove into the project
cd resumepilotCreate environment files
gateway/.env
services/auth-service/.env
services/profile-service/.env
services/resume-service/.env
services/payment-service/.env
services/notification-service/.env
Build every service
docker compose buildStart the complete application
docker compose upRun in detached mode
docker compose up -dStop all containers
docker compose downRebuild after changes
docker compose up --buildThe gateway is responsible for
- Authentication
- JWT Verification
- Request Routing
- Redis Caching
- Rate Limiting
- API Protection
All client requests go through the gateway.
No service is directly exposed.
Redis is used for
- API Response Caching
- Gateway Rate Limiting
- Faster Read Operations
- Reduced Database Load
Benefits
- Lower latency
- Better scalability
- Higher throughput
RabbitMQ provides asynchronous communication between services.
Examples
User Registered
↓
Notification Service sends Welcome Email
Payment Completed
↓
Credits Updated
↓
Notification Email Sent
Services remain loosely coupled and independently scalable.
ResumePilot uses Google Gemini for
- Resume Summary Generation
- ATS Resume Suggestions
- Professional Content Improvement
The AI service is integrated inside the Resume Service.
Payment processing is handled using Razorpay.
Features
- Credit Purchase
- Transaction History
- Secure Payment Verification
Financial data is stored in PostgreSQL for ACID compliance.
ResumePilot includes multiple security layers.
- JWT Authentication
- Protected APIs
- Rate Limiting
- Redis Cache Protection
- Input Validation
- Secure Password Hashing
- Environment Variable Isolation
- Payment Verification
Performance optimizations include
- Redis Caching
- API Gateway
- Database Per Service
- Asynchronous Events
- Stateless Services
- Dockerized Deployment
- Resume PDF Export
- Multiple Resume Templates
- AI Interview Preparation
- AI Job Matching
- Recruiter Dashboard
- Portfolio Generator
- Resume Analytics
- Kubernetes Deployment
- CI/CD Pipeline
- Monitoring with Prometheus & Grafana
Akash Biswas
Full Stack Developer
AI • Microservices • Cloud • System Design
GitHub
https://github.com/Dev-akash77
https://www.linkedin.com/in/akash-biswas-486435289/
This project is licensed under the MIT License.
Feel free to use, modify, and contribute.