The Dev Challenge 2025: Recognized as a Winner in the hackathon
Welcome to the AI-Powered Interview Preparation Platform! This innovative application bridges the gap between traditional placement preparation and real-world interview success by simulating realistic interviews, offering personalized feedback, evaluating resumes, and providing targeted technical training.
- Question Generation: Generates interview questions based on job descriptions.
- Speech-to-Text Conversion: Records and transcribes user responses using React Speech-to-Text.
- Feedback & Rating: Provides real-time feedback and ratings for each answer using Gemini AI.
- ATS Scoring: Analyzes uploaded resumes and generates ATS scores.
- Keyword Suggestions: Identifies missing keywords relevant to the job description.
- Real-Time Feedback: Monitors user’s face and posture during mock interviews using Face-API.js.
- Alert System: Alerts: users if they move out of the webcam frame.
- Detailed Reports: Summarizes performance with actionable insights.
- Confidence Building: Enhances interview readiness with iterative practice and personalized guidance.
Next.js: Framework for building the user interface.
TypeScript: Ensures type safety and scalability.
ShadCN-UI: Provides modern and accessible UI components.
react-hook-peech-to-text: Powers the speech recognition feature.
Gemini AI: Used for question generation, feedback, and resume ATS scoring.
Face-API.js: Powers real-time facial and posture analysis.
Prisma: Manages database interactions.
Supabase: Handles authentication and storage.
Framer Motion: Adds animations for a dynamic user experience.
- Node.js (>= 16.x)
- Environment variables configured (see
.env
section below).
# Clone this repository
git clone https://github.com/abhi9ab/Interview-Preparation-App.git
# Navigate into the project directory
cd Interview-Preparation-App
npm install
Create a .env
file in the root of the project with the following variables:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_GEMINI_API_KEY=
NEXT_PUBLIC_INTERVIEW_QUESTION_COUNT=5
# Connect to Supabase via connection pooling with Supavisor.
DATABASE_URL=
# Direct connection to the database. Used for migrations.
DIRECT_URL=
NEXT_PUBLIC_GOOGLE_API_KEY=
- Generate the Prisma Client:
npx prisma generate
- Apply migrations to the database:
npx prisma migrate dev --name init
npm run dev
The application will now be available at http://localhost:3000
.
This project requires the following API keys:
-
Clerk:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
: Your Clerk Publishable Key.CLERK_SECRET_KEY
: Your Clerk Secret Key.
To obtain these keys:
- Sign up at Clerk.dev.
- Create a new application and retrieve the required keys from the dashboard.
-
Gemini-Flash-1.5-8b API Key:
NEXT_PUBLIC_GEMINI_API_KEY
: API key for accessing the Gemini model.
-
Google Speech-to-Text API Key:
NEXT_PUBLIC_GOOGLE_API_KEY
: API key for speech recognition.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bugfix.
- Commit your changes and push to the branch.
- Submit a pull request.
- Use a platform like Vercel for deploying the Next.js app.
- Ensure environment variables are set up in the hosting provider’s dashboard.
- Use a cloud database service like AWS RDS or Supabase for PostgreSQL.
For further queries, please contact abhinabdas004@gmail.com.
This project is licensed under the MIT License. See the LICENSE file for details.