A mobile app for tracking generator operating hours and fuel refills. Built with React Native and Expo.
- ⚡ Track multiple generators
▶️ Quick Start/Stop buttons for active work sessions- 📝 Log work sessions with start/end times
- ⏱️ Real-time tracking of active sessions
- ⛽ Record fuel refills
- 📊 View analytics and statistics
- 🌓 Dark mode support
- 💾 Local data storage
- Node.js (v14 or higher)
- npm or yarn
- Expo Go app on your mobile device (for testing)
- Install dependencies:
npm install- Start the development server:
npm start- Run on your device:
- Scan the QR code with Expo Go (Android) or Camera app (iOS)
- Or press
ifor iOS simulator orafor Android emulator
- Tap the + button on the Home screen
- Enter generator name, model (optional), and purchase date
- Tap Save
Quick Start:
- Tap on a generator card
- Tap the big ▶ START SESSION button
- The session begins immediately with the current time
- A green card shows the active session with elapsed time
Stop Session:
- While a session is running, tap the ⏹ STOP button
- The session ends with the current time
- Hours are automatically calculated
Edit Active Session:
- Tap the Edit button on the active session card
- Modify start time, end time, date, or add notes
- Saving will complete the session
- Tap on a generator card
- In the Work Sessions section, tap + Add
- Enter date, start time, and end time
- Duration is calculated automatically
- Tap Save
- Tap on a generator card
- In the Refills section, tap + Add
- Enter date and fuel amount (in liters)
- Tap Save
- Tap the Analytics tab at the bottom
- View total generators, operating hours, fuel used, and averages
- Edit Generator: (Coming soon)
- Edit Work Session: Tap on any work session item to edit it
- Edit Refill: (Coming soon)
- Delete Generator: Open generator detail → tap Delete (top-right)
- Delete Work Session: Long-press on a work session item
- Delete Refill: Long-press on a refill item
src/
├── components/ # Reusable components (future)
├── constants/ # Colors and theme constants
├── models/ # TypeScript interfaces
├── navigation/ # Navigation types
├── screens/ # App screens
│ ├── home/ # Home screen
│ ├── generator/ # Generator-related screens
│ └── analytics/ # Analytics screen
└── utils/ # Helper functions and storage
All data is stored locally on your device using AsyncStorage. Data persists between app sessions.
- Generator: id, name, model, purchaseDate
- WorkSession: id, generatorId, date, startTime, endTime, hours, notes
- Refill: id, generatorId, date, amount, notes
- React Native (Expo)
- TypeScript
- React Navigation (Bottom Tabs + Stack)
- AsyncStorage
- Native date/time inputs
- Date/time pickers (native components)
- Charts for fuel consumption trends
- Data export (CSV/JSON)
- Backup/restore functionality
- Service reminders
- Multiple fuel types
- Cost tracking
See BUILD.md for detailed build instructions.
make build-preview # Local preview build
make build-prod # Local production build
make eas-build-preview # Remote preview build
make eas-build-prod # Remote production buildThis project follows Semantic Versioning. See VERSIONING.md for details.
make version-patch # Bug fixes (x.y.Z)
make version-minor # New features (x.Y.0)
make version-major # Breaking changes (X.0.0)See DESIGN_GUIDE.md for comprehensive visual design specifications.
The design guide includes:
- Color palette (Orange primary, Blue secondary, Dark Mode)
- Typography hierarchy
- Component patterns
- Layout principles
- Iconography standards
All UI changes must follow the design guide.
See description/ for Google Play Store listing content.
Available languages:
- English (
en.md) - Ukrainian (
uk.md)
Update descriptions when adding new features or making significant changes.
MIT