This cutting-edge full-stack web app is crafted with Next.js, React, and TailwindCSS, allowing users to effortlessly create personalized courses powered by AI-generated materials and curated video content. It integrates the Gemini API for automated content creation, the YouTube API to bring in relevant video resources, and Clerk for seamless user authentication and management.
- Next.js for server-side rendering and optimized routing.
- React for building interactive UI components.
- Drizzle ORM for managing database interactions.
- TailwindCSS for modern and responsive UI design.
- Shadcn UI for enhanced UI components.
- Clerk for user authentication and access control.
- Gemini API for generating AI-driven course content.
- YouTube API for video integration and curation.
- Node.js >= 14.x
- npm or yarn
- PostgreSQL (for database with Drizzle ORM)
git clone https://github.com/varun442/AI-Course-Generator.git
cd AI-Course-Generator
npm install
# or
yarn install
Create a .env.local
file in the root directory and configure the following variables:
NEXT_PUBLIC_CLERK_FRONTEND_API=<your-clerk-frontend-api>
CLERK_API_KEY=<your-clerk-api-key>
GEMINI_API_KEY=<your-gemini-api-key>
YOUTUBE_API_KEY=<your-youtube-api-key>
DATABASE_URL=postgresql://<username>:<password>@<host>:<port>/<database-name>
NEXT_PUBLIC_SITE_URL=http://localhost:3000
Ensure you have PostgreSQL installed and create a database. Use Drizzle ORM to set up the schema:
npx drizzle-kit migrate:run
To start the development server, run:
npm run dev
# or
yarn dev
Visit the app at [http://localhost:3000](https://ai-course-crafter-n-generator.vercel.app/)
.
Clerk provides user authentication for the application. Ensure you set up your project on Clerk's website and configure the necessary API keys in the .env.local
file.
This app leverages the Gemini API to generate AI-driven content for courses. You need to sign up for an API key from Gemini API.
For video integration, the application uses the YouTube Data API. You can get an API key from the Google Developer Console.
#🛠️ Usage
- Sign Up / Log In: Use Clerk authentication to sign up or log in.
- Generate AI Content: Use the Gemini API integration to automatically generate content for your custom course.
- Add Video Resources: Search and integrate videos from YouTube using the YouTube API.
- Save and Manage Courses: Save courses and manage them through your user profile.
Admins can manage user permissions, view generated content, and perform other administrative tasks.
- Next.js: React framework with built-in server-side rendering (SSR).
- React: For building dynamic UI components.
- Drizzle ORM: Simple, type-safe ORM for managing PostgreSQL databases.
- TailwindCSS: Utility-first CSS framework for designing responsive UIs.
- Shadcn UI: A modern UI component library for enhanced UI elements.
- Clerk: Authentication solution for user management.
- Gemini API: AI-driven content generation API.
- YouTube API: Used for searching and embedding video resources.
Clerk handles user authentication and provides the necessary endpoints for signing up, logging in, and managing users.
The Gemini API is used for generating AI-driven content for each course. You can customize content by sending prompts and receiving responses from the API.
The YouTube API is integrated for searching video content that can be added to courses. Use the API to curate video playlists directly into the course creation workflow.
We love contributions! Help us make this even better by contributing to the project. Your input is highly valued. 🤗 If you have any ideas, suggestions, or issues, feel free to submit a pull request or open an issue.
Steps to Contribute:
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature
). - Make your changes and commit them (
git commit -m 'Add new feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
- @AshimaSingh0610 - Creator & Maintainer