100 lines
2.4 KiB
Markdown
100 lines
2.4 KiB
Markdown
# Luggage List
|
|
|
|
[](https://expo.dev/)
|
|
[](https://reactnative.dev/)
|
|
[](#data-and-backup)
|
|
[](#data-and-backup)
|
|
|
|
Luggage List is a local-first Expo app for keeping trips, luggage, and check-ups organized without a server, login, or cloud sync.
|
|
|
|
## Highlights
|
|
|
|
- Trip planning with names, locations, dates, images, and archive support
|
|
- Global trip switching with sensible auto-selection on first launch
|
|
- Default trip template that gets copied into new trips
|
|
- Luggage items with quantity, description, category, status, placement, and optional photos
|
|
- Quick status edits plus full item editing in a modal
|
|
- Guided check-up flow with live stats and editable mismatches
|
|
- Check-up history per trip with saved snapshots
|
|
- JSON backup and restore, including file import/export and pasted JSON
|
|
|
|
## Tech Stack
|
|
|
|
- Expo
|
|
- React Native
|
|
- AsyncStorage for local persistence
|
|
- expo-image-picker, expo-document-picker, expo-file-system, expo-sharing
|
|
- Vitest for tests
|
|
|
|
## Getting Started
|
|
|
|
```bash
|
|
npm install
|
|
npm run start
|
|
```
|
|
|
|
### Run on a platform
|
|
|
|
```bash
|
|
npm run android
|
|
npm run ios
|
|
npm run web
|
|
```
|
|
|
|
## Scripts
|
|
|
|
- `npm run start` , start the Expo dev server
|
|
- `npm run android` , open on Android
|
|
- `npm run ios` , open on iOS
|
|
- `npm run web` , run in the browser
|
|
- `npm run test` , run tests once
|
|
- `npm run test:watch` , run tests in watch mode
|
|
|
|
## Data and Backup
|
|
|
|
All data stays on-device in AsyncStorage.
|
|
|
|
Backup and restore is done through JSON, either by:
|
|
|
|
- exporting to a file
|
|
- importing a saved file
|
|
- pasting JSON directly into the app
|
|
|
|
## What You Can Track
|
|
|
|
### Trips
|
|
|
|
- Trip name
|
|
- Location
|
|
- Start and end dates
|
|
- Optional trip image
|
|
- Archive state
|
|
|
|
### Items
|
|
|
|
- Name and quantity
|
|
- Description and category
|
|
- Status: packed, unpacked, lost, left-behind, lent-to
|
|
- Placement: suitcase, backpack, with-user, other
|
|
- Optional item image
|
|
|
|
### Check-ups
|
|
|
|
- Yes / no checklist flow
|
|
- Live correct, bad, and pending counters
|
|
- Optional sync back into the trip item list
|
|
- Saved history per trip
|
|
|
|
## Notes
|
|
|
|
- Dark-mode-first UI
|
|
- No auth
|
|
- No backend
|
|
- No cloud sync
|
|
|
|
## Development
|
|
|
|
```bash
|
|
npm run test
|
|
```
|