An offline, mobile-optimized Progressive Web App for tracking electric vehicle charging sessions. All data is stored locally on your device using IndexedDB. No internet connection required after installation.
Live app: EV Charge Tracker
- Offline-first -- works completely without an internet connection
- Track charging sessions with energy usage, costs, and locations
- Manage multiple vehicles with custom names and icons
- Maintenance record tracking per vehicle
- Dashboard with stats, charts, and gas cost comparison
- Filterable session list with persistent filter state
- Backup and restore data to JSON with configurable reminders
- Dark/light/system theme support
- Installable as a standalone app from the browser
- Auto-update notification via service worker
- React 19 + TypeScript
- Vite + vite-plugin-pwa
- Dexie.js (IndexedDB)
- Zod (schema validation)
- Tailwind CSS v4
- Cloudflare Workers (deployment)
- Node.js 20+ and npm
git clone https://github.com/vanister/ev_charge_tracker.git
cd ev_charge_tracker
npm ci
npm run devnpm run build
npm run preview # local preview (requires Wrangler)
npm run deploy # deploy to Cloudflare WorkersSee the docs/ directory for detailed design and architecture information:
- Design Outline -- high-level design, data model, and app flow
- Technical Architecture -- detailed technical specifications
- Architecture Contracts -- shared contracts, patterns, and hook APIs
- Color Palette -- theme colors and design tokens
- Gas Comparison Design -- gas cost comparison feature
This is a personal project, but suggestions and feedback are welcome. Feel free to open an issue or submit a pull request.
MIT License -- see LICENSE file for details.