📖 Working on the codebase? Head to docs/README.md.
Role-aware onboarding (frontend / backend / pipeline / infra), architecture deep-dives, deploy flow, secrets, and kubectl recipes all live there.
iGAIT is an innovative, objective, equitable, widely accessible, easy-to-use, free web-based tool for early autism screening.
iGait is a microservice-based, multi-stage pipeline:
- Frontend receives the user's video upload.
- Backend handles user/job creation and the initial submission email, then drops the job onto a Firebase RTDB queue.
- Pipeline stages (5 of them) each pull from their own queue, transform files via S3, and enqueue for the next stage.
- The finalize stage accumulates the result or failure and emails the user.
I/O is atomic through Firebase RTDB (queues + job state) and AWS S3 (media files). All services share apps/shared (igait-lib) for domain types and clients. Each stage scales independently — a slow stage just gets more replicas. Deeper architecture notes (stage execution modes, the Firebase client invariant, the queue contract) live under docs/architecture/.
Linux or WSL2 only — Windows is strongly discouraged. Install Docker, Nix (with flakes enabled), and direnv (auto-enters the Nix dev shell on cd).
git clone --recurse-submodules https://github.com/igait-niu/igait.git
cd igait
docker compose up # zero-config; first boot ~5–10minThen open the frontend at http://localhost:4173. The hermetic stack is env-var-free — no AWS, no Firebase project, no .env required to boot. The only optional passthrough is OPENAI_* in a repo-root .env if you're working on /assistant routes.
For the full topology, port map, troubleshooting, and the why behind every load-bearing config flag, see docs/local-dev/hermetic-stack.md. For everything else — role-aware dev loops, deploy flow, secrets, kubectl recipes — head to docs/README.md.