Compare commits
4 Commits
luggage-li
...
e2cb853502
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e2cb853502 | ||
|
|
df89066f3b | ||
| 163f442338 | |||
| 25fa20fa49 |
@@ -9,6 +9,28 @@ on:
|
||||
- '.gitea/workflows/**'
|
||||
|
||||
jobs:
|
||||
vitests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 🏗 Setup repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: 🏗 Setup Node
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
node-version: 22
|
||||
|
||||
- name: 🏗 Setup pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: latest
|
||||
|
||||
- name: 📦 Install dependencies
|
||||
run: pnpm install
|
||||
|
||||
- name: 🧪 Run vitests
|
||||
run: pnpm test
|
||||
|
||||
build-android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
@@ -103,7 +125,7 @@ jobs:
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-android, build-web]
|
||||
needs: [build-android, build-web, vitests]
|
||||
steps:
|
||||
- name: 🏗 Setup repo
|
||||
uses: actions/checkout@v2
|
||||
|
||||
107
README.md
107
README.md
@@ -1,32 +1,99 @@
|
||||
# Luggage List
|
||||
|
||||
Minimal local-first luggage management app built with Expo.
|
||||
[](https://expo.dev/)
|
||||
[](https://reactnative.dev/)
|
||||
[](#data-and-backup)
|
||||
[](#data-and-backup)
|
||||
|
||||
## Current Features (V2)
|
||||
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, calendar date picker, optional image from gallery
|
||||
- Active trip auto-select on first load, with manual trip switching anytime via global trip picker
|
||||
- Default trip template (copied into new trip, not linked)
|
||||
- Luggage items with:
|
||||
- name, description, category
|
||||
- status: packed, unpacked, lost, left-behind, lent-to (+ person name)
|
||||
- placement: suitcase, backpack, with-user, other
|
||||
- optional image from gallery
|
||||
- Item create/edit via modal
|
||||
- Check-up flow as yes/no checklist with live stats (correct/bad/pending):
|
||||
- “No” opens update modal
|
||||
- fixes can be check-up-only or optionally synced to trip item list
|
||||
- Check-up history per selected trip with saved snapshots + stats
|
||||
## 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
|
||||
|
||||
- JSON export is removed for now.
|
||||
- Dark-mode-first minimalist UI.
|
||||
## 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
|
||||
```
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user