Skip to content

saroh95/resume-builder

Repository files navigation

📄 Resume Builder

A modern, full-stack resume builder application with AI-powered features, multiple templates, and PDF export capabilities.

Resume Builder React Node.js MongoDB

🎯 Features

  • 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

🏗️ Tech Stack

Frontend

  • 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

Backend

  • 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

📚 Documentation

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

🚀 Quick Start

Prerequisites

  • Node.js (v18 or higher)
  • MongoDB (local or cloud)
  • OpenAI API key
  • ImageKit account

Installation

  1. Clone the repository
git clone <repository-url>
cd resume-builder
  1. Install dependencies
# Backend
cd server
npm install

# Frontend
cd ../client
npm install
  1. 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_key

Create client/.env:

VITE_BASE_URL=http://localhost:3000
  1. Start the application
# Terminal 1 - Backend
cd server
npm start

# Terminal 2 - Frontend
cd client
npm run dev
  1. Access the application

📁 Project Structure

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

🔑 API Endpoints

User Routes

  • POST /api/users/register - Register new user
  • POST /api/users/login - Login user
  • GET /api/users/data - Get user data
  • GET /api/users/resumes - Get user resumes

Resume Routes

  • POST /api/resumes/create - Create new resume
  • PUT /api/resumes/update - Update resume
  • GET /api/resumes/get/:resumeId - Get resume by ID
  • GET /api/resumes/public/:resumeId - Get public resume
  • DELETE /api/resumes/delete/:resumeId - Delete resume

AI Routes

  • POST /api/ai/enhance-pro-sum - Enhance professional summary
  • POST /api/ai/enhance-job-desc - Enhance job description
  • POST /api/ai/upload-resume - Extract data from PDF resume

For detailed API documentation, see API_REFERENCE.md

🎨 Features Overview

1. Resume Templates

  • Classic: Traditional resume layout
  • Modern: Contemporary design
  • Minimal: Clean and simple
  • Minimal with Image: Minimal design with profile picture

2. AI Features

  • 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

3. Image Handling

  • Profile pictures uploaded to ImageKit CDN
  • Background removal option
  • Automatic image optimization

4. Public/Private Resumes

  • Make resumes public or private
  • Share public resumes via URL: /view/:resumeId
  • Private resumes only accessible to owner

🔒 Security

  • JWT-based authentication
  • Password hashing with bcrypt
  • Protected API routes
  • Input validation
  • CORS configuration
  • Environment variables for sensitive data

🧪 Testing

  1. Register a new user
  2. Create a new resume
  3. Edit resume fields
  4. Upload profile image
  5. Use AI enhancement features
  6. Upload and extract PDF resume
  7. Make resume public/private
  8. View public resume
  9. Download resume as PDF

📝 License

This project is licensed under the ISC License.

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📞 Support

For issues, questions, or contributions, please open an issue on the repository.

🔗 Additional Resources

📊 Project Statistics

  • Frontend: React + Vite
  • Backend: Node.js + Express
  • Database: MongoDB
  • Authentication: JWT
  • AI: OpenAI GPT
  • Image Hosting: ImageKit
  • Styling: Tailwind CSS
  • State Management: Redux Toolkit

🎯 Roadmap

  • 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:

About

see live website at

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages