Streaksmith — Habit Tracker (Angular)
A minimalist habit tracker built with Angular 20, Angular Material, Signals, and IndexedDB (Dexie). Log daily habits, track streaks, and see a 30-day heatmap — works offline. Live demo: https://KoBe1628.github.io/streaksmith ✨ Features • Create / edit / archive habits • Daily checklist with optional numeric value (reps/minutes) • Offline persistence (IndexedDB via Dexie) • Analytics: current streak, best streak, 7‑day completion, 30‑day heatmap • Export / import JSON backup • Clean, responsive UI (Angular Material)
🖼️ Screenshots
| Today | Habits | Analytics |
|---|---|---|
![]() |
![]() |
![]() |
You can explore Streaksmith with pre-filled habits and recent history:
- Open the app → Settings.
- Click Seed demo data → then visit Today and Analytics.
- To reset, click Clear all data (also in Settings).
Data is stored locally in your browser (IndexedDB). Export/Import JSON is available for backups.
🛠 Tech Angular 20 (standalone + Signals) · Angular Material · Dexie (IndexedDB) · date‑fns 🚀 Local development npm install ng serve
📦 Build ng build --configuration production ☁️ Deploy (GitHub Pages) This repo includes a GitHub Actions workflow that:
- Builds with
--base-href /streaksmith/ - Copies
index.html→404.htmlfor SPA routing - Publishes to GitHub Pages
See .github/workflows/deploy.yml.
🗺 Folder highlights
src/app/
core/
models/ # Types
db/dexie-db.ts # IndexedDB (SSR-safe)
store/habit.store.ts
features/
today/ # Checklist + numeric value
habits/ # List, add/edit, archive, filter
analytics/ # KPIs + 30-day heatmap
settings/ # Export/import JSON
🗓 Roadmap • Custom frequency (days of week) • Notifications • Multi-habit charts • Dark mode 👤 Author Built by Kodirov Bekhzod. Open to Angular internship / working student roles. [REMOVE BEFORE COMMIT] Replace and ensure the live link uses your GitHub username.


