Welcome to Ai-Interview-Platform — an intelligent and interactive platform designed to simulate technical interviews using AI. This project leverages modern technologies to provide users with a seamless and realistic interview experience, complete with feedback, authentication, and support for multiple tech stacks.
Ai-Interview-Platform aims to help developers practice and prepare for technical interviews. By combining AI-driven interviewers, dynamic tech stack selection, and feedback generation, users can improve their skills in a simulated yet authentic environment. The platform is built with Next.js and integrates Firebase for authentication and data management.
- AI Interviewer Agent: Engage in interviews with an AI-powered agent tailored to your chosen tech stack.
- Authentication: Secure sign-up and login flow powered by Firebase.
- Tech Stack Selection: Choose your preferred technologies; platform dynamically displays relevant icons and interviewer setups.
- Interview Feedback: Receive AI-generated feedback on your interview performance.
- Responsive UI: Modern and responsive design for an optimal user experience.
- Admin & Client Firebase Integration: Robust backend and frontend data management.
Requirements:
- Node.js (v18+)
- Yarn or npm
-
Clone the Repository
git clone https://github.com/yourusername/Ai-Interview-Platform.git cd Ai-Interview-Platform -
Install Dependencies
npm install # or yarn install -
Setup Environment Variables
Create a
.env.localfile in the root directory and add your Firebase and other necessary configurations.NEXT_PUBLIC_FIREBASE_API_KEY=your_api_key NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain NEXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id # ...other variables
-
Run the Development Server
npm run dev # or yarn dev -
Access the Platform Open http://localhost:3000 in your browser.
- Sign Up or Log In: Authenticate using your email.
- Select Tech Stack: Choose technologies you want to be interviewed on.
- Start Interview: Engage with the AI interviewer; answer questions and interact as in a real interview.
- Receive Feedback: After the interview, view feedback generated by the AI.
- Review Past Interviews: Browse your interview history and feedback.
Project Structure Preview
├─── components
│ ├─── Agent.tsx
│ ├─── AuthForm.tsx
│ ├─── DisplayTechIcon.tsx
│ ├─── FormField.tsx
│ └─── InterviewCard.tsx
├─── constants
│ └─── index.ts
├─── firebase
│ ├─── admin.ts
│ └─── client.ts
├─── public
│ ├─── covers
│ │ ├─── adobe.png
│ │ ├─── amazon.png
│ │ ├─── facebook.png
│ │ ├─── hostinger.png
│ │ ├─── pinterest.png
│ │ ├─── quora.png
│ │ ├─── reddit.png
│ │ ├─── skype.png
│ │ ├─── spotify.png
│ │ ├─── telegram.png
│ │ ├─── tiktok.png
│ │ └─── yahoo.png
│ ├─── ai-avatar.png
│ ├─── calendar.svg
│ ├─── file.svg
│ ├─── globe.svg
│ ├─── logo.svg
│ ├─── pattern.png
│ ├─── profile.svg
│ ├─── react.svg
│ ├─── robot.png
│ ├─── star.svg
│ ├─── tailwind.svg
│ ├─── tech.svg
│ ├─── upload.svg
│ ├─── user-avatar.png
│ └─── window.svg
├─── src
│ ├─── app
│ │ ├─── (auth)
│ │ │ ├─── sign-in
│ │ │ │ └─── page.tsx
│ │ │ ├─── sign-up
│ │ │ │ └─── page.tsx
│ │ │ └─── layout.tsx
│ │ ├─── (root)
│ │ │ ├─── interview
│ │ │ │ ├─── [id]
│ │ │ │ │ ├─── feedback
│ │ │ │ │ │ └─── page.tsx
│ │ │ │ │ └─── page.tsx
│ │ │ │ └─── page.tsx
│ │ │ ├─── layout.tsx
│ │ │ └─── page.tsx
│ │ ├─── api
│ │ │ └─── vapi
│ │ │ └─── generate
│ │ │ └─── route.ts
│ │ ├─── favicon.ico
│ │ ├─── globals.css
│ │ └─── layout.tsx
│ ├─── components
│ │ └─── ui
│ │ ├─── button.tsx
│ │ ├─── form.tsx
│ │ ├─── input.tsx
│ │ ├─── label.tsx
│ │ └─── sonner.tsx
│ └─── lib
│ ├─── actions
│ │ ├─── auth.action.ts
│ │ └─── general.actions.ts
│ ├─── utils.ts
│ └─── vapi.sdk.ts
├─── types
│ ├─── index.d.ts
│ └─── vapi.d.ts
├─── .gitignore
├─── components.json
├─── eslint.config.mjs
├─── next.config.ts
├─── package-lock.json
├─── package.json
├─── postcss.config.mjs
├─── README.md
└─── tsconfig.json