101 lines
3.6 KiB
Plaintext
101 lines
3.6 KiB
Plaintext
# Product Vision: “Keep My Weight” Tracker
|
|
|
|
## Vision Statement
|
|
Empower health-conscious individuals to effortlessly monitor and understand their weight journey and daily nutrition through a minimalist, privacy-first web app—delivering clear insights, seamless data portability, and an intuitive, distraction-free experience.
|
|
|
|
---
|
|
|
|
## Target Audience
|
|
- **Health Enthusiasts** & people aiming for weight goals
|
|
- Users seeking a **lightweight**, self-hosted solution
|
|
- Privacy-minded individuals who prefer **local data storage** and full control
|
|
- Non-technical users who appreciate a **zero-setup** interface
|
|
|
|
---
|
|
|
|
## Key User Needs
|
|
1. **Quick Weight Logging**
|
|
- Log weight in kilograms with minimal friction
|
|
- Separate weight entries from meal logs
|
|
2. **Daily Meal Tracking**
|
|
- Record Breakfast, Lunch, Dinner, and “Other” items
|
|
- Flexible text fields, no calorie counting required
|
|
3. **Progress Reporting**
|
|
- Clean, exportable charts & tables of weight evolution
|
|
- Ability to filter by date ranges
|
|
4. **Data Portability & Backup**
|
|
- Import / Export complete data as JSON
|
|
- CSV export for spreadsheets or external analysis
|
|
5. **Simplicity & Reliability**
|
|
- Zero-backend static site
|
|
- Dockerized for easy deployment via Coolify or similar
|
|
|
|
---
|
|
|
|
## Product Pillars
|
|
|
|
### 1. **Usability & Clarity**
|
|
- **Single-page interface**: instant access to weight & meal logs
|
|
- **Clean layout**: large inputs, clear typography, mobile-friendly
|
|
- Save weight **independently** of meals
|
|
|
|
### 2. **Insightful Reporting**
|
|
- **Interactive weight chart**: line graph of weight over time
|
|
- **Tabular view**: sortable, filterable by date
|
|
- **Exportable**: CSV download or copy-paste
|
|
|
|
### 3. **Data Ownership**
|
|
- All entries stored in a single `data.json` file in root
|
|
- **Import / Export** buttons for manual backup & restore
|
|
- Encrypted if desired by advanced users
|
|
|
|
### 4. **Lightweight Tech Stack**
|
|
- **Static site** built with vanilla JS (or minimal framework) + HTML/CSS
|
|
- **Data layer**: read/write `data.json` via JavaScript filesystem APIs (or embedded file picker)
|
|
- **Dockerized**: simple `Dockerfile` wrapping a static file server (e.g., Caddy, NGINX)
|
|
- **Deploy**: Coolify recipe, GitHub → Docker → Cloud
|
|
|
|
---
|
|
|
|
## Minimum Viable Roadmap
|
|
|
|
| Phase | Deliverables |
|
|
|-----|-------------|
|
|
| **Phase 1** | • Weight log UI + persistence in `data.json`
|
|
| • Meal log UI (4 sections) + same JSON file
|
|
| • Save & Load from JSON via file picker
|
|
| **Phase 2** | • Weight evolution line chart
|
|
| • CSV export of all entries
|
|
| • Date-range filters
|
|
| **Phase 3** | • JSON import (merge vs overwrite)
|
|
| • Responsive mobile-first refinements
|
|
| • Docker & Coolify deployment docs
|
|
| **Phase 4** | • Theming (light/dark)
|
|
| • Localization support
|
|
| • Retirement migration guide (e.g., to new data formats)
|
|
|
|
---
|
|
|
|
## High-Level Architecture
|
|
|
|
```text
|
|
┌─────────────────────┐ ┌───────────────┐
|
|
│ Static Web Server │◀────▶│ data.json │
|
|
│ (NGINX/Caddy) │ │ (local FS) │
|
|
└─────────────────────┘ └───────────────┘
|
|
▲ ▲
|
|
│ │
|
|
│ │
|
|
Vanilla JS HTML/CSS
|
|
(UI & Data I/O)
|
|
Frontend:
|
|
|
|
ES6 modules, no build step (or minimal bundler)
|
|
|
|
Fetch & download JSON via <input type="file"> / <a download>
|
|
|
|
Server:
|
|
|
|
Containerized static file server
|
|
|
|
Serves index.html, static assets, and data.json |