update documentation
This commit is contained in:
+32
-14
@@ -1,27 +1,45 @@
|
||||
# Privacy Policy
|
||||
|
||||
## Information We Collect
|
||||
TimeToLeave is designed to keep user data local where possible. The app does not include third-party analytics or advertising trackers.
|
||||
|
||||
We do not collect any personal information or data from users. All data is stored locally on your device.
|
||||
## Data Stored Locally
|
||||
|
||||
## Data Usage
|
||||
- Web events and reminder settings are stored in browser `localStorage`.
|
||||
- Mobile events, origin station, notification settings, theme, and selected native calendars are stored in `AsyncStorage`.
|
||||
- Mobile notifications are scheduled locally through Expo notifications.
|
||||
|
||||
- **Location Data**: We use your device's location to find nearby stations and calculate travel times. This data is only used for the app's functionality and is not stored or transmitted.
|
||||
- **Calendar Data**: If you choose to import calendar events, we only read the events from your calendar and do not store or transmit them.
|
||||
- **Notifications**: We use local notifications to remind you about events, which are stored locally on your device.
|
||||
## Data Sent to External Services
|
||||
|
||||
## Data Storage
|
||||
Some features require network calls to calculate routes or import calendars:
|
||||
|
||||
All data is stored locally on your device and never leaves your device. We do not use any third-party analytics or tracking services.
|
||||
| Data | Sent to | Purpose |
|
||||
| --- | --- | --- |
|
||||
| Destination text or address | Nominatim | Convert a place into coordinates. |
|
||||
| Coordinates | OSRM | Calculate bike and walking routes. |
|
||||
| Station IDs, dates, and times | ÖBB HAFAS | Search stations and live public-transport journeys. |
|
||||
| Coordinates or stop IDs | Wiener Linien | Find nearby stops and live departures. |
|
||||
| Calendar URL | TimeToLeave backend, then the calendar host | Fetch and parse remote ICS feeds. |
|
||||
| Google Calendar authorization code and tokens | Google and the TimeToLeave backend | Connect and sync Google Calendar on web. |
|
||||
| Device calendar event fields | Local mobile app process | Import native calendar events with locations. |
|
||||
|
||||
## Third-Party Services
|
||||
Remote ICS imports are restricted by server-side URL validation. Private and reserved hosts are blocked.
|
||||
|
||||
We do not use any third-party services that might collect or process your data. All processing happens locally on your device.
|
||||
## Google Calendar
|
||||
|
||||
## Changes to This Privacy Policy
|
||||
Google Calendar sync is optional. When connected on the web app, OAuth tokens are stored in HTTP-only cookies and used only to fetch calendar events. Disconnecting Google Calendar deletes the token cookie.
|
||||
|
||||
We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.
|
||||
## Location
|
||||
|
||||
## Contact Us
|
||||
Location access is optional and used to find nearby stations or calculate routes. Coordinates may be sent to route, geocoding, or transit APIs only when the corresponding feature is used.
|
||||
|
||||
If you have any questions about this Privacy Policy, please contact us at [contact email].
|
||||
## Calendar Data
|
||||
|
||||
Only events with locations are useful to TimeToLeave. Imported events are normalized to title, destination, event time, source, and ID. The app stores those normalized events locally.
|
||||
|
||||
## Data Retention
|
||||
|
||||
Local data remains until the user clears app/browser storage, deletes events, disconnects Google Calendar, or uninstalls the app. Server-side proxy routes are intended for request handling and do not provide application-level persistent event storage.
|
||||
|
||||
## Changes
|
||||
|
||||
This policy may be updated as the app changes. Updates are made in this repository.
|
||||
|
||||
Reference in New Issue
Block a user