Skip to content

piyush0213/Interview.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

37 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

[Interview.io]πŸŽ“πŸ§‘β€πŸ’»

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.

πŸ“‹ Table of Contents

🌟 Features

  • πŸ’» 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.

πŸ› οΈ Tech Stack

  • 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 🧠

πŸš€ Getting Started Locally

Project Setup

  1. Clone the repository:

    git clone https://github.com/piyush0213/IIITUNA

Frontend Setup

  1. Navigate to frontend

    cd frontend
  2. Install dependencies:

    npm i
  3. 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.
  4. Set up environment variables:

    Create a .env file 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

  5. Start the development frontend server:

    npm run dev

Backend Setup

  1. Navigate to backend (In Another Terminal)

    cd backend
  2. Install dependencies:

    npm i
  3. Set up environment variables:

    Create a .env file 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

  4. Start the server:

    npm run dev

Running Frontend + Backend Together

To run both frontend and backend simultaneously:

  1. Make sure you have installed dependencies for both:

    npm run install-all
  2. Start both servers together:

    npm run dev
  3. Access the app:

    • Backend β†’ http://localhost:3000
    • Frontend β†’ http://localhost:5173

⚑ Extra Notes

  • 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.

🌐 API Endpoints

Authentication

  • POST /api/v1/auth/signup: User registration
  • POST /api/v1/auth/login: User login
  • POST /api/v1/auth/logout: User logout
  • POST /api/v1/auth/editUser: Edit user information
  • POST /api/v1/auth/google: Google Login and Signup
  • GET /api/v1/auth/getAuth: Get user authentication status
  • POST /api/v1/auth/updateAvatar: Update user avatar

Rooms

  • POST /api/v1/rooms/addroom/:roomID: Add a new room
  • POST /api/v1/rooms/deleteroom/:roomID: Delete a room
  • GET /api/v1/rooms/getroom/:roomID: Get room information

Quiz

  • POST /api/v1/quiz/generate-id: Generate a quiz ID
  • POST /api/v1/quiz/generate-quiz: Generate a quiz
  • POST /api/v1/quiz/save-answer: Save a quiz answer
  • POST /api/v1/quiz/evaluate-answer: Evaluate a quiz answer
  • POST /api/v1/quiz/terminate-quiz: Terminate a quiz session

Questions

  • POST /api/v1/questions/generate-questions: Generate questions for a quiz
  • POST /api/v1/questions/chat: Interact with AI chatbot

😎 Members of our Team Diamond πŸ‘₯

🌟 Contributors

We appreciate all the contributors who have helped make Interview.io better! πŸŽ‰

Contributors

How to Contribute

We welcome contributions from everyone! Here's how you can get involved:

  1. Fork the repository and clone it locally
  2. Create a new branch for your feature or bug fix:
    git checkout -b feature/your-feature-name
  3. Make your changes and commit them with descriptive messages
  4. Push to your fork and submit a pull request
  5. Wait for review and address any feedback

Please ensure your code follows the project's coding standards and includes appropriate tests where applicable.

🀝 Contributing

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

Contributor

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! πŸš€

Thanks to all the wonderful contributors πŸ’–

πŸ™ Acknowledgements

  • 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!

About

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 10

Languages