The project "AI-Powered Real-Time Interview Coach" is an innovative virtual platform designed to help users improve their interview skills through a range of interactive and AI-driven features.
- Features
- Tech Stack
- Getting Started Locally
- API Endpoints
- Team Members
- Contributors
- Contributing
- Acknowledgements
-
π» Simulated Interview Environment: The platform provides a real-time or peer-to-peer interview experience, allowing users to practice in a lifelike scenario using their webcam and microphone. This helps users develop time management skills and offers a flexible and convenient.
-
π€ Quiz Section: The quiz system generates dynamic questions based on the user's inputs, covering any domain. The adaptive difficulty feature adjusts the complexity of questions in real-time, making it suitable for users at different experience levels.
-
β AI-Based Q&A Section: In this section, users receive AI-Based real-time, context-specific interview questions based on their skill level. The AI adjusts the difficulty based on the quality of the user's responses, ensuring a personalized learning experience.
-
π€΅ User Profile: Each user has a profile that tracks personal information, professional background, core skills, and the number of completed or upcoming interviews. This helps users stay organized and prepared for their interviews.
-
π Future Enhancements: Planned future improvements include a real-time AI generated insights, enhanced quiz security, video call functionality that supports more participants, and better integration between the overview page and upcoming interviews.
- Frontend: Vite ReactJs βοΈ, Tailwind CSS π¨, Tailwind π, SCSS π
- Backend: Node.js π’, Express π
- Database: MongoDB π
- AI Integration: Google Gemini API, Open AI API π§
- Socket.io: For the chat and video calling functionalities π¬
- Speech to text: WebSpeech API π§
-
Clone the repository:
git clone https://github.com/piyush0213/IIITUNA
-
Navigate to frontend
cd frontend -
Install dependencies:
npm i
-
Google OAuth Client ID Setup
- Go to Google Cloud Console.
- Navigate to APIs & Services β Credentials.
- Click Create Credentials β OAuth Client ID.
- Application type: Web Application
- Authorized JavaScript origins:
http://localhost:5173(for local development)- Any other frontend URI you use
- Redirect URIs: Not needed for this setup
- Click Create and copy the Client ID.
-
Set up environment variables:
Create a
.envfile in the frontend directory and add your required environment variables according to this format:VITE_API_URL='<your-backend-api-url>' VITE_GOOGLE_CLIENT_ID='<your-google-oauth-client-id>'
Format also present in the frontend folder in the file .env.example.frontend
-
Start the development frontend server:
npm run dev
-
Navigate to backend (In Another Terminal)
cd backend -
Install dependencies:
npm i
-
Set up environment variables:
Create a
.envfile in the backend directory and add your required environment variables according to this format:JWT_SECRET=<your-preferred-jwt-secret-key> MONGODB_URI=<your-mongodb-connection-string> MONGODB_URI1=<optional> GEMINI_API_KEY=<your-gemini-api-key> CLOUDINARY_API_KEY=<your-cloudinary-api-key> CLOUDINARY_API_SECRET=<your-cloudinary-api-secret> CLOUDINARY_NAME=<your-cloudinary-name> NODE_ENV=development PORT=3000
Format also present in the backend folder in the file .env.example.backend
-
Start the server:
npm run dev
To run both frontend and backend simultaneously:
-
Make sure you have installed dependencies for both:
npm run install-all
-
Start both servers together:
npm run dev
-
Access the app:
- Backend β
http://localhost:3000 - Frontend β
http://localhost:5173
- Backend β
npm run install-allβ Installs dependencies for both frontend and backend in one go.npm run devβ Starts both frontend and backend together using concurrently.
POST /api/v1/auth/signup: User registrationPOST /api/v1/auth/login: User loginPOST /api/v1/auth/logout: User logoutPOST /api/v1/auth/editUser: Edit user informationPOST /api/v1/auth/google: Google Login and SignupGET /api/v1/auth/getAuth: Get user authentication statusPOST /api/v1/auth/updateAvatar: Update user avatar
POST /api/v1/rooms/addroom/:roomID: Add a new roomPOST /api/v1/rooms/deleteroom/:roomID: Delete a roomGET /api/v1/rooms/getroom/:roomID: Get room information
POST /api/v1/quiz/generate-id: Generate a quiz IDPOST /api/v1/quiz/generate-quiz: Generate a quizPOST /api/v1/quiz/save-answer: Save a quiz answerPOST /api/v1/quiz/evaluate-answer: Evaluate a quiz answerPOST /api/v1/quiz/terminate-quiz: Terminate a quiz session
POST /api/v1/questions/generate-questions: Generate questions for a quizPOST /api/v1/questions/chat: Interact with AI chatbot
- Piyush Prajapati - @piyush0213
- Lakshya Chauhan - @lakshya-8000cr
- Parth Sharma - @parth-476
- Jashan Kumar - @Jk-6900cr
We appreciate all the contributors who have helped make Interview.io better! π
We welcome contributions from everyone! Here's how you can get involved:
- Fork the repository and clone it locally
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
- Make your changes and commit them with descriptive messages
- Push to your fork and submit a pull request
- Wait for review and address any feedback
Please ensure your code follows the project's coding standards and includes appropriate tests where applicable.
We welcome contributions to this project! Please feel free to:
- π Report bugs by opening an issue
- π‘ Suggest new features or enhancements
- π Improve documentation
- π§ Submit pull requests
Before contributing, please:
- Check existing issues and pull requests
- Follow the code style used throughout the project
- Write clear commit messages
- Test your changes thoroughly
A heartfelt thank you to all the contributors who have dedicated their time and effort to make this project a success.
Your contributionsβwhether itβs code, design, testing, or documentationβare truly appreciated! π
- Gemini for providing the AI API
- MongoDB for the database solution
- Socket.io for real-time communication capabilities
- All our amazing contributors who help improve Interview.io
Have a great job cracking journey with [Interview.io]! πβ¨
β If you find this project helpful, please consider giving it a star!