Transforming resumes, empowering career journeys effortlessly.
- Overview
- Features
- Tech Stack
- Architecture
- Getting Started
- External Services Setup
- Development Information
- Testing
- Deployment
- Environment Variables Guide
- License
- Contact
ResumeZen helps students create ATS-friendly resumes that stand out to employers. Our platform uses artificial intelligence to analyze resumes, provide real-time feedback, and offer specific suggestions for improvement.
- ATS Analysis: Score your resume against Applicant Tracking Systems using AI
- Smart Suggestions: Get actionable feedback to improve your resume content and format
- PDF Processing: Upload and process PDF resumes with OCR text extraction
- Resume Storage: Securely store and manage multiple resume versions
- User Dashboard: Track improvement history and access analysis reports
- Subscription Plans: Flexible pricing options for different user needs
- Modern UI: Responsive design with smooth animations and transitions
- React.js - User interface library
- Vite - Next generation frontend tooling
- Tailwind CSS - Utility-first CSS framework
- Firebase - Authentication and client-side services
- React Router - Navigation and routing
- Framer Motion - Animation library
- Axios - HTTP client
- Context API - State management
- Node.js - JavaScript runtime
- Express - Web framework for Node.js
- MongoDB - NoSQL database
- Mongoose - MongoDB object modeling
- Firebase Admin SDK - Server-side Firebase integration
- JWT - JSON Web Tokens for authentication
- Helmet - Secure HTTP headers
- OpenRouter AI - AI analysis for resume content
- Cloudinary - Cloud storage for resume files
- OCR Space - Optical Character Recognition for text extraction
- Firebase Authentication - User authentication
- Authentication Service: Firebase-based authentication with JWT tokens
- Upload Service: Resume file processing and Cloudinary integration
- OCR Service: Text extraction from PDF files
- AI Analysis Service: Resume evaluation using OpenRouter AI
- Resume Parser Service: Structured data extraction from resumes
- Plan/Subscription Service: User plan management
- Authentication Context: User authentication state management
- Dashboard: Central user interface with sidebar navigation
- Resume Analysis Components: AI-powered resume evaluation
- Plan Selection: Subscription management
- Profile Management: User profile settings
- PDF Utils: Utilities for handling PDF documents
- Node.js (v18+)
- npm or yarn
- MongoDB Atlas account or local MongoDB
- Firebase project (for authentication)
- Cloudinary account (for file storage)
- OCR Space API key (for text extraction)
- OpenRouter API key (for AI analysis)
- Docker and Docker Compose (optional)
- Clone the repository
git clone https://github.com/Rohan-Singhh/ResumeZen.git
cd ResumeZen-
Set up environment variables
- Copy
.env.exampleto.envin the root directory - Copy
.env.exampleto.envin bothfrontendandbackenddirectories - Update the values with your credentials
Backend
.env:PORT=5000 MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/?retryWrites=true&w=majority&appName=YourAppName NODE_ENV=development JWT_SECRET=your_secure_jwt_secret JWT_EXPIRE=30d # Cloudinary credentials CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret # OCR Space API OCR_SPACE_API_KEY=your_ocr_space_api_key # OpenRouter API (for AI analysis) OPENROUTER_API_KEY=your_openrouter_api_key # API base URL (for internal service communication) API_BASE_URL=http://localhost:5000 # Firebase Admin SDK FIREBASE_ADMIN_SDK_PATH=./path-to-your-firebase-adminsdk-service-account.jsonFrontend
.env:VITE_REACT_APP_FIREBASE_API_KEY="your-api-key" VITE_REACT_APP_FIREBASE_AUTH_DOMAIN="your-project.firebaseapp.com" VITE_REACT_APP_FIREBASE_PROJECT_ID="your-project-id" VITE_REACT_APP_FIREBASE_STORAGE_BUCKET="your-project.appspot.com" VITE_REACT_APP_FIREBASE_MESSAGING_SENDER_ID="your-sender-id" VITE_REACT_APP_FIREBASE_APP_ID="your-app-id" VITE_REACT_APP_FIREBASE_MEASUREMENT_ID="your-measurement-id" VITE_API_URL="http://localhost:5000" VITE_REACT_APP_RECAPTCHA_KEY="your-recaptcha-site-key" VITE_CLOUDINARY_CLOUD_NAME="your-cloudinary-cloud-name" - Copy
-
Install dependencies
# Backend dependencies
cd backend
npm install
# Frontend dependencies
cd ../frontend
npm install- Start development servers
# Start backend server
cd backend
npm run dev
# Start frontend server (in a new terminal)
cd frontend
npm run dev- Clone the repository
git clone https://github.com/Rohan-Singhh/ResumeZen.git
cd ResumeZen-
Set up environment variables
- Copy
.env.exampleto.envin the root directory - Update the MongoDB connection string and other service credentials
- Copy
-
Start containers
docker-compose upAccess:
- Frontend: http://localhost:5173
- Backend API: http://localhost:5000
- Create a Firebase project
- Enable Authentication (Email/Password, Google)
- Get your Firebase configuration from Project Settings > Your Apps > SDK setup
- Set up Firebase Admin SDK:
- Go to Project Settings > Service Accounts
- Generate a new private key
- Save the JSON file in the backend directory
- Add the file path to your backend
.envas FIREBASE_ADMIN_SDK_PATH
- Create a Cloudinary account
- From your dashboard, get your:
- Cloud Name
- API Key
- API Secret
- Add these values to your backend
.envfile - Add your Cloud Name to your frontend
.envfile as VITE_CLOUDINARY_CLOUD_NAME
- Sign up for an OCR Space API key
- Add your API key to the backend
.envfile as OCR_SPACE_API_KEY
- Create an OpenRouter account
- Generate an API key
- Add your API key to the backend
.envfile as OPENROUTER_API_KEY
-
Frontend
src/components: Reusable UI componentssrc/pages: Page components and viewssrc/pages/Dashboard: Dashboard components and layoutsrc/services: API service integrationssrc/context: Context providers for state managementsrc/utils: Utility functions including PDF handlingsrc/assets: Static assets and images
-
Backend
services: Core business logic and external API integrationsaiAnalysisService.js: OpenRouter AI integration for resume analysisocrService.js: OCR Space integration for text extractionuploadService.js: Cloudinary integration for file storageresumeParserService.js: Resume data extraction and formatting
routes: API endpoint definitionsmodels: MongoDB schemas and data modelsmiddleware: Express middleware (auth, error handling, etc.)config: Application configuration and setup
- Upload PDF resume
- Extract text with OCR
- Process resume content with AI
- Generate ATS score and improvement suggestions
- Store analysis results
- Google login integration
- Email/password authentication
- JWT token-based session management
- User profile management
- Multiple plan options (one-time and subscription)
- Credits system for resume checks
- Premium features for higher-tier plans
# Run frontend tests
cd frontend
npm test
# Run backend tests
cd backend
npm testMONGODB_URI: MongoDB connection stringJWT_SECRET: Secret for JWT token generationCLOUDINARY_CLOUD_NAME,CLOUDINARY_API_KEY,CLOUDINARY_API_SECRET: Cloudinary credentialsOCR_SPACE_API_KEY: OCR Space API keyOPENROUTER_API_KEY: OpenRouter API keyFIREBASE_ADMIN_SDK_PATH: Path to Firebase Admin SDK service account JSON file
- Firebase configuration (API key, auth domain, project ID, etc.)
VITE_API_URL: URL to your backend APIVITE_CLOUDINARY_CLOUD_NAME: Cloudinary cloud name for direct uploadsVITE_REACT_APP_RECAPTCHA_KEY: reCAPTCHA site key for authentication
Copyright Β© 2025 ResumeZen. All rights reserved.
For questions or feedback, please reach out to the development team.