NexFolio is a full-stack MERN application that helps users generate AI-enhanced resumes, and verify their identity through email OTPs.
It combines a modern UI, powerful backend APIs, and AI-driven PDF generation to deliver a seamless experience for developers, students, and job seekers.
- Login / Signup (JWT-based)
- Secure cookies using
cookie-parser - Protected routes for dashboard and resume features
- Users enter resume details once
- AI processes the data and generates a professionally formatted PDF
- Uses Puppeteer + Handlebars templates
- Multiple template support (expandable)
- Sends a verification code to user email
- User must verify before accessing protected features
- Beautifully designed HTML email templates
- Automatically generated & stored for user download
- TailwindCSS
- Responsive, smooth animations
- Dark mode support
Ensures secure and clean user input.
- React.js
- TailwindCSS
- Axios
- React Router
- Context API
- Node.js
- Express.js
- JWT Authentication
- Puppeteer (PDF Generation)
- Handlebars (Resume Templates)
- MongoDB (Mongoose)
- Brevo (Sendinblue) API
NexFolio/
│
├── client/
│ ├── src/
│ │ ├── api/
│ │ ├── components/
│ │ ├── pages/
│ │ └── Routes/
│ └── tailwind.config.js
│
├── server/
│ ├── src/
│ │ ├── routes/
│ │ ├── controllers/
│ │ ├── models/
│ │ ├── middleware/
│ │ ├── DB/
│ │ └── templates/
│ | └──utils/
| | └──validations/
│ └── .env
│
└── Server.js
└── README.md
Create a .env file inside /server/src:
MONGO_URI=YOUR_MONGO_CONNECTION_STRING
JWT_SECRET=YOUR_SECRET_KEY
BREVO_API_KEY=YOUR_BREVO_KEY
GOOGLE_GEMINI_API_KEY=YOUR_API_KEY
CLIENT_URL=http://localhost:5173
PORT=3000
//FRONTEND_API_URI -> FOR PRODUCTION
git clone https://github.com/your-username/nexfolio.git
cd nexfoliocd server
npm install
npm run devcd client
npm install
npm run devFrontend → http://localhost:5173
Backend API → http://localhost:3000
- User fills resume form
- Data saved in MongoDB
- User clicks "Generate Resume"
- Backend loads Handlebars template
- Puppeteer converts template → PDF
- PDF returned or stored for download
- User signs up
- System sends OTP email via Brevo
- User enters OTP
- Account activated
Pull requests are welcome.
For major changes, please open an issue first to discuss what you’d like to change.
This project is licensed under the MIT License.