A full-stack web application that uses Generative AI to create personalized interview preparation plans based on your resume and target job description.
- 📄 Resume Upload — Upload your PDF resume for AI analysis
- 🧠 AI Report Generation — Powered by Google Gemini / Groq to generate a tailored interview prep plan
- 📊 Match Score — See how well your profile matches the job description
- 📁 Recent Reports — View, revisit, and manage all your past reports
- 🗑️ Delete Reports — Permanently delete reports with confirmation modal
- 🔐 Authentication — Secure JWT-based login/register with cookie sessions
- 🌑 Dark Mode UI — Premium dark-themed interface built with Ant Design
| Technology | Purpose |
|---|---|
| React 19 | UI Framework |
| Vite 8 | Build tool & Dev server |
| Ant Design 6 | Component library |
| React Router 7 | Client-side routing |
| Axios | HTTP client |
| SASS | CSS preprocessor |
| Technology | Purpose |
|---|---|
| Express 5 | Node.js web framework |
| MongoDB + Mongoose | Database & ODM |
| @google/genai | Google Gemini AI SDK |
| Groq SDK | Groq AI inference |
| Multer | File (resume) upload |
| pdf-parse | PDF text extraction |
| JWT | Authentication tokens |
| bcryptjs | Password hashing |
| Zod | Schema validation |
Gen-ai/
├── Frontend/ # React + Vite frontend
│ └── src/
│ ├── features/
│ │ ├── auth/ # Login, Register, Protected route
│ │ │ ├── pages/
│ │ │ ├── hooks/
│ │ │ ├── services/
│ │ │ └── components/
│ │ └── interview/ # Core interview prep feature
│ │ ├── pages/ # Home.jsx, Interview.jsx
│ │ ├── hooks/ # useInterview.js
│ │ ├── services/ # interview.ai.js (API calls)
│ │ ├── components/
│ │ ├── interview.context.jsx
│ │ └── interview.model.js
│ ├── app.routes.jsx # App routing
│ └── main.jsx
│
└── Backend/ # Express.js backend
└── src/
├── controllers/ # Route handlers
├── routes/ # API route definitions
├── models/ # Mongoose models
├── services/ # Business logic & AI calls
├── middlewares/ # Auth & file middlewares
├── config/ # DB & app config
└── utils/ # Helper utilities
| Method | Endpoint | Description | Access |
|---|---|---|---|
POST |
/register |
Register a new user | Public |
POST |
/login |
Login and receive JWT cookie | Public |
GET |
/logout |
Logout and blacklist token | Public |
GET |
/get-me |
Get current user info | Private |
| Method | Endpoint | Description | Access |
|---|---|---|---|
POST |
/ |
Generate AI interview report (with resume upload) | Private |
GET |
/all |
Get all reports for logged-in user | Private |
GET |
/reports/:interviewId |
Get a specific report by ID | Private |
DELETE |
/delete/:interviewId |
Delete a report by ID | Private |
git clone https://github.com/your-username/Gen-ai.git
cd Gen-aicd Backend
pnpm installCreate a .env file in Backend/:
PORT=4000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret_key
GEMINI_API_KEY=your_google_gemini_api_key
GROQ_API_KEY=your_groq_api_keyStart the backend dev server:
pnpm run devcd ../Frontend
pnpm install
pnpm run devThe app will be available at http://localhost:5173.
| Path | Component | Description |
|---|---|---|
/ |
Home |
Dashboard — generate new report, view recent reports |
/login |
Login |
User login page |
/register |
Register |
User registration page |
/interview/reports/:id |
Interview |
View a specific AI-generated report |
- Home Page — Upload resume, paste job description, generate AI plan, view recent reports with delete option
- Interview Report — Detailed AI-generated preparation plan with match score, skills analysis, and study tips
- Auth Pages — Clean login/register forms with JWT session management
Pull requests are welcome. For major changes, please open an issue first to discuss what you'd like to change.