# πŸ“š TimeToLeave Documentation Welcome to the official documentation for TimeToLeave, the smart departure planner that syncs with your calendar and monitors real-time public transport to tell you exactly when to leave home. ## πŸ—ΊοΈ Table of Contents ### 1. [Architecture](./ARCHITECTURE.md) Understand the monorepo structure, tech stack, data flow, and component relationships between the Web Dashboard, Mobile Client, and shared packages. ### 2. [Core & API Reference](./API_REFERENCE.md) Detailed reference for the internal packages: - **`@timetoleave/core`**: Domain types, HAFAS time parsing, countdown/status logic, and formatting utilities. - **`@timetoleave/api-client`**: The unified HTTP client that wraps the backend proxy routes. ### 3. [Development Guide](./DEVELOPMENT.md) Everything a developer needs to get started: - Prerequisites and installation instructions. - Running the Web and Mobile apps in development mode. - Testing (Vitest/Jest), Linting (ESLint), and Type Checking (TypeScript). - Backend API endpoints and Next.js 16 routing conventions. ### 4. [User Guide](./USER_GUIDE.md) A guide for end-users explaining how to sync calendars, view event details, interpret the "Leave Status" color codes, and configure mobile notifications. --- ## ⚑ Quick Start ```bash # Clone the repository git clone cd TimeToLeave # Install dependencies for the entire monorepo npm install # Start the Web development server npm run dev # Start the Mobile development server npm run dev:mobile ``` ## πŸ›‘οΈ Code Quality ```bash # Run all tests (Web Vitest + Mobile Jest) npm run test # Run ESLint across the monorepo npm run lint # Run TypeScript type checking npm run typecheck ``` --- *Built for developers who bike to the train and hate missing their connections.*