An open-source platform that enables students and teachers to interact with classroom materials through Retrieval-Augmented Generation (RAG). Upload documents, chat with course content, and streamline academic Q&A using powerful language models—all in one collaborative interface.
- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS with shadcn/ui components
- Testing: Vitest with React Testing Library
- Database: Supabase
- Deployment: Docker and Kubernetes support
-
Classroom-Style Structure
Teachers can create classrooms, upload documents (PDFs, slides, handwritten notes), and invite students. -
Classroom-Specific AI Assistants
Each classroom has its own RAG-based LLM assistant trained on uploaded materials. -
Collaborative AI Chats
Group chat support where the AI can participate with full chat context.
- Node.js (LTS version)
- pnpm (recommended package manager)
- Docker (for containerized development)
- Kubernetes (for deployment)
-
Clone the repository:
git clone https://github.com/TechAtNYU/dev-team-spring-25.git cd dev-team-spring-25
-
Install dependencies:
pnpm install
-
Set up environment variables: Create a
.env.local
file in the root directory with the necessary environment variables.cp .env.example .env
and update the appropriate variables
-
Start the development server:
pnpm dev
The application will be available at http://localhost:8080
pnpm dev
- Start development server with Turbopackpnpm build
- Build the application for productionpnpm start
- Start the production serverpnpm test
- Run tests in watch modepnpm test:run
- Run tests oncepnpm test:ui
- Run tests with UIpnpm coverage
- Generate test coverage reportpnpm lint
- Run ESLintpnpm lint:fix
- Fix ESLint issuespnpm format
- Format code with Prettierpnpm format:check
- Check code formatting
- The project uses the Next.js App Router for routing
- Components are styled using Tailwind CSS with shadcn/ui
- TypeScript ensures type safety throughout the application
- Git hooks (via Husky) ensure code quality before commits
- Prettier and ESLint maintain consistent code style
The project uses Vitest for testing with React Testing Library. Tests can be run in watch mode or as a single run. Coverage reports can be generated to ensure comprehensive testing.
The application can be deployed using Docker and Kubernetes. The project includes:
- Dockerfile for containerization
- Kubernetes manifests in the
k8s
directory - Tekton pipelines for CI/CD
- Create a new branch for your feature
- Make your changes
- Run tests and ensure they pass
- Submit a pull request