CAIT (pronounced "kite") is a community platform for teachers and lecturers of AI and machine learning. Educators use it to publish, share, and discover teaching materials, and to build "circuits", which are structured learning paths made of connected materials.
- Publish and browse teaching materials and circuits.
- Organize materials into courses and structured learning paths.
- User profiles, publication ownership, and a reputation system.
- Sign in through institutional single sign-on (SURF SRAM and Auth0 via SAML).
- SvelteKit (Node adapter) with TypeScript.
- Prisma with PostgreSQL.
- Self-hosted Supabase for auth, storage, and the database layer.
- Docker Compose for the backing services.
- Docker, with Docker Compose 2.21 or newer.
- Node 22 (see
.nvmrc).
-
Clone the repository.
git clone git@github.com:TeamPraxidike/CAIT.git cd CAIT -
Set up the two environment files. There is one at the project root and one in
docker/. Both examples hold working local defaults, so you can copy them and run the app as is. You only need to change values if you connect to something other than the local stack.cp .env.example .env cp docker/.env.example docker/.env
-
Install dependencies and generate the Prisma client.
npm run setup
-
Start the app. This brings up the Supabase stack, waits for it to be healthy, runs the migrations and seed scripts, then starts the dev server on http://localhost:5173.
npm run dev
| Command | What it does |
|---|---|
npm run dev |
Brings up the Supabase stack and runs the app on port 5173. |
npm run build |
Builds the SvelteKit app. No database work. |
npm run test:unit |
Runs the unit tests (Vitest). No Docker needed. |
npm run test:integration |
Brings up a local Supabase subset and runs the integration tests. |
npm run test:e2e |
Runs the Playwright end-to-end tests against a local build. |
The tests reuse the dev stack's host ports, so stop npm run dev before running them.
Notes:
- The team uses YouTrack for stories, issues, and documentation
- The
docker/folder has its own README describing the Compose files.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for the full text.
The self-hosted Supabase stack in the docker/ directory is derived from
Supabase and their respective docker/ setup, which is licensed under the
Apache License, Version 2.0. Some of these files have been modified for this
project.
Copyright 2024 Supabase
The original license text is available at https://github.com/supabase/supabase/blob/master/LICENSE and at https://www.apache.org/licenses/LICENSE-2.0.
