This contains everything you need to run your app locally.
View your app in AI Studio: https://ai.studio/apps/drive/1_oNg3uQmr9Pq_XzfOHf6Kdn3pFATKHtR
Prerequisites: Node.js
-
Install reproducible dependencies:
npm ci -
Run the app:
npm run dev -
Verify application and test TypeScript:
npm run typecheck -
Run the automated tests:
npm run test -
Create a production build:
npm run build
Pull requests and pushes to main run the same install, type-check, test, and
build sequence in GitHub Actions using Node.js 22.
components/contains the screens and shared navigation/input components.hooks/useGameLogic.tscoordinates an active practice session.services/dbService.tsowns session persistence, session classification, and personal-best comparison rules.utils/math.tsgenerates and selects multiplication problems.db.tsdefines the versioned Dexie/IndexedDB schema.
Named race lengths and their record-comparison rules are centralized in the database service so session classification and personal-best checks cannot drift apart.
This app now ships as a Progressive Web App (PWA).
- Installable on supported browsers via the web app manifest.
- Offline-friendly for the app shell and previously fetched same-origin assets via the service worker.
- Uses source-controlled SVG app icon assets located in
public/icons/(no binary icon files in the PR).
To verify locally:
- Run
npm run build - Run
npm run preview - Open the app in Chrome/Edge and confirm:
- the install prompt is available,
- Application → Manifest is valid,
- Application → Service Workers shows
/sw.jsas active.
This app can be deployed to Vercel without any UI/design changes.
- Import this repository into Vercel.
- Keep the default project settings (Vite framework preset).
- Deploy. No API key is required by the current client-only application.
Vercel will run npm install and npm run build, and serve the generated dist output.
