Skip to content

SunkaraboinaPraveenKumar/AI_Course_Gen

Repository files navigation

This is a Next.js project bootstrapped with create-next-app.

Getting Started

LIVE ON (https://ai-course-gen-prav.vercel.app/)

Overview

AI Course Generator is a web application that uses artificial intelligence to generate course outlines, modules, and lessons based on user input. It provides a platform for educators and learners to create structured course content quickly and efficiently.

Table of Contents

Features

  • User Authentication: Secure login and registration with Clerk.
  • Course Explore: See All Generated Courses.
  • Generate New: Generate New Course Customizably with required no.of Chapters and Hours.
  • User Dashboard: To Check no.of Courses Created and To Upgrade.
  • User Profiles: Using Clerk.

Technologies Used

  • Frontend: Next Js
  • Backend: PostgreSql (Neon Database), Google Gemini API
  • Deployment: Vercel.

Installation

To get a local copy up and running, follow these steps:

  1. Clone the repository:
    git clone https://github.com/SunkaraboinaPraveenKumar/AI_Course_Gen.git
    cd AI_Course_Gen
    

Install the frontend dependencies:

  1. Install dependencies for the frontend:
    npm install
    
    
    

Configure environment variables for the backend:

Create a .env file in the backend directory and add your Neon Database, Gemini API and Clerk API

Usage:

Access the application in your browser at http://localhost:3000 (frontend) and the backend API at https://local.drizzle.studio.

API EndPoints:

POST /api/auth/sign-in: For user login.

POST /api/auth/sign-up: For user registration.

Course API Endpoints:

GET /api/course/[courseId]: Fetch course details for a specific course.

GET /api/course/[courseId]/start: Start a course for a specific user or fetch the starting information.

POST /api/course/create-course: Create a new course.

POST /api/course/create-course/[courseId]/finish: Finish creating a course by adding the final details.

Dashboard and Explore API Endpoints

GET /api/dashboard: Fetch dashboard details for the current user.

GET /api/explore: Fetch available courses for exploration.

GET /api/upgrade: To Upgrade the Plan

Packages:

Dependencies @clerk/nextjs: Provides authentication and user management in Next.js apps.

@google/generative-ai: Google’s Generative AI API client for interacting with AI models.

@neondatabase/serverless: A PostgreSQL driver optimized for serverless applications (like NeonDB).

@radix-ui/react-alert-dialog: Radix UI component for building accessible alert dialogs.

@radix-ui/react-dialog: Radix UI component for building accessible modal dialogs.

@radix-ui/react-dropdown-menu: Radix UI component for creating dropdown menus.

@radix-ui/react-icons: Icon set from Radix UI for React apps.

@radix-ui/react-progress: Radix UI component for displaying progress bars.

@radix-ui/react-select: Radix UI component for building accessible select dropdowns.

@radix-ui/react-slot: Radix UI component for component composition with slots.

axios: Promise-based HTTP client for making requests.

class-variance-authority: Utility for managing CSS class combinations in React.

clsx: Utility for conditional CSS class names.

dotenv: Loads environment variables from a .env file.

drizzle-orm: ORM for TypeScript/JavaScript applications to interact with databases.

firebase: Google’s Firebase library for real-time databases and authentication.

lucide-react: A React-based icon library.

next: The Next.js framework for building React applications with server-side rendering.

react: JavaScript library for building user interfaces.

react-dom: Provides DOM-specific methods that are used in React apps.

react-icons: Popular icon set for React applications.

react-markdown: A React component for rendering Markdown text.

react-youtube: React component for embedding YouTube videos.

tailwind-merge: Utility for merging Tailwind CSS class names.

tailwindcss-animate: Plugin for adding animations to Tailwind CSS.

uuid4: Library for generating UUID (version 4) identifiers.

DevDependencies:

drizzle-kit: CLI tool for managing database schemas and migrations with Drizzle ORM.

postcss: Tool for transforming CSS with plugins.

tailwindcss: Utility-first CSS framework for styling your application.

Contributing Contributions are welcome!

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.