Skip to content

VIJAYAPANDIANT/Smart-Resume-Builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

26 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“„ Smart Resume Builder with AI ATS Checker

Deployed on Vercel Node.js Node Version React SQLite OpenAI


Smart Resume Builder is a full-stack, production-ready web application that enables users to build professional resumes, check ATS compatibility using AI, and export polished PDFs instantly. It features a live preview builder, OpenAI-powered resume scoring, JWT authentication, and a personal dashboard β€” all built with a modern tech stack and designed for a premium user experience. Deployed on Vercel.


πŸ“‹ Table of Contents

  1. Overview
  2. Live Demo
  3. Features
  4. How It Works
  5. Tech Stack
  6. Project Structure
  7. Getting Started
  8. Environment Variables
  9. API Reference
  10. Deployment Guide
  11. Contributing
  12. License

πŸ” Overview

Smart Resume Builder gives job seekers a complete edge. Users sign up, build their resume with a guided form and live side-by-side preview, save it to their personal dashboard, and then run it through an AI-powered ATS Checker that uses OpenAI's Vision API to return a score, strengths, weaknesses, and specific improvement recommendations. Resumes can be exported to print-ready multi-page PDFs at any time.


🌐 Live Demo

πŸš€ View the Live App on Vercel β†’


✨ Features

1. πŸ“ Interactive Resume Builder

  • Guided multi-section form: Personal Info, Work Experience, Education, and Skills.
  • Real-time live preview pane that updates as you type.
  • Create new resumes or edit existing ones from your dashboard (/builder/:id).

2. πŸ€– AI-Powered ATS Checker

  • Upload an image/screenshot of any resume.
  • Powered by OpenAI Vision API β€” analyzes layout, keywords, and formatting.
  • Returns an ATS score (0–100) with color-coded rating: Excellent / Good / Needs Work.
  • Detailed breakdown of Strengths, Weaknesses, and Recommendations.

3. πŸ–¨οΈ Multi-Page PDF Export

  • Export your finished resume as a high-quality PDF.
  • Smart pagination via html2pdf.js β€” content never gets clipped across pages.

4. 🎨 Modern, Responsive UI

  • Built with Tailwind CSS with glassmorphism card components.
  • Full Dark Mode / Light Mode toggle powered by ThemeContext.
  • Smooth animated transitions using Framer Motion.

5. πŸ” Secure Authentication

  • Full JWT-based stateless auth (register β†’ login β†’ protected routes).
  • Passwords hashed with bcryptjs.
  • PrivateRoute guard redirects unauthenticated users to /login.
  • Protected pages: Dashboard, Builder, ATS Checker.
  • Public pages: Home, Login, Register, Help.

6. πŸ—‚οΈ Personal Dashboard

  • View all your saved resumes in one place.
  • One-click edit or delete for any resume.
  • Quick-launch button to jump into the Resume Builder.

7. πŸ’¬ Help Center

  • Comprehensive guide covering AI Resume Building and ATS Checking workflows.
  • Direct WhatsApp and Email support buttons for instant assistance.

βš™οΈ How It Works

User Registers / Logs In (JWT issued)
          β”‚
          β–Ό
    Resume Builder  ──────────────────────────────┐
    (Form + Live Preview)                         β”‚
          β”‚                                       β”‚
          β–Ό                                       β–Ό
  Save Resume to SQLite DB           ATS Checker (Upload Image)
          β”‚                                       β”‚
          β–Ό                                       β–Ό
   Dashboard (Manage Resumes)    OpenAI Vision API β†’ Score + Feedback
          β”‚
          β–Ό
  Export Resume as PDF (html2pdf.js)

πŸ’» Tech Stack

Frontend

Technology Version Purpose
React 18 UI Framework (via Vite)
Tailwind CSS v3 Styling & Design System
Framer Motion latest Animations & Transitions
Lucide React latest Icon Library
html2pdf.js latest PDF Generation & Export
React Router DOM v6 Client-Side Routing
Axios latest HTTP Client

Backend

Technology Version Purpose
Node.js v18+ Runtime Environment
Express.js 4.x Web Server & REST API
SQLite (sqlite3) 6.x Embedded Local Database
OpenAI SDK 4.x AI Vision Resume Analysis
Multer 2.x Multipart Image Upload
jsonwebtoken 9.x JWT Authentication
bcryptjs 2.x Password Hashing
Helmet 7.x HTTP Security Headers
Morgan 1.x HTTP Request Logging
dotenv 16.x Environment Variable Loader

πŸ“‚ Project Structure

πŸ“¦ Smart-Resume-Builder/
β”œβ”€β”€ πŸ“ backend/                    # Express.js API Server
β”‚   β”œβ”€β”€ πŸ“ config/
β”‚   β”‚   └── πŸ“„ db.js               # SQLite DB initialization (initDb)
β”‚   β”œβ”€β”€ πŸ“ controllers/
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authController.js   # Register & Login logic
β”‚   β”‚   β”œβ”€β”€ πŸ“„ resumeController.js # Resume CRUD operations
β”‚   β”‚   └── πŸ“„ aiController.js     # OpenAI ATS analysis
β”‚   β”œβ”€β”€ πŸ“ middleware/
β”‚   β”‚   └── πŸ“„ authMiddleware.js   # JWT verification middleware
β”‚   β”œβ”€β”€ πŸ“ models/                 # DB query helpers (User, Resume)
β”‚   β”œβ”€β”€ πŸ“ routes/
β”‚   β”‚   β”œβ”€β”€ πŸ“„ authRoutes.js       # POST /api/auth/register, /login
β”‚   β”‚   β”œβ”€β”€ πŸ“„ resumeRoutes.js     # GET/POST/DELETE /api/resumes
β”‚   β”‚   └── πŸ“„ aiRoutes.js         # POST /api/ai/analyze-ats-image
β”‚   β”œβ”€β”€ πŸ“„ database.sqlite         # Local SQLite database file
β”‚   └── πŸ“„ server.js               # Entry point (Express app setup)
β”‚
β”œβ”€β”€ πŸ“ frontend/                   # React 18 + Vite UI
β”‚   β”œβ”€β”€ πŸ“ public/                 # Static assets
β”‚   β”œβ”€β”€ πŸ“ src/
β”‚   β”‚   β”œβ”€β”€ πŸ“ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Navbar.jsx      # Top navigation bar
β”‚   β”‚   β”‚   └── πŸ“„ ResumePreview.jsx # Live resume preview pane
β”‚   β”‚   β”œβ”€β”€ πŸ“ context/
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ AuthContext.jsx # Global auth state & JWT storage
β”‚   β”‚   β”‚   └── πŸ“„ ThemeContext.jsx# Dark / Light mode toggle
β”‚   β”‚   β”œβ”€β”€ πŸ“ pages/
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Home.jsx        # Landing page (public)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Login.jsx       # Login form (public)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Register.jsx    # Registration form (public)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Dashboard.jsx   # Saved resumes list (protected)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ Builder.jsx     # Resume form + live preview (protected)
β”‚   β”‚   β”‚   β”œβ”€β”€ πŸ“„ ATSChecker.jsx  # AI ATS score page (protected)
β”‚   β”‚   β”‚   └── πŸ“„ Help.jsx        # Help center (public)
β”‚   β”‚   β”œβ”€β”€ πŸ“ services/
β”‚   β”‚   β”‚   └── πŸ“„ api.js          # Axios instance with base URL & JWT header
β”‚   β”‚   β”œβ”€β”€ πŸ“„ App.jsx             # Route definitions (PrivateRoute guard)
β”‚   β”‚   └── πŸ“„ index.css           # Tailwind directives & custom layers
β”‚   β”œβ”€β”€ πŸ“„ vercel.json             # Vercel deployment & SPA rewrite config
β”‚   └── πŸ“„ vite.config.js          # Vite bundler settings
β”‚
└── πŸ“„ README.md

πŸš€ Getting Started

Prerequisites

1. Clone the Repository

git clone https://github.com/your-username/smart-resume-builder.git
cd smart-resume-builder

2. Backend Setup

cd backend
npm install

Create a .env file in the backend/ folder (see Environment Variables), then:

node server.js
# βœ… Server starts on http://localhost:5000
# βœ… SQLite Connected

3. Frontend Setup

Open a new terminal:

cd frontend
npm install
npm run dev
# βœ… App starts on http://localhost:5173

Open your browser at http://localhost:5173 to use the app.


πŸ”‘ Environment Variables

Create a .env file in the backend/ directory:

# Server Port
PORT=5000

# Authentication β€” use a long, random secret string
JWT_SECRET=your_super_secret_jwt_key_here

# OpenAI β€” required for the ATS Checker feature
OPENAI_API_KEY=sk-your-openai-api-key-here

⚠️ Never commit your .env file. Ensure it is listed in .gitignore.


πŸ“‘ API Reference

All protected routes require the header:

Authorization: Bearer <your_jwt_token>

πŸ” Auth β€” /api/auth

Method Endpoint Auth Body Description
POST /api/auth/register ❌ { name, email, password } Register a new user
POST /api/auth/login ❌ { email, password } Login, returns JWT token

πŸ“„ Resumes β€” /api/resumes

Method Endpoint Auth Description
GET /api/resumes βœ… Get all resumes for the logged-in user
POST /api/resumes βœ… Save a new resume
GET /api/resumes/:id βœ… Get a single resume by ID
PUT /api/resumes/:id βœ… Update an existing resume
DELETE /api/resumes/:id βœ… Delete a resume by ID

πŸ€– AI β€” /api/ai

Method Endpoint Auth Body Description
POST /api/ai/analyze-ats-image βœ… FormData: { resumeImage: File } Analyze resume image, returns ATS score + feedback

Example ATS Response:

{
  "score": 78,
  "summary": "A strong resume with good structure, but missing key technical keywords.",
  "feedback": {
    "strengths": ["Clean layout", "Quantified achievements"],
    "weaknesses": ["Missing technical skills section"],
    "recommendations": ["Add a Skills section with relevant technologies"]
  }
}

☁️ Deployment Guide

Frontend β†’ Vercel

  1. Push your project to a GitHub Repository.
  2. Ensure node_modules is in .gitignore.
  3. Go to vercel.com β†’ Import your repository.
  4. Set Root Directory to frontend.
  5. Vercel will auto-detect Vite and run npx vite build.

Backend β†’ Render / Railway

  1. Deploy the backend/ folder as a Node.js Web Service.
  2. Set all environment variables (PORT, JWT_SECRET, OPENAI_API_KEY) in the dashboard.
  3. Set the Start Command to: node server.js
  4. After deployment, copy your live backend URL and update frontend/src/services/api.js:
// Change from:
baseURL: 'http://localhost:5000/api'
// To:
baseURL: 'https://your-backend.onrender.com/api'

🀝 Contributing

Contributions, issues, and feature requests are welcome!

  1. Fork the repository
  2. Create your branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m 'Add my feature'
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

"Your resume is not just a document β€” it's the blueprint of your professional journey. Build it with purpose, design it with care, and let it open the doors to your future."

Build your future today. πŸš€

Releases

No releases published

Packages

 
 
 

Contributors

Languages