Skip to content

Elytra is an AI-powered video chatbot designed to streamline the student counseling process for those aspiring to study abroad. By integrating advanced AI technologies with real-time video interactions, Elytra offers personalized, on-demand counseling, making the study abroad journey more efficient and accessible.

License

Notifications You must be signed in to change notification settings

dankgarlic1/Elytra

Repository files navigation

Elytra: AI-Powered Video Chatbot for Student Counseling

Elytra is an AI-powered video chatbot designed to guide and counsel students who are aspiring to study abroad. By integrating cutting-edge AI technologies and real-time video chat capabilities, Elytra offers personalized, real-time counseling, making the journey to studying abroad much smoother.


Features

  • AI-Powered Counseling: Integrated with OpenAI’s generative AI for personalized advice and responses.
  • Real-Time Video Interaction: LiveKit is used to enable seamless video chat between the student and counselor.
  • Secure Authentication: Integrated with NextAuth and Prisma for a robust and secure user authentication system.
  • Data Storage: Using Pinecone for efficient vector-based data storage.
  • Customizable UI: Tailored design using Radix-UI components and Tailwind CSS.
  • Automated Communication: Email functionality powered by Nodemailer for notifications.

Tech Stack

  • Frontend: Next.js, Tailwind CSS, Radix-UI components
  • Backend: Prisma ORM, Pinecone, NextAuth, LiveKit
  • AI & APIs: OpenAI, Google Generative AI, Pinecone
  • Utilities: Zod for input validation, Axios for API calls, Formik for forms, and Framer Motion for animations
  • Dev Tools: TypeScript, Husky, ESLint, Prettier

Getting Started

To get this project running on your local machine, follow the instructions below.

Prerequisites

Make sure the following software is installed:

  • Node.js >= 16
  • npm, yarn, pnpm, or bun
  • Prisma CLI: npm install -g prisma

Installation

  1. Clone the repository:

    git clone https://github.com/rishipatel9/elytra.git  
    cd elytra  
  2. Install dependencies:

    npm install  
  3. Set up environment variables:

    Create a .env file in the root directory of the project with the following example variables:

    GOOGLE_CLIENT_ID=  
    GOOGLE_CLIENT_SECRET=  
    GITHUB_CLIENT_ID=  
    GITHUB_CLIENT_SECRET=  
    NEXT_SECRET=  
    DATABASE_URL=  
    NEXT_PUBLIC_ADMIN_EMAIL=  
    NEXT_PUBLIC_ADMIN_PASSWORD=  
    NEXT_PUBLIC_JWT_SECRET=  
    LIVEKIT_API_KEY=  
    LIVEKIT_API_SECRET=  
    LIVEKIT_URL=  
    NEXT_PUBLIC_PINECONE_API_KEY=  
    NEXT_PUBLIC_GEMINI_API_KEY=  
    OPENAI_API_KEY=  
    NEXT_PUBLIC_NODEMAILER_PASS=  
    NEXT_PUBLIC_MAIL_ADD=  

    Replace the placeholder values with your actual credentials for services like Google OAuth, GitHub OAuth, LiveKit, Pinecone, and OpenAI.

  4. Run Prisma commands to set up your database:

    • Pull the schema from the database (if you have an existing schema):

      npx prisma db pull
    • Run migrations (for any changes to your schema):

      npx prisma migrate dev
    • Generate the Prisma client:

      npx prisma generate
  5. Run the development server:

    npm run dev

    This will start the Next.js development server, which you can view at http://localhost:3000.


Scripts

The following commands are available:

  • npm run dev - Starts the development server with TurboPack.
  • npm run build - Builds the app for production, generating Prisma client and static assets.
  • npm run start - Starts the production server.
  • npm run start:prisma - Runs Prisma migrations and generates the Prisma client.
  • npm run lint - Lints the codebase using ESLint.
  • npm run format - Formats the code using Prettier.

Prisma Commands

Here are some common Prisma commands used in this project:

  • Generate Prisma Client:

    npx prisma generate  
  • Migrate Database:
    Run this command whenever you make changes to the database schema:

    npx prisma migrate dev  
  • Pull Database Schema:
    If you need to sync your Prisma schema with an existing database, run:

    npx prisma db pull  
  • Inspect Prisma Schema:
    If you want to inspect your Prisma schema file, use the following:

    npx prisma studio  

Deployment

For deployment, we recommend using the Vercel Platform, which is optimized for Next.js apps.

Steps:

  1. Build the app:

    npm run build  
  2. Deploy the app to Vercel using their CLI or through their dashboard.

    For detailed instructions, visit the Next.js deployment documentation.


Learn More

To learn more about the technologies used in this project, check out the following resources:


Contributing

We welcome contributions to this project! Here's how you can get involved:

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature-name  
  3. Make your changes and commit them:
    git commit -m 'Add new feature'  
  4. Push the changes to your fork:
    git push origin feature-name  
  5. Create a pull request from your fork to the main repository.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Elytra is an AI-powered video chatbot designed to streamline the student counseling process for those aspiring to study abroad. By integrating advanced AI technologies with real-time video interactions, Elytra offers personalized, on-demand counseling, making the study abroad journey more efficient and accessible.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages