Princeton-themed typing practice and real-time race competitions.
TigerType is a full-stack typing platform built for Princeton users. It combines solo practice, multiplayer races, private lobbies, and progress tracking with campus authentication and a PostgreSQL-backed backend.
- Solo practice with real-time WPM and accuracy feedback
- Quick match queue for live head-to-head races
- Private race lobbies for invited groups
- CAS-based authentication and persistent user stats
- Achievements, badges, and progression systems
- Frontend: React + Vite
- Backend: Node.js + Express + Socket.IO
- Database: PostgreSQL
- Auth: Princeton CAS
- Testing: Jest + client test suite
- Node.js
20.11.1 - npm
- PostgreSQL
cp .env.example .env
npm run install:all
npm run migrate
npm run dev- Client:
http://localhost:5174 - Server/API:
http://localhost:3000
Start from .env.example. The most important values for local setup are:
PORTSESSION_SECRETDB_USER,DB_PASSWORD,DB_HOST,DB_PORT,DB_NAMECAS_HOST,CAS_PATH,SERVICE_URL
Optional integrations (email, S3, changelog publishing, APIs) are also documented in .env.example.
| Command | Purpose |
|---|---|
npm run install:all |
Install root and client dependencies |
npm run dev |
Run backend and frontend together in development |
npm start |
Start backend in production mode |
npm run server |
Run backend only with nodemon |
npm run client |
Run frontend only |
npm run build |
Build frontend assets |
npm run migrate |
Initialize/migrate database schema |
npm test |
Run server test suite |
npm run test:all |
Run server and client tests |
- Database design:
docs/DatabaseSchema.md - Product overview (COS333):
ProjectOverview.md - Full project report (COS333):
TigerType.pdf - Legacy roadmap/spec README (COS333):
project-roadmap.md
- Primary logo:
client/src/assets/logos/tigertype-logo.png - Navbar logo:
client/src/assets/logos/navbar-logo.png - Favicon:
client/src/assets/logos/favicon.png
- Create a branch from
main. - Keep changes scoped and include tests for behavior changes.
- Run
npm test(and relevant client tests) before opening a PR. - Open a pull request with clear context and verification steps.
TigerType is licensed under the MIT License. See LICENSE.
