A modern, full-stack resume builder application with AI-powered features, multiple templates, and PDF export capabilities.
- ✅ User Authentication - Secure JWT-based authentication
- ✅ Resume Management - Create, edit, delete, and organize multiple resumes
- ✅ Multiple Templates - 4 beautiful resume templates (Classic, Modern, Minimal, Minimal with Image)
- ✅ AI-Powered Features:
- Enhance professional summaries
- Enhance job descriptions
- Extract data from uploaded PDF resumes
- ✅ Image Upload - Profile picture upload with background removal
- ✅ Public/Private Resumes - Share resumes via public links
- ✅ PDF Export - Download resumes as PDF
- ✅ Real-time Preview - See changes instantly as you edit
- ✅ Customizable Colors - Personalize resume accent colors
- React 19.1.1 - UI library
- Vite 7.1.7 - Build tool
- React Router DOM 7.9.3 - Routing
- Redux Toolkit 2.9.0 - State management
- Tailwind CSS 4.1.13 - Styling
- Axios 1.12.2 - HTTP client
- Node.js - Runtime environment
- Express 5.1.0 - Web framework
- MongoDB - Database
- Mongoose 8.18.3 - ODM
- JWT 9.0.2 - Authentication
- OpenAI 6.1.0 - AI integration
- ImageKit 7.1.0 - Image hosting
Comprehensive documentation is available in the following files:
Complete project documentation including:
- Project overview and architecture
- Detailed API documentation
- Technology stack
- Database models
- Security features
- Development notes
Visual flow diagrams for:
- User authentication flow
- Resume creation and building flow
- PDF upload and extraction flow
- AI enhancement flow
- Image upload flow
- Public resume sharing flow
- Complete system flow
Step-by-step setup instructions:
- Prerequisites
- Installation steps
- Configuration guide
- Getting API keys
- Running the application
- Troubleshooting
- Production deployment
Quick API reference:
- All endpoints with examples
- Request/response formats
- Authentication flow
- cURL examples
- Error handling
- Node.js (v18 or higher)
- MongoDB (local or cloud)
- OpenAI API key
- ImageKit account
- Clone the repository
git clone <repository-url>
cd resume-builder- Install dependencies
# Backend
cd server
npm install
# Frontend
cd ../client
npm install- Configure environment variables
Create server/.env:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/resume-builder
JWT_SECRET=your_jwt_secret_key
OPENAI_API_KEY=your_openai_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
OPENAI_MODEL=gpt-3.5-turbo
IMAGEKIT_PRIVATE_KEY=your_imagekit_private_keyCreate client/.env:
VITE_BASE_URL=http://localhost:3000- Start the application
# Terminal 1 - Backend
cd server
npm start
# Terminal 2 - Frontend
cd client
npm run dev- Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
resume-builder/
├── client/ # Frontend application
│ ├── src/
│ │ ├── app/ # Redux store
│ │ ├── components/ # React components
│ │ ├── pages/ # Page components
│ │ └── configs/ # Configuration
│ └── package.json
│
├── server/ # Backend application
│ ├── configs/ # Configuration files
│ ├── controllers/ # Request handlers
│ ├── middlewares/ # Custom middlewares
│ ├── models/ # Database models
│ ├── routes/ # API routes
│ └── server.js # Entry point
│
├── PROJECT_DOCUMENTATION.md
├── FLOW_DIAGRAMS.md
├── SETUP_GUIDE.md
├── API_REFERENCE.md
└── README.md
POST /api/users/register- Register new userPOST /api/users/login- Login userGET /api/users/data- Get user dataGET /api/users/resumes- Get user resumes
POST /api/resumes/create- Create new resumePUT /api/resumes/update- Update resumeGET /api/resumes/get/:resumeId- Get resume by IDGET /api/resumes/public/:resumeId- Get public resumeDELETE /api/resumes/delete/:resumeId- Delete resume
POST /api/ai/enhance-pro-sum- Enhance professional summaryPOST /api/ai/enhance-job-desc- Enhance job descriptionPOST /api/ai/upload-resume- Extract data from PDF resume
For detailed API documentation, see API_REFERENCE.md
- Classic: Traditional resume layout
- Modern: Contemporary design
- Minimal: Clean and simple
- Minimal with Image: Minimal design with profile picture
- Professional Summary Enhancement: Uses OpenAI to improve summary content
- Job Description Enhancement: Enhances experience/job descriptions
- PDF Extraction: Extracts data from uploaded PDF resumes using AI
- Profile pictures uploaded to ImageKit CDN
- Background removal option
- Automatic image optimization
- Make resumes public or private
- Share public resumes via URL:
/view/:resumeId - Private resumes only accessible to owner
- JWT-based authentication
- Password hashing with bcrypt
- Protected API routes
- Input validation
- CORS configuration
- Environment variables for sensitive data
- Register a new user
- Create a new resume
- Edit resume fields
- Upload profile image
- Use AI enhancement features
- Upload and extract PDF resume
- Make resume public/private
- View public resume
- Download resume as PDF
This project is licensed under the ISC License.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
For issues, questions, or contributions, please open an issue on the repository.
- React Documentation
- Express.js Documentation
- MongoDB Documentation
- OpenAI API Documentation
- ImageKit Documentation
- Frontend: React + Vite
- Backend: Node.js + Express
- Database: MongoDB
- Authentication: JWT
- AI: OpenAI GPT
- Image Hosting: ImageKit
- Styling: Tailwind CSS
- State Management: Redux Toolkit
- Add more resume templates
- Export to different formats (DOCX, HTML)
- Resume analytics
- Collaboration features
- Resume versioning
- ATS optimization suggestions
- Multi-language support
Made with ❤️ using React and Node.js
For detailed documentation, please refer to:
- PROJECT_DOCUMENTATION.md - Complete project docs
- FLOW_DIAGRAMS.md - Visual flow diagrams
- SETUP_GUIDE.md - Setup instructions
- API_REFERENCE.md - API reference