Collaborative “class pet” accountability app.
This repo is a monorepo with:
frontend/: React + TypeScript + TanStack Query + Tailwind (Vite)backend/: FastAPI + Postgres + Alembic (migrations) + optional Celery/Redis worker
- Copy env file:
cp env.example .env- Install deps (frontend + backend) and (optionally) start local services:
chmod +x ./scripts/bootstrap ./scripts/dev
./scripts/bootstrap- Run dev servers:
./scripts/devIf you have Docker installed:
docker compose up -d- Backend health:
GET http://127.0.0.1:8000/health - Backend docs:
http://127.0.0.1:8000/docs - Frontend:
http://127.0.0.1:5173
To deploy online so multiple people can access it:
📖 See DEPLOYMENT.md for complete deployment guide
Quick summary:
- Frontend: Deploy to Vercel (free tier available)
- Backend + Database: Deploy to Render - it provides both! (free tier available)
The app supports multiple users joining the same class project via invite codes. Each group has shared tasks that everyone needs to complete to keep the pet healthy.
- This setup matches the architecture in
HACKATHON.docx/HACKATHON.pdf(React + FastAPI + Postgres + worker). - Auth is intended to use Clerk (see
env.exampleplaceholders). - For production deployment, see
DEPLOYMENT.md.
Demo auth for now: include headers on requests:
X-Demo-Email: you@example.comX-Demo-Name: Your Name(optional)
Key endpoints:
POST /groupsPOST /groups/joinGET /groups/myGET /groups/{group_id}/statePOST /groups/{group_id}/tasksPATCH /tasks/{task_id}DELETE /tasks/{task_id}POST /tasks/{task_id}/completePOST /groups/{group_id}/nudges(disabled in INSTRUCTOR mode MVP)