UTransit is a hackathon-built transit prototype for the University of Toronto community, designed to unify route discovery, trip planning, and digital ticket management for travel across St. George, Scarborough, and Mississauga.
Built as a working prototype during a hackathon sprint.
UofT transit workflows are fragmented across separate schedules, route lookup tools, and fare systems. UTransit brings core student transit actions into one interface.
- Student registration, login, and authenticated profile flow
- Route browsing and route stop lookup
- Ticket wallet with purchase, listing, and delete actions
- Trip history API and frontend trip/profile/settings pages
- FastAPI backend with SQLAlchemy models and JWT auth
- Prisma schema + PostgreSQL migration tooling
- AWS deployment infrastructure templates and helper scripts
- Frontend: Vite, React, TypeScript, React Router, Tailwind CSS, TanStack Query
- Backend: FastAPI, SQLAlchemy, Pydantic, JWT auth
- Database: PostgreSQL (primary), SQLite fallback for local development
- Data tooling: Prisma
- Infra: AWS RDS, ECS/Fargate, S3 + CloudFront, CloudFormation
cd backend
python3.13 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python -m app.seed
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Backend docs: http://localhost:8000/docs
In a new terminal:
npm install
cp .env.example .env
npm run devFrontend app: http://localhost:5173
POST /api/v1/auth/registerPOST /api/v1/auth/loginGET /api/v1/auth/meGET /api/v1/routesGET /api/v1/routes/{route_id}/stopsGET /api/v1/ticketsPOST /api/v1/tickets/purchase?type=...DELETE /api/v1/tickets/{ticket_id}GET /api/v1/trips/history
.
├── src/ # React frontend pages/components/hooks
├── backend/ # FastAPI backend app + routers + seed scripts
├── prisma/ # Prisma schema
├── infra/aws/ # CloudFormation templates (RDS/ECS/S3/CloudFront/CI-CD)
├── scripts/ # Deployment helper scripts
└── docs/ # AWS deployment and setup guides
- Full stack deployment:
docs/aws-full-deploy.md - RDS setup:
docs/aws-rds-console-setup.md - Backend deploy:
docs/aws-backend-deploy.md - GitHub CI/CD deploy:
docs/aws-github-cicd-setup.md
- Live transit feed ingestion and real-time ETA improvements
- Better route search and stop discovery UX
- Expanded fare logic and pass management
- Production hardening for auth, observability, and error monitoring
Working hackathon prototype with implemented frontend flows, backend APIs, and database/deployment foundations. Not production-ready yet.