# π PrepAI β AI-Powered Interview Preparation Platform
PrepAI is a production-level AI-powered interview preparation platform built using the MERN stack.
The platform helps students and developers prepare for technical interviews through AI-driven learning tools, mock tests, coding practice, analytics, resume analysis, and personalized career roadmaps.
---
# π Features
## π Authentication System
- JWT Authentication
- User Signup/Login
- Password Hashing using bcrypt
- Protected Routes
- Persistent Login
- Role-Based Authorization
---
## π§ AI Interview Preparation
- AI-generated interview questions
- AI-generated answers & explanations
- Difficulty-based questions
- Role-based preparation
- AI-powered interview guidance
---
## π AI Notes Generator
- PDF Upload
- Text Upload
- AI Summarization
- Flashcards Generation
- Interview Revision Notes
---
## π§ͺ Mock Test Platform
- MCQ-based Tests
- Topic-wise Quizzes
- Timers
- Auto Evaluation
- Score Calculation
- Leaderboards
- Test History
---
## π» Coding Practice Platform
- Monaco Code Editor
- Multi-language Support
- Judge0 API Integration
- Code Execution
- Submission History
Supported Languages:
- Java
- Python
- C++
- JavaScript
---
## π Analytics Dashboard
- Performance Tracking
- Weak Topic Analysis
- Coding Analytics
- Test Analytics
- Streak Tracking
- Progress Charts
---
## π AI Resume Analyzer
- Resume PDF Upload
- ATS Score
- Skill Extraction
- Resume-Job Matching
- Missing Skills Detection
---
## π AI Roadmap Generator
- Personalized Career Roadmaps
- Learning Paths
- Recommended Projects
- Resources & Interview Guidance
Supported Roles:
- MERN Stack Developer
- Java Developer
- AI Engineer
- Backend Developer
---
## π οΈ Admin Panel
- User Management
- Test Management
- Content Moderation
- Analytics Overview
- Question Upload System
---
# ποΈ System Architecture
```bash
βββββββββββββββββββ
β Frontend β
β React + Redux β
ββββββββββ¬βββββββββ
β
Axios API Calls
β
ββββββββββΌβββββββββ
β Backend β
β Node + Express β
ββββββββββ¬βββββββββ
β
ββββββββββββΌβββββββββββ
β MongoDB β
β Database Layer β
βββββββββββββββββββββββ| Module | Description |
|---|---|
| Authentication | JWT-based secure authentication |
| Mock Tests | MCQ test platform |
| AI Notes | AI-powered summarization |
| Coding Platform | Online compiler environment |
| Resume Analyzer | ATS scoring & skill analysis |
| Analytics | User performance insights |
| Roadmap Generator | AI-generated learning paths |
| Admin Panel | Platform management |
- React.js
- Vite
- Tailwind CSS
- Redux Toolkit
- React Router DOM
- Axios
- Chart.js / Recharts
- Monaco Editor
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- bcryptjs
- OpenAI API / Gemini API
- Judge0 API
| Technology | Purpose |
|---|---|
| React.js | Frontend UI development |
| Vite | Fast frontend build tool |
| Tailwind CSS | Utility-first responsive styling |
| Redux Toolkit | Global state management |
| Axios | API communication |
| Node.js | Backend runtime |
| Express.js | API development |
| MongoDB | NoSQL database |
| Mongoose | MongoDB object modeling |
| JWT | Authentication |
| bcryptjs | Password hashing |
| OpenAI/Gemini | AI functionalities |
| Judge0 API | Code execution |
frontend/
β
βββ public/
β
βββ src/
β
β βββ api/
β β βββ axios.js
β β
β βββ app/
β β βββ store.js
β β
β βββ assets/
β β βββ images/
β β βββ icons/
β β βββ animations/
β β
β βββ components/
β β
β β βββ common/
β β β βββ Sidebar.jsx
β β β βββ Navbar.jsx
β β β βββ Timer.jsx
β β β βββ LoadingSpinner.jsx
β β β βββ ErrorMessage.jsx
β β β βββ EmptyState.jsx
β β β
β β βββ dashboard/
β β β βββ DashboardCards.jsx
β β β βββ DashboardStats.jsx
β β β βββ ProfileDropdown.jsx
β β β βββ RecentActivity.jsx
β β β βββ QuickActions.jsx
β β β
β β βββ landing/
β β β βββ Navbar.jsx
β β β βββ HeroSection.jsx
β β β βββ FeaturesSection.jsx
β β β βββ AICapabilities.jsx
β β β βββ DashboardPreview.jsx
β β β βββ Testimonials.jsx
β β β βββ CTASection.jsx
β β β βββ Footer.jsx
β β β
β β βββ ui/
β β βββ Button.jsx
β β βββ GlassCard.jsx
β β βββ Input.jsx
β β βββ Modal.jsx
β β βββ Select.jsx
β β βββ Badge.jsx
β β
β βββ features/
β β
β β βββ auth/
β β β βββ authSlice.js
β β β βββ authService.js
β β β βββ authAPI.js
β β β
β β βββ dashboard/
β β β βββ dashboardSlice.js
β β β βββ dashboardService.js
β β β βββ dashboardAPI.js
β β β
β β βββ interview/
β β β βββ InterviewForm.jsx
β β β βββ AIResponseCard.jsx
β β β βββ InterviewChat.jsx
β β β βββ interviewService.js
β β β βββ interviewSlice.js
β β β βββ interviewAPI.js
β β β
β β βββ tests/
β β β βββ TestInterface.jsx
β β β βββ QuestionCard.jsx
β β β βββ ResultCard.jsx
β β β βββ Timer.jsx
β β β βββ testService.js
β β β βββ testSlice.js
β β β βββ testAPI.js
β β β
β β βββ results/
β β β βββ ResultAnalytics.jsx
β β β βββ ScoreChart.jsx
β β β βββ WeakAreas.jsx
β β β βββ resultsService.js
β β β
β β βββ resume/
β β β βββ ResumeUpload.jsx
β β β βββ ResumeScore.jsx
β β β βββ ResumeSuggestions.jsx
β β β βββ resumeService.js
β β β βββ resumeSlice.js
β β β
β β βββ notes/
β β βββ NotesEditor.jsx
β β βββ NotesList.jsx
β β βββ notesService.js
β β
β βββ hooks/
β β βββ useAuth.js
β β βββ useTimer.js
β β βββ useTheme.js
β β βββ useApi.js
β β
β βββ layouts/
β β βββ DashboardLayout.jsx
β β βββ AuthLayout.jsx
β β βββ LandingLayout.jsx
β β
β βββ lib/
β β βββ utils.js
β β
β βββ pages/
β β
β β βββ Home.jsx
β β βββ Dashboard.jsx
β β βββ InterviewPage.jsx
β β βββ TestsPage.jsx
β β βββ AnalyticsPage.jsx
β β βββ LeaderboardPage.jsx
β β βββ ResultPage.jsx
β β βββ HistoryPage.jsx
β β β
β β βββ auth/
β β βββ Login.jsx
β β βββ Signup.jsx
β β βββ ForgotPassword.jsx
β β
β βββ routes/
β β βββ AppRoutes.jsx
β β βββ ProtectedRoute.jsx
β β
β βββ services/
β β βββ aiService.js
β β βββ analyticsService.js
β β βββ leaderboardService.js
β β
β βββ utils/
β β βββ constants.js
β β βββ helpers.js
β β βββ formatters.js
β β
β βββ App.jsx
β βββ main.jsx
β βββ App.css
β βββ index.css
β
βββ .env
βββ package.json
βββ vite.config.js
βββ README.mdbackend
β
βββ src
β
β βββ config
β β βββ db.js
β β
β βββ controllers
β β βββ authController.js
β β βββ userController.js
β β βββ interviewController.js
β β βββ resumeController.js
β β βββ notesController.js
β β
β βββ services
β β βββ authService.js
β β βββ userService.js
β β βββ interviewService.js
β β βββ resumeService.js
β β
β βββ models
β β βββ User.js
β β βββ Interview.js
β β βββ Resume.js
β β βββ Notes.js
β β
β βββ routes
β β βββ authRoutes.js
β β βββ userRoutes.js
β β βββ interviewRoutes.js
β β βββ resumeRoutes.js
β β βββ notesRoutes.js
β β
β βββ middleware
β β βββ authMiddleware.js
β β βββ errorMiddleware.js
β β βββ validateMiddleware.js
β β
β βββ validations
β β βββ authValidation.js
β β βββ interviewValidation.js
β β
β βββ utils
β β βββ generateToken.js
β β βββ asyncHandler.js
β β βββ ApiError.js
β β
β βββ app.js
β βββ server.js
β
βββ .env
βββ .gitignore
βββ package.json
βββ README.mdUser Login
β
Password Verification (bcrypt)
β
JWT Token Generation
β
Frontend Stores Token
β
Protected Routes Access
β
Middleware Verifies TokenUser Prompt/Input
β
Backend AI Service
β
Prompt Engineering
β
OpenAI / Gemini API
β
AI Response Processing
β
Frontend RenderingUser Starts Test
β
Questions Loaded
β
Timer Starts
β
User Submits Answers
β
Backend Evaluation Logic
β
Score Calculation
β
Analytics UpdatedUser Writes Code
β
Frontend Monaco Editor
β
Backend Submission API
β
Judge0 API Execution
β
Execution Result ReturnedUser Activity
β
MongoDB Aggregation Queries
β
Analytics APIs
β
Frontend Charts
β
Dashboard Insightsnpm install react-router-dom
npm install axios
npm install @reduxjs/toolkit
npm install react-redux
npm install tailwindcss @tailwindcss/vite
npm install recharts
npm install chart.js react-chartjs-2
npm install @monaco-editor/reactnpm install express
npm install mongoose
npm install cors
npm install dotenv
npm install bcryptjs
npm install jsonwebtoken
npm install multer
npm install pdf-parse
npm install express-validator
npm install nodemonPORT=5000
MONGO_URI=your_mongodb_connection
JWT_SECRET=your_secret_key
OPENAI_API_KEY=your_api_key
CLIENT_URL=http://localhost:5173- Responsive SaaS UI
- Dark/Light Theme
- Sidebar Navigation
- Dashboard Cards
- Reusable Components
- Loading Skeletons
- Error Handling
- Toast Notifications
- RESTful APIs
- Centralized Error Handling
- Middleware-based Authentication
- Validation Layer
- Modular Architecture
- Service-based Logic
- Environment Variable Security
- JWT Authentication
- Password Hashing
- Protected APIs
- Role-Based Access
- Environment Variable Protection
- CORS Configuration
- Vercel
- Render / Railway
- MongoDB Atlas
- Real-time Interview Simulation
- AI Voice Interviews
- WebSocket Collaboration
- Video Interview Recording
- AI Resume Optimization
- Gamification System
Ajay
Give this repository a β on GitHub!