1 Commits

Author SHA1 Message Date
fegger 014fe789f8 chore: bump to v1.0.0 and add CHANGELOG 2026-05-11 20:28:59 +02:00
5 changed files with 61 additions and 4 deletions
+57
View File
@@ -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
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@timetoleave/web",
"version": "0.1.0",
"version": "1.0.0"
"private": true,
"scripts": {
"dev": "next dev",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "time-to-leave",
"version": "0.1.0",
"version": "1.0.0"
"private": true,
"workspaces": [
"apps/*",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@timetoleave/api-client",
"version": "0.1.0",
"version": "1.0.0"
"private": true,
"main": "src/index.ts",
"types": "src/index.ts",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@timetoleave/core",
"version": "0.1.0",
"version": "1.0.0"
"private": true,
"main": "src/index.ts",
"types": "src/index.ts",