72f9400756
CI / lint-typecheck-test (push) Has been cancelled
Configure GitHub Actions for linting, typechecking, and testing. Add Husky and lint-staged for pre-commit checks. Implement API response caching in AsyncStorage for offline support. Move core tests to packages/core and add vitest configuration.
TimeToLeave Documentation
This directory documents the current TimeToLeave monorepo: the Next.js web app and backend proxy, the Expo mobile app, and the shared TypeScript packages.
Contents
| Document | Use it for |
|---|---|
| Architecture | System overview, package responsibilities, data flow, integrations, and operational constraints. |
| Development | Setup, environment variables, local commands, route map, quality checks, Docker, and mobile development notes. |
| Core & API Client Reference | Shared package exports, HAFAS helpers, countdown/status logic, and ApiClient methods. |
| User Guide | How to use the web and mobile apps, import calendars, read leave-by statuses, and manage settings. |
| Codebase Function Guide | File-by-file map of first-party source modules, functions, hooks, and components. |
Quick Start
npm install
cp .env.example .env
npm run dev
For mobile development:
npm run dev:mobile
Set EXPO_PUBLIC_API_BASE_URL for device builds so the app can reach the web backend.
Quality Checks
npm run lint
npm run typecheck
npm run test
npm run build
Current User-Facing Routes
| Route | Purpose |
|---|---|
/ |
Departure desk showing the next upcoming event and live route/departure data. |
/calendar |
Calendar import, Google Calendar sync, and batch destination review. |
Add/edit event actions are handled in modal and native-screen flows, not by standalone web page routes.