Your supplies. Always in sight.
Dein Vorrat. Immer im Blick.
Features • Languages • Screenshots • Preview Video • Tech Stack • Getting Started • Contributing • License
PrepTrack is a free, ad-free, offline-first Progressive Web App for managing your emergency supplies, pantry, and stockpile. Scan barcodes, track expiry dates, receive local notifications — all data stays on your device. No cloud. No accounts. No tracking.
Built for preppers, self-sufficiency enthusiasts, and anyone who wants to keep their supplies organized.
PrepTrack supports 6 languages with full translations for every screen, notification, and message:
| Deutsch Default |
English |
Portugues |
العربية RTL |
Italiano |
Francais |
- Auto-detection — the app detects your browser language on first visit
- Language switcher — change anytime in Settings with country flags
- Full RTL support — Arabic layout mirrors correctly (logical CSS properties)
- Persistent — your choice is saved to localStorage
| Feature | Description |
|---|---|
| Barcode Scanner | Scan barcodes with your camera. Auto-lookup via Open Food Facts API with automatic product image download. Duplicate detection. |
| Product Management | Name, category, location, quantity, unit, expiry date (day/month/year precision), photo, notes. |
| Expiry Tracking | Color-coded warnings: Red (expired/critical), Orange (warning), Yellow (soon), Green (OK). |
| Dashboard | StatRing visualization, expiry distribution bar, urgent products, category overview, low stock counter. |
| Local Notifications | Push reminders 30, 14, 7, 3, and 1 day before expiry. No external servers. |
| Storage Locations | Create and manage custom locations. 8 defaults included. |
| Consumption Log | Mark products as consumed, expired, or damaged. View statistics. |
| Data Export | JSON backup (complete) and CSV export (Excel/Google Sheets compatible with proper encoding). |
| Data Import | Restore from backup with automatic duplicate detection. |
| Offline-First | Fully functional offline. All data in IndexedDB. Service Worker caches assets, fonts, and API responses. |
| Installable PWA | Install as native app on Android, iOS, and Desktop. |
| Dark & Light Mode | Dark theme by default. Toggle to light theme anytime. Accessible color contrast in both modes. |
| 6 Languages | German, English, Portuguese, Arabic (RTL), Italian, and French. Auto-detection + manual switcher. |
| Category | Technology | Purpose |
|---|---|---|
| Framework | React 18 + TypeScript | Interactive SPA with type safety |
| Bundler | Vite 6 | Fast dev server, optimized builds |
| Styling | Tailwind CSS 3 | Utility-first, dark mode, RTL-ready (logical properties) |
| State | Zustand | Lightweight, no boilerplate |
| Database | Dexie.js (IndexedDB) | Offline-first, reactive queries |
| PWA | vite-plugin-pwa (Workbox) | Auto-update, runtime caching |
| Scanner | @zxing/browser | Barcode/EAN recognition via camera |
| i18n | react-i18next | 6 languages (DE/EN/PT/AR/IT/FR), auto-detection |
| Icons | Lucide React | Consistent, lightweight SVG icons |
| Animation | Framer Motion | Smooth UI transitions |
| API | Open Food Facts | Free product database with images |
| CI/CD | GitHub Actions | Auto-deploy to GitHub Pages |
| Testing | Vitest | Unit tests (59 tests) |
- Node.js 20.x or higher
- npm 9+
# Clone the repository
git clone https://github.com/BEKO2210/Prepper_Log.git
cd Prepper_Log
# Install dependencies
npm install
# Start development server
npm run devThe app is available at http://localhost:5173.
npm run build # Production build (tsc + vite)
npm run preview # Preview production build locally
npm run test # Run all tests (Vitest)
npx tsc --noEmit # Type check without building- Push to your GitHub repository
- Go to Settings > Pages and set source to GitHub Actions
- Every push to
maintriggers automatic deployment
|
Android (Chrome)
|
iOS (Safari)
|
Desktop (Chrome/Edge)
|
PrepTrack takes your privacy seriously:
- All data stored locally on your device (IndexedDB). No cloud. No servers. No accounts.
- No tracking. No analytics. No cookies. No ads. No data shared with third parties.
- External service: Only the Open Food Facts API is contacted during barcode scans (open-source, non-profit). Only the barcode is transmitted.
- Notifications are generated locally. No push tokens sent to external servers.
- Full control: Export/import your data anytime. Delete via browser settings.
src/
├── components/ UI Components
│ ├── Dashboard.tsx Main overview with stats
│ ├── ProductList.tsx Product list with filters
│ ├── ProductForm.tsx Add/edit form with draft persistence
│ ├── BarcodeScanner.tsx Camera barcode scanner
│ ├── Settings.tsx Settings, language, export/import, legal
│ ├── Statistics.tsx Consumption statistics
│ ├── Navigation.tsx Bottom navigation bar
│ ├── StatRing.tsx SVG ring chart component
│ ├── OfflineBanner.tsx Offline indicator
│ ├── PWAInstallPrompt.tsx PWA install prompt
│ └── ErrorBoundary.tsx Error fallback UI
├── hooks/ Custom React Hooks
│ ├── useDarkMode.ts Dark/light mode toggle
│ ├── useOnlineStatus.ts Online/offline detection
│ └── usePWAInstall.ts PWA installation
├── i18n/ Internationalization
│ ├── i18n.ts i18next configuration
│ └── locales/ Translation files (de, en, pt, ar, it, fr)
├── lib/ Business Logic
│ ├── db.ts Dexie.js database, CRUD, export/import
│ ├── utils.ts Expiry calculation, formatting, barcode lookup
│ ├── utils.test.ts Unit tests (59 tests)
│ └── notifications.ts Local notifications
├── store/ State Management
│ └── useAppStore.ts Zustand store (navigation, filters, state)
├── types/ TypeScript Types
│ └── index.ts Product, Category, Units, etc.
├── App.tsx Main component with routing
├── main.tsx Entry point
└── sw-handler.ts Service Worker update handler
Contributions are welcome! Please read the Contributing Guide before submitting a pull request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
See open issues for planned features and known bugs.
If you discover a security vulnerability, please report it responsibly. See SECURITY.md for details.
PrepTrack is free and ad-free. If you like the app, you can support development:
Or simply give the project a ⭐ on GitHub — it helps a lot!
This project was developed with the assistance of Claude Code (Anthropic, Model: claude-opus-4-6).
That does not mean blind copy-paste or generated spaghetti code. Every function was controlled through targeted instructions, every bug was analyzed and systematically fixed, every feature was implemented and tested step by step. The human sets the direction, the AI executes.
See CHANGELOG.md for the complete change history.
Copyright 2026 Belkis Aslani
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
See LICENSE for the full license text.
Dein Vorrat. Immer im Blick.
PrepTrack ist eine kostenlose, werbefreie, Offline-first Progressive Web App zur Verwaltung von Vorräten. Produkte scannen, Mindesthaltbarkeitsdaten tracken, Benachrichtigungen erhalten — alle Daten bleiben auf deinem Gerät. Keine Cloud. Keine Accounts. Kein Tracking.
Entwickelt für Prepper, Selbstversorger und alle, die ihren Vorrat im Griff haben wollen.
PrepTrack unterstützt 6 Sprachen mit vollständigen Übersetzungen für jeden Bildschirm, jede Benachrichtigung und Meldung:
| Deutsch Standard |
English |
Portugues |
العربية RTL |
Italiano |
Francais |
- Automatische Erkennung — die App erkennt deine Browsersprache beim ersten Besuch
- Sprachumschalter — jederzeit in den Einstellungen mit Länderflaggen umschaltbar
- Volle RTL-Unterstützung — arabisches Layout wird korrekt gespiegelt (logische CSS-Properties)
- Persistent — deine Auswahl wird in localStorage gespeichert
| Funktion | Beschreibung |
|---|---|
| Barcode-Scanner | Barcode scannen mit der Kamera. Automatische Erkennung via Open Food Facts API mit automatischem Produktbild-Download. Duplikat-Warnung. |
| Produktverwaltung | Name, Kategorie, Lagerort, Menge, Einheit, MHD (Tag/Monat/Jahr), Foto, Notizen. |
| MHD-Tracking | Farbcodierte Warnung: Rot (abgelaufen/kritisch), Orange (Warnung), Gelb (bald), Grün (OK). |
| Dashboard | StatRing-Visualisierung, MHD-Verteilung, dringende Produkte, Kategorien, Unterbestand. |
| Benachrichtigungen | Lokale Push-Erinnerungen 30, 14, 7, 3 und 1 Tag vor Ablauf. Keine externen Server. |
| Lagerorte | Eigene Lagerorte anlegen und verwalten. 8 Standard-Lagerorte vorinstalliert. |
| Verbrauchslog | Produkte als verbraucht, abgelaufen oder beschädigt markieren. Statistiken einsehen. |
| Daten-Export | JSON-Backup (vollständig) und CSV-Export (Excel/Google Sheets kompatibel). |
| Daten-Import | Backup wiederherstellen mit automatischer Duplikat-Erkennung. |
| Offline-First | Vollständig offline nutzbar. Alle Daten in IndexedDB. Service Worker cached alles. |
| Installierbar | Als PWA auf Android, iOS und Desktop installierbar. Fühlt sich an wie native App. |
| Dark & Light Mode | Dunkles Design als Standard. Jederzeit umschaltbar. Barrierefreier Kontrast in beiden Modi. |
| 6 Sprachen | Deutsch, Englisch, Portugiesisch, Arabisch (RTL), Italienisch und Französisch. Auto-Erkennung + manueller Umschalter. |
# Repository klonen
git clone https://github.com/BEKO2210/Prepper_Log.git
cd Prepper_Log
# Dependencies installieren
npm install
# Entwicklungsserver starten
npm run devDie App ist dann unter http://localhost:5173 verfügbar.
npm run build # Production Build (tsc + vite)
npm run preview # Build lokal testen
npm run test # Tests ausführen (Vitest, 59 Tests)
npx tsc --noEmit # Type-Check ohne Build- Repository auf GitHub pushen
- Unter Settings > Pages die Source auf GitHub Actions setzen
- Bei jedem Push auf
mainwird automatisch deployed
|
Android (Chrome)
|
iOS (Safari)
|
Desktop (Chrome/Edge)
|
- Alle Daten lokal auf deinem Gerät (IndexedDB). Keine Cloud. Keine Server. Keine Accounts.
- Kein Tracking. Keine Analytics. Keine Cookies. Keine Werbung.
- Externer Dienst: Nur die Open Food Facts API wird beim Barcode-Scan kontaktiert (Open Source, gemeinnützig). Es wird nur der Barcode übermittelt.
- Benachrichtigungen werden lokal erzeugt. Keine Push-Tokens an externe Server.
- Volle Kontrolle: Daten jederzeit exportieren/importieren. Löschen über Browser-Einstellungen.
PrepTrack ist kostenlos und werbefrei. Wenn dir die App gefällt, kannst du die Entwicklung mit einer kleinen Spende unterstützen:
Oder gib dem Projekt einfach einen ⭐ auf GitHub — das hilft enorm!
Dieses Projekt wurde mit Unterstützung von Claude Code (Anthropic, Modell: claude-opus-4-6) entwickelt.
Das bedeutet nicht blindes Copy-Paste oder generierter Spaghetti-Code. Jede Funktion wurde durch gezielte Anweisungen gesteuert, jeder Bug wurde analysiert und systematisch behoben, jedes Feature wurde Schritt für Schritt implementiert und getestet. Der Mensch gibt die Richtung vor, die KI setzt um.
Siehe CHANGELOG.md für die vollständige Änderungshistorie.
Copyright 2026 Belkis Aslani
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Siehe LICENSE für den vollständigen Lizenztext.
Made with ❤️ in Germany













