https://github.com/rakeshkanneeswaran/coursecopilot
https://github.com/rakeshkanneeswaran/coursecopilot
Last synced: 6 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rakeshkanneeswaran/coursecopilot
- Owner: rakeshkanneeswaran
- Created: 2025-02-26T15:08:29.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-03-30T17:47:11.000Z (6 months ago)
- Last Synced: 2025-03-30T18:30:57.209Z (6 months ago)
- Language: TypeScript
- Size: 231 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## **Course-Copilot (Version 2)**
👋 Hi everyone, welcome. I've tried to keep this README as straightforward as possible, focusing on just the necessary information. **I've assumed that those looking at this repository have at least a couple of years of software development experience**. Hopefully, it's helpful
## **Project Overview**Course-Copilot enables users to **convert an entire playlist into multiple languages** while **generating transcripts** for each language. After processing the playlist, a **vector database** is created for each playlist, allowing users to interact with an **AI-powered chatbot**.
The chatbot utilizes **Retrieval-Augmented Generation (RAG)** to answer questions based on the processed video content, ensuring accurate and context-aware responses.
## **System Design & Workflow**
![]()
CEHOLDER_FOR_SYSTEM_DESIGN_DIAGRAM)## **Tech Stack**
This project comprises an integration of multiple technologies. The mainly web app and background-job-service jobs are written in **TypeScript**, while other services such as the **intelligent-service (RAG chatbot), embeddings-service, and video-processing-service** are implemented in **Python**. For infrastructure, **Terraform** is used to create an **S3 bucket** for data storage.To facilitate communication between microservices, **Apache Kafka** is used to enable distributed computing. For storing the details of projects, **PostgreSQ**L is used, accessed via **Prisma**.
## Folder Structure
```
├── web-app/ # Frontend application (Next.js)
├── background-job/-service # Manages Kafka-triggered tasks and distributes them to other services
├── video-processing-service # Handles video translation and transcription using Whisper & FFmpeg
├── embedding-service/ # Processes course content, generates vector embeddings, and stores them in S3
├── intelligence-service/ # LangChain-powered AI assistant that queries the vector database
├── infrastructure/ # Terraform scripts for provisioning AWS S3 and other infrastructure
├── docker-compose.yml # Docker Compose configuration to orchestrate all services
```
Each service contains a **Dockerfile** to enable containerization, and the `docker-compose.yml` in the main directory helps start all services together.## Setup & Installation
### Prerequisites
- Node.js (v16+)
- Docker (for running microservices)
- AWS S3 account (for storage)
- Kafka setup### Installation
1. **Clone the repository:**
```sh
git clone https://github.com/rakeshkanneeswaran/EduVerseAI.git
cd EduVerseAI
```
2. **Install dependencies:**
Each microservice contains its own `setup.md` file with installation instructions.3. **Configure environment variables:**
- Create `.env` and `docker.env` files based on `.env.example` and `docker.env.example`.4. **Start all services using Docker Compose:**
```sh
docker-compose up --build
```