InterviewByte is a platform designed to streamline and enhance the interview process using AI-powered tools. It allows users to generate interview questions, conduct simulated interviews, and receive detailed feedback. The core features include AI-driven question generation, user authentication, and a customizable interview environment. It solves the problem of inefficient and inconsistent interview preparation by providing a personalized and data-driven approach.
- AI-Powered Question Generation: Generates relevant and challenging interview questions based on specified roles and skills.
- Simulated Interviews: Allows users to practice interviews in a realistic environment with AI-driven feedback.
- User Authentication: Securely manages user accounts and access to the platform.
- Customizable Interview Environment: Provides options to tailor the interview experience to specific needs.
- Detailed Feedback: Offers comprehensive feedback on interview performance, highlighting strengths and areas for improvement.
- Theming Support: Includes both light and dark themes for a comfortable user experience.
- Real-time Notifications: Uses toast notifications to provide immediate feedback and updates.
| Category | Technology | Description |
|---|---|---|
| Frontend | Next.js | React framework for building user interfaces |
| React | JavaScript library for building UIs | |
| React DOM | React package for working with the DOM | |
| Radix UI | Set of accessible UI components | |
| Lucide React | Icon library | |
| Tailwind CSS | Utility-first CSS framework | |
class-variance-authority |
Utility for managing class name variations | |
clsx |
Utility for constructing class names | |
tailwind-merge |
Utility for merging Tailwind CSS classes | |
tailwindcss-animate |
Tailwind CSS plugin for animations | |
| Backend | Firebase | Backend-as-a-service for authentication and data storage |
| Firebase Admin | Server-side SDK for Firebase | |
| AI/LLM | @ai-sdk/xai |
AI SDK provider for xAI Grok models |
ai |
AI library | |
@vapi-ai/web |
VAPI AI web integration | |
| Utilities | zod |
Schema validation library |
react-hot-toast |
Library for displaying toast notifications | |
| Build Tools | @tailwindcss/vite |
Tailwind CSS integration with Vite |
postcss |
CSS transformation tool | |
eslint |
JavaScript linter | |
| Fonts | next/font/google |
For importing and optimizing Google Fonts |
- Node.js (version >= 18)
- npm or yarn or pnpm or bun
- Firebase project set up with authentication enabled
-
Clone the repository:
git clone <repository-url> cd interviewbyte
-
Install dependencies:
npm install # or yarn install or pnpm install or bun install -
Configure Firebase:
-
Set up a Firebase project in the Firebase Console.
-
Enable authentication (e.g., email/password, Google Sign-In).
-
Obtain your Firebase configuration object.
-
Create a
.env.localfile in the project root and add your Firebase configuration:NEXT_PUBLIC_FIREBASE_API_KEY=<your_api_key> NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=<your_auth_domain> NEXT_PUBLIC_FIREBASE_PROJECT_ID=<your_project_id> NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=<your_storage_bucket> NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=<your_messaging_sender_id> NEXT_PUBLIC_FIREBASE_APP_ID=<your_app_id>
-
-
Configure xAI Grok:
- Obtain your xAI API key.
- Add the API key to your
.env.localfile:
XAI_API_KEY=<your_xai_api_key> XAI_MODEL=grok-2-latest -
Configure VAPI:
- Obtain your VAPI PUBLIC key AND WorkFlow Id .
- Add the API key to your
.env.localfile:
NEXT_PUBLIC_VAPI_WORKFLOW_ID=<your_vapi_workflow_id> NEXT_PUBLIC_VAPI_API_KEY=<your_vapi_api_key>
-
Start the development server:
npm run dev # or yarn dev or pnpm dev or bun dev -
Open your browser and navigate to
http://localhost:3000.
interviewbyte/
├── app/
│ ├── (root)/
│ │ ├── interview/
│ │ │ ├── [id]/
│ │ │ │ ├── feedback/
│ │ │ │ │ └── page.js
│ │ │ │ └── page.js
│ │ │ ├── create/
│ │ │ │ └── page.js
│ │ │ └── page.js
│ │ ├── layout.js
│ ├── layout.js
│ ├── page.js
│ └── globals.css
├── components/
│ ├── Agent.js
│ ├── InterviewCreateForm.js
│ ├── NavBar.js
│ └── Feedback.js
├── lib/
│ ├── actions/
│ │ ├── auth.action.js
│ │ └── general.action.js
├── public/
│ └── pattern.png
├── jsconfig.json
├── next.config.mjs
├── package-lock.json
├── package.json
├── postcss.config.mjs
├── README.md
└── tailwind.config.js
This project is licensed under the MIT License.
For questions or feedback, please contact: [Kush Aheer] at [kushaheer709@gmail.com]
Thank you for checking out InterviewByte! We hope this project helps you improve your interview skills and streamline your hiring process.