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.
88 lines
3.2 KiB
Markdown
88 lines
3.2 KiB
Markdown
# TimeToLeave - Post-MVP Improvements Plan
|
|
|
|
> **Last updated:** 2026-05-19
|
|
> This plan reflects the current state of the codebase after the initial MVP and mobile rewrite.
|
|
|
|
## Already Implemented (No Longer TODO)
|
|
|
|
The following items from earlier versions of this plan have been completed and are in production:
|
|
|
|
- **Native Calendar Import** — `expo-calendar` integration with device calendar sync, permission requests, and multiple calendar source selection.
|
|
- **Push / Local Notifications** — `expo-notifications` with local notification scheduling. Server-side push (FCM/APNs) for live journey updates remains deferred.
|
|
- **Dark / Light Theming** — System theme following and manual dark/light toggle on both web and mobile.
|
|
- **Auto-Refresh** — `useFocusEffect`-based refresh on mobile when returning to foreground.
|
|
|
|
---
|
|
|
|
## High Priority
|
|
|
|
### 1. Offline-First Architecture
|
|
- Cache journey and route data in `AsyncStorage` / `localStorage` for offline viewing.
|
|
- Background sync when connection is restored.
|
|
- Add explicit "offline mode" UI indicators.
|
|
- Conflict resolution for concurrent event edits.
|
|
|
|
### 2. Real Map Integration
|
|
- Integrate `expo-maps` / `@vis.gl/react-google-maps` for visual route display.
|
|
- Show origin, destination, and train stations on a map.
|
|
- Display bike route with turn-by-turn directions.
|
|
- Alternative route suggestions (e.g., faster vs. fewer changes).
|
|
|
|
### 3. Multiple Origins Support
|
|
- Allow different origins per event (Home, Work, Custom presets).
|
|
- Quick origin switching in event detail and settings.
|
|
- Store origin presets in persistent settings.
|
|
|
|
---
|
|
|
|
## Medium Priority
|
|
|
|
### 4. Server-Side Push Notifications
|
|
- Implement FCM for Android and APNs for iOS for real-time journey disruption alerts.
|
|
- Real-time delay/cancellation push notifications.
|
|
- Fallback to local notifications when the server is unreachable.
|
|
|
|
### 5. Accessibility
|
|
- TalkBack / VoiceOver screen reader support on mobile.
|
|
- Dynamic type scaling.
|
|
- High contrast mode.
|
|
- WCAG 2.1 AA compliance audit on web.
|
|
|
|
### 6. Analytics & Crash Reporting
|
|
- Integrate Sentry for error tracking on web and mobile.
|
|
- Opt-in usage analytics.
|
|
- Performance monitoring (Web Vitals, React Native startup time).
|
|
- In-app user feedback collection.
|
|
|
|
---
|
|
|
|
## Lower Priority
|
|
|
|
### 7. Advanced Features
|
|
- Shared events with friends / family (collaborative departure planning).
|
|
- Recurring event templates.
|
|
- Journey history and statistics dashboard.
|
|
- Export / import event data (ICS, JSON).
|
|
|
|
---
|
|
|
|
## Technical Debt & Quality
|
|
|
|
### 8. Code Quality
|
|
- Extract shared hooks to `packages/hooks` (deduplicate web and mobile hook implementations).
|
|
- Increase unit test coverage across all packages.
|
|
- Add Playwright E2E tests for web critical flows.
|
|
- Add Detox E2E tests for mobile critical flows.
|
|
- Bundle size analysis and reduction.
|
|
|
|
### 9. Developer Experience
|
|
- Consolidate ESLint to Flat Config everywhere.
|
|
- Add pre-commit hooks (`husky` + `lint-staged`).
|
|
- Add GitHub Actions CI pipeline.
|
|
- Architecture Decision Records (ADRs) in `docs/adr/`.
|
|
|
|
### 10. Documentation
|
|
- Keep `POST_MVP_PLAN.md` and `CHECKLIST.md` in sync with reality.
|
|
- Contributing guidelines (`CONTRIBUTING.md`).
|
|
- API versioning policy once the backend grows.
|