|
|
|
@@ -0,0 +1,57 @@
|
|
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
|
|
## [Unreleased]
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## [1.0.0] — 2025-01-27
|
|
|
|
|
|
|
|
|
|
### 🎉 Initial MVP Release
|
|
|
|
|
|
|
|
|
|
First stable release of TimeToLeave: a smart departure planner that integrates
|
|
|
|
|
your calendar with real-time public transport data to tell you exactly when to leave.
|
|
|
|
|
|
|
|
|
|
### Web Application
|
|
|
|
|
|
|
|
|
|
- Next.js 16 web dashboard with Tailwind CSS 4
|
|
|
|
|
- Calendar sync via `.ics` file import or URL
|
|
|
|
|
- Station search and journey planning for upcoming events
|
|
|
|
|
- Real-time departures with dynamic leave-status countdown
|
|
|
|
|
- Browser-based leave reminders with push notifications
|
|
|
|
|
- Dark/light theme toggle
|
|
|
|
|
- Debounced search and optimized calendar loading
|
|
|
|
|
- Docker support with multi-stage build and standalone output
|
|
|
|
|
|
|
|
|
|
### Mobile Application
|
|
|
|
|
|
|
|
|
|
- React Native 0.81 / Expo 54 mobile client
|
|
|
|
|
- Five-screen navigation: Event List, Add Event, Event Detail, Origin Setup, Settings
|
|
|
|
|
- Native calendar import via `expo-calendar`
|
|
|
|
|
- Geolocation-based origin detection via `expo-location`
|
|
|
|
|
- Local push notifications via `expo-notifications`
|
|
|
|
|
- Persistent settings and state via AsyncStorage
|
|
|
|
|
|
|
|
|
|
### Public Transport Integration
|
|
|
|
|
|
|
|
|
|
- HAFAS protocol support for Austrian railway (ÖBB) real-time departures
|
|
|
|
|
- WienerLinien integration for Vienna U-Bahn, tram, and bus departures
|
|
|
|
|
- Accurate timezone-aware HAFAS time parsing with DST transition handling for `Europe/Vienna`
|
|
|
|
|
- Support for repeated stop IDs and multiple connections
|
|
|
|
|
|
|
|
|
|
### Routing
|
|
|
|
|
|
|
|
|
|
- Bike route calculation from origin to departure station via OSRM
|
|
|
|
|
- Geocoding API integration for station lookups
|
|
|
|
|
- Fallback and caching logic for API failures
|
|
|
|
|
|
|
|
|
|
### Shared Infrastructure
|
|
|
|
|
|
|
|
|
|
- Monorepo structure with npm workspaces
|
|
|
|
|
- `@timetoleave/core` — shared types, countdown utilities, and leave-status logic
|
|
|
|
|
- `@timetoleave/api-client` — typed client for HAFAS, calendar, geocoding, and bike routing
|
|
|
|
|
- Correlation IDs for request tracing and monitoring
|
|
|
|
|
- Comprehensive test coverage across web (Vitest) and mobile (Jest)
|
|
|
|
|
- Strict TypeScript type-checking across all workspaces
|
|
|
|
|
- ESLint linting across the codebase
|