diff --git a/README.md b/README.md index 076b510..a1863c2 100644 --- a/README.md +++ b/README.md @@ -1,39 +1,99 @@ # Luggage List -Minimal local-first luggage management app built with Expo. +[![Expo](https://img.shields.io/badge/Expo-54.0.33-000020?logo=expo&logoColor=white)](https://expo.dev/) +[![React Native](https://img.shields.io/badge/React%20Native-0.81-61dafb?logo=react&logoColor=white)](https://reactnative.dev/) +[![Local-first](https://img.shields.io/badge/Storage-Local--first-22c55e)](#data-and-backup) +[![Backup](https://img.shields.io/badge/Backup-JSON-8b5cf6)](#data-and-backup) -## What it does +Luggage List is a local-first Expo app for keeping trips, luggage, and check-ups organized without a server, login, or cloud sync. -- No auth, no server, local storage only (AsyncStorage) -- Trips with name, location, start/end dates, optional image, and archive support -- Active trip auto-select on first load, with a global trip picker for manual switching -- Default trip template, copied into new trips -- Luggage items with: - - name, quantity, description, category - - status: packed, unpacked, lost, left-behind, lent-to - - placement: suitcase, backpack, with-user, other - - optional images, gallery pick, camera capture, crop, and quality settings -- Item create/edit via modal, with bulk and quick status updates -- Check-up flow as a yes/no checklist with live stats - - “No” opens an update modal - - fixes can stay check-up-only or sync back to the trip item list -- Check-up history per trip with saved snapshots and stats -- Backup and restore via JSON file or pasted JSON +## Highlights -## Notes +- 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 -- Dark-mode-first minimalist UI. -- JSON export/import is the current backup path. +## Tech Stack -## Run +- 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 ``` -## Test +### 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 -``` \ No newline at end of file +```