A full-stack Resume Generator platform with modern UI, backend APIs, and AI-powered resume updates.
- Frontend: React 19 + Vite + TypeScript + Tailwind CSS v4
- Backend: Django REST Framework + PostgreSQL
- Architecture: Monorepo (frontend/ + backend/)
- State Management: Zustand
- API Calls: Axios
resumify/
├── frontend/ # React + Vite + TypeScript + Tailwind v4
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ ├── pages/ # Page components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── utils/ # Utility functions
│ │ ├── types/ # TypeScript type definitions
│ │ └── styles/ # Global styles
│ └── package.json
├── backend/ # Django REST Framework
│ ├── resumify_backend/ # Django project settings
│ ├── users/ # User management app
│ ├── resumes/ # Resume CRUD app
│ ├── ai_updater/ # AI resume update (Gemini)
│ └── requirements.txt
└── README.md
- Node.js 18+ and npm
- Python 3.10+
- PostgreSQL 12+ (optional, SQLite fallback available)
- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Navigate to the backend directory:
cd backend- Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt-
(Optional) Set up PostgreSQL database:
- Create a database named
resumify_db - Update database credentials in
resumify_backend/settings.pyif needed - Or use SQLite by uncommenting the SQLite config in
settings.py
- Create a database named
-
Run migrations:
python manage.py makemigrations
python manage.py migrate- Create a superuser (optional):
python manage.py createsuperuser- Configure environment variables (copy
backend/.env.exampletobackend/.env):GEMINI_API_KEY— required for the AI Resume Updater (/ai-updater)GEMINI_MODEL— optional, defaults togemini-flash-latest
From the frontend/ directory:
npm run devThe frontend will be available at http://localhost:3000
From the backend/ directory (with virtual environment activated):
python manage.py runserverThe backend API will be available at http://localhost:8000
POST /api/token/- Obtain JWT token (login)POST /api/token/refresh/- Refresh JWT token
GET /api/resumes/- List all resumes (authenticated)POST /api/resumes/- Create a new resumeGET /api/resumes/:id/- Get a specific resumePUT /api/resumes/:id/- Update a resumeDELETE /api/resumes/:id/- Delete a resumeGET /api/my-resumes/- Get all resumes for current user
POST /api/ai-updater/update/- Update a resume with AI (authenticated, multipart:file,instructions, optionalsupporting_file; PDF/DOCX, max 5MB each)
/- Home page/login- Login page/register- Registration page/builder- Resume builder page/preview/:id- Resume preview page/ai-updater- AI Resume Updater (authenticated)
- The frontend uses Tailwind CSS v4 with the Vite plugin (
@tailwindcss/vite) - The backend uses Django REST Framework with JWT authentication
- Resume data is stored as JSON in the database
- CORS is configured to allow requests from
localhost:3000
- Add resume templates
- Add DOCX export for AI-updated resumes
MIT