2.3 KiB
2.3 KiB
Tally — Expo app (web + mobile from one codebase)
React Native (Expo SDK 57) version of the expense tracker. The same code runs as a website, an iOS app and an Android app. Data is stored on-device with AsyncStorage, so it works on all three without a backend.
The original plain-web version still lives in the folder above this one and keeps working as before; this folder is the future-proof rewrite.
Screens and features
- Daily / Weekly / Monthly tabs — the same expenses regrouped by day, by week (Monday–Sunday) or by month, each group with its own total.
- Categories — Food, Transport, Household, Utilities, Shopping, Health, Beauty, Entertainment, Other.
- Repeats — mark an expense Daily, Weekly or Monthly. They appear under “Repeating expenses” with the next due date and a Log next occurrence button.
- Summary — totals plus a per-category spending breakdown of whatever is shown.
- INR amounts — everything is shown in rupees (₹) with Indian digit grouping.
- Search and filters, edit, and two-tap delete (no popups, works identically on web and phones).
- Sample data on first run; Clear all to start empty.
Run it (needs Node.js 20+ — not available in this workspace)
cd expo-app
npm install
npx expo start
Then:
- Web — press
win the terminal, or runnpm run web. Opens the app in your browser. - Phone — install the free Expo Go app, then scan the QR code the terminal shows.
- Simulators — press
a(Android Studio emulator) ori(Xcode simulator, Mac only).
If versions ever drift, npx expo install --fix realigns them with the SDK.
Going further later
- Installable phone apps (App Store / Play Store):
npm install -g eas-cli, theneas build -p android/eas build -p ios. No code changes needed. - Backend sync (same data on web and phone): add any API later; only
src/storage.jsneeds to change — the UI andsrc/logic.jsstay untouched.
Files
App.js— screen state and layoutsrc/logic.js— dates, totals, grouping, repeats (plain JS, no platform imports)src/storage.js— on-device persistence (AsyncStorage)src/components/— form, summary bars, grouped list, repeating templatespackage.json— every version pinned to a release verified on the npm registry