Skip to content
TeamPraxidikePublic

About

CAIT is an internet platform developed by Praxidike for sharing study materials across TU Delft and other universities.

Resources

Stars

7 stars

Watchers

2 watching

Forks

Latest commit

 

History

1,582 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CAIT

CI Pipeline SvelteKit TypeScript Prisma PostgreSQL Supabase Docker

CAIT - Community Archive for Integrated Teaching

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.

What it does

  • 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).

Tech stack

  • SvelteKit (Node adapter) with TypeScript.
  • Prisma with PostgreSQL.
  • Self-hosted Supabase for auth, storage, and the database layer.
  • Docker Compose for the backing services.

Local setup

Prerequisites

  • Docker, with Docker Compose 2.21 or newer.
  • Node 22 (see .nvmrc).

Steps

  1. Clone the repository.

    git clone git@github.com:TeamPraxidike/CAIT.git
    cd CAIT
  2. 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
  3. Install dependencies and generate the Prisma client.

    npm run setup
  4. 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

Common commands

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.

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for the full text.

Third-party code

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.

About

CAIT is an internet platform developed by Praxidike for sharing study materials across TU Delft and other universities.

Resources

Stars

7 stars

Watchers

2 watching

Forks

Packages

Used by

Contributors

Languages