A full-stack web application designed to help students ace campus placements by providing structured learning resources, practice quizzes, AI-powered mock interviews, and admin-managed curriculum — all in one unified platform.
- Problem Statement
- Solution
- Key Features
- Tech Stack
- Architecture
- Getting Started
- Screenshots
- Contributing
- License
Students preparing for campus placements often struggle with:
- Scattered Resources — Study materials are spread across multiple platforms with no clear structure or roadmap.
- No Guided Curriculum — No organized, chapter-wise syllabus for core CS subjects (OS, DBMS, CN, DSA, OOP).
- Limited Practice — Generic quiz platforms lack topic-specific, difficulty-graded MCQs tailored for placement exams.
- Interview Anxiety — No safe environment to simulate real interview scenarios and receive constructive feedback.
- No Progress Tracking — Difficulty in measuring preparation progress across subjects and assessments.
InterviewQuest solves these challenges by combining four powerful modules into one cohesive platform:
| Module | What It Solves |
|---|---|
| Structured Resources | Admin-curated, chapter-wise study material for each CS subject with a clear roadmap |
| Practice Quizzes | Topic-specific, timed MCQ assessments with difficulty levels and score history |
| AI Mock Interviews | Realistic, conversational mock interviews powered by Groq AI (LLaMA 3.3 70B) with detailed scorecards |
| Admin Dashboard | Full CMS for admins to manage subjects, chapters, topics, questions, and content (manual + AI-generated) |
-
Structured Learning Resources
- Browse subjects with organized chapters and topics
- Read admin-curated theory content with a clean, distraction-free reader
- Collapsible sidebar with nested chapter → topic navigation
- Public access — no login required to read resources
-
Practice Quiz Engine
- Timed, topic-specific MCQ assessments (DSA, DBMS, OS, CN, OOP, Aptitude)
- Difficulty-graded questions (Easy, Medium, Hard)
- Instant scoring with correct answers and explanations
- Complete attempt history with performance tracking
-
AI Mock Interviews
- Simulate realistic Technical, HR, and Skill-Specific interviews
- Resume-specific and Topic-specific interview customization
- Turn-by-turn conversational interview flow powered by Groq AI (LLaMA 3.3 70B)
- Voice input (Speech-to-Text) and voice output (Text-to-Speech) support
- Detailed AI-generated scorecard with strengths, weaknesses, and improvement areas
- Full session history with past interview transcripts
-
User Dashboard
- Central hub with quick access to all modules
- Clean, modern dark/light mode UI
-
Subject & Resource Management (Full CRUD)
- Create, edit, delete, and toggle visibility of subjects on the landing page
- Manage display order with sort controls
-
Curriculum Builder
- Add chapters under each subject
- Add topics under each chapter
- VS Code-style inline creation (no modals) for a seamless editing experience
- In-place renaming and deletion of chapters and topics
-
Content Editor
- Write and edit rich topic content directly in the admin panel
- Content is rendered as formatted study material for users
-
Question Bank Management
- Create, edit, and delete MCQ questions with options, correct answers, and explanations
- Filter by topic and difficulty
- Support for both manually created and AI-generated questions
- JWT-based stateless authentication
- Role-based access control (User / Admin)
- Protected API endpoints with Spring Security
- Secure password hashing with BCrypt
| Category | Technologies |
|---|---|
| Frontend | React 19, Vite 8, Tailwind CSS 4, Lucide React, Web Speech API |
| Backend | Java 21, Spring Boot 3.5, Spring Security, Spring Data JPA, Hibernate, Lombok, JWT, Cloudinary, Groq API (LLaMA 3.3 70B) |
| Database | PostgreSQL |
| Hosting | Vercel (Frontend), Render (Backend) |
┌─────────────────────────────────────────────────────────┐
│ Client (Browser) │
│ ┌───────────────────────────────────────────────────┐ │
│ │ React 19 + Vite + Tailwind CSS 4 │ │
│ │ ┌──────────┐ ┌──────────┐ ┌───────────────────┐ │ │
│ │ │Resources │ │ Practice │ │ AI Mock Interview│ │ │
│ │ │ Reader │ │ Quiz │ │ (Voice + Chat) │ │ │
│ │ └──────────┘ └──────────┘ └───────────────────┘ │ │
│ └──────────────────────┬────────────────────────────┘ │
│ │ REST API (Axios) │
└─────────────────────────┼───────────────────────────────┘
│
┌─────────────────────────┼───────────────────────────────┐
│ Spring Boot 3.5 Backend │
│ ┌──────────────────────┴────────────────────────────┐ │
│ │ REST Controllers Layer │ │
│ │ Auth │ Subject │ Question │ Assessment │ Interview│ │
│ └──────────────────────┬────────────────────────────┘ │
│ ┌──────────────────────┴────────────────────────────┐ │
│ │ Service / Business Layer │ │
│ │ AuthService │ SubjectService │ MockInterviewSvc │ │
│ └──────────────────────┬────────────────────────────┘ │
│ ┌──────────────────────┴────────────────────────────┐ │
│ │ Spring Security (JWT + BCrypt) │ │
│ └──────────────────────┬────────────────────────────┘ │
│ ┌──────────────────────┴────────────────────────────┐ │
│ │ Spring Data JPA / Hibernate ORM │ │
│ └──────────────────────┬────────────────────────────┘ │
└─────────────────────────┼───────────────────────────────┘
│
┌───────────────┼──────────────┐
│ │ │
┌─────┴─────┐ ┌──────┴─────┐ ┌─────┴──────┐
│PostgreSQL │ │ Cloudinary │ │ Groq API │
│ Database │ │ (CDN) │ │ (LLaMA 3.3)│
└───────────┘ └────────────┘ └────────────┘
Ensure the following are installed on your machine:
- Java 21 (JDK) — Download
- Maven 3.9+ — Download
- Node.js 20+ — Download
- npm 10+ — Bundled with Node.js
- PostgreSQL 15+ — Download
git clone https://github.com/Suraj-Upadhye/InterviewQuest.git
cd InterviewQuestCreate a PostgreSQL database and run the schema:
# Connect to PostgreSQL
psql -U postgres
# Create the database
CREATE DATABASE interviewquest;
# Connect to it and run the schema
\c interviewquest
\i schema.sqlCreate the application properties file:
interviewquestbackend/src/main/resources/application.properties
Add the following configuration:
# Server
server.port=8080
# Database
spring.datasource.url=jdbc:postgresql://localhost:5432/interviewquest
spring.datasource.username=YOUR_DB_USERNAME
spring.datasource.password=YOUR_DB_PASSWORD
spring.jpa.hibernate.ddl-auto=update
# JWT
interviewquest.jwt.secret=YOUR_JWT_SECRET_KEY
interviewquest.jwt.expirationMs=86400000
# Groq AI
interviewquest.groq.apiKey=YOUR_GROQ_API_KEY
interviewquest.groq.model=llama-3.3-70b-versatile
# Cloudinary
cloudinary.cloud-name=YOUR_CLOUD_NAME
cloudinary.api-key=YOUR_CLOUDINARY_API_KEY
cloudinary.api-secret=YOUR_CLOUDINARY_API_SECRETcd interviewquestbackend
./mvnw spring-boot:runOn Windows, use
mvnw.cmd spring-boot:run
The backend API will be available at http://localhost:8080
Create the environment file:
interviewquestfrontend/.env
VITE_API_BASE_URL=http://localhost:8080/apicd interviewquestfrontend
npm install
npm run devThe frontend will be available at http://localhost:5173
Screenshots coming soon — run the project locally to explore the full UI!
Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
This project is open source and available under the MIT License.
Built with ❤️ by Suraj Upadhye
⭐ If this project helped you, consider giving it a star! ⭐