Files
Sage/.planning/REQUIREMENTS.md
Dani B 3e9a698bf2 docs: create roadmap (12 phases)
Phases:
1. Auth & Accounts
2. Household Creation
3. Barcode Scanning
4. Manual Entry & Search
5. Expiration Management
6. In-App Notifications
7. External Notifications (Discord, ntfy, Pushbullet, Telegram)
8. Usage Tracking
9. AI Shopping Prediction
10. Local Sales Tracking
11. Web App & Cross-Platform UI Polish
12. Setup Wizard & Onboarding

All 62 v1 requirements mapped to exactly one phase (100% coverage).
Critical path: 1→2→3→4→5→6→7
Parallel path: 4→8→9→10
Core value delivered after Phase 5 (expiration alerts).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-27 23:50:49 -05:00

9.6 KiB

Requirements: Sage

Defined: 2026-01-27 Core Value: Users get accurate expiration alerts and never waste food due to forgotten ingredients

v1 Requirements

Inventory Core

  • INV-01: User can add items by barcode scan with product lookup
  • INV-02: User can add items manually with name, quantity, location, optional expiration date
  • INV-03: User can view full inventory organized by location/category
  • INV-04: User can search and filter inventory by item name, location, or expiration status
  • INV-05: User can edit item details (quantity, location, expiration date)
  • INV-06: User can delete items from inventory
  • INV-07: User can mark items as used or wasted

Sharing & Multi-User

  • SHARE-01: User can create a household and set household name
  • SHARE-02: User can generate invite codes for household members to join
  • SHARE-03: User can join existing household via invite code
  • SHARE-04: User can choose to merge inventories, keep separate, or use invitee's inventory when joining
  • SHARE-05: When inventories merge, items with same name but different expiration dates are tracked separately
  • SHARE-06: All household members can view shared inventory
  • SHARE-07: All household members can add/edit items in shared inventory
  • SHARE-08: Items can be marked as personal or community/shared
  • SHARE-09: Real-time sync updates all users' devices when inventory changes
  • SHARE-10: User can access inventory from multiple devices simultaneously

Expiration Management

  • EXP-01: User can set expiration date when adding items
  • EXP-02: System generates expiration alerts configurable days before expiration (default 3 days)
  • EXP-03: User can view items sorted by expiration date (soonest first)
  • EXP-04: User receives notification when items are approaching expiration
  • EXP-05: User can snooze or customize expiration alert timing
  • EXP-06: User can set purchase date when adding items
  • EXP-07: System tracks when items were added/purchased for usage prediction

Authentication & Accounts

  • AUTH-01: User can create account with email and password
  • AUTH-02: User can log in with email and password
  • AUTH-03: User can reset password via email
  • AUTH-04: User session persists across app restarts and device refresh
  • AUTH-05: User can log out from any screen

Notifications

  • NOTF-01: In-app expiration alerts appear in notification center
  • NOTF-02: User can enable/disable Discord webhook notifications
  • NOTF-03: User can enable/disable ntfy notifications
  • NOTF-04: User can enable/disable Pushbullet notifications
  • NOTF-05: User can enable/disable Telegram notifications
  • NOTF-06: Notifications include item name and days until expiration
  • NOTF-07: User can configure notification preferences (frequency, quiet hours)

AI Shopping Prediction

  • AI-01: System tracks when items are marked as used
  • AI-02: System analyzes purchase frequency and usage patterns
  • AI-03: System detects when items re-appear on shopping list before expected expiration
  • AI-04: System predicts when items will run out based on usage history
  • AI-05: System automatically adds predicted items to shopping list with predicted date
  • AI-06: User can accept or dismiss predicted items
  • AI-07: System learns from user behavior and improves predictions over time

Local Sales Tracking

  • SALES-01: User can add local stores by name and zipcode
  • SALES-02: User can track sales for items in their inventory
  • SALES-03: User can manually enter sales information (store, item, price, sale dates)
  • SALES-04: Community sales database collects sales data with zipcode, store, item, UUID (no user identification)
  • SALES-05: User can view local sales for tracked items and stores
  • SALES-06: System attempts to automatically fetch online store ads for tracked items
  • SALES-07: User can see sales alerts for items when they're marked on sale nearby

Setup & Onboarding

  • SETUP-01: New users see guided setup wizard on first launch
  • SETUP-02: Setup wizard requires 3 fields minimum: email, password, household name
  • SETUP-03: Setup wizard offers to add basic notification preferences
  • SETUP-04: Setup wizard shows option to create household or join via invite code
  • SETUP-05: Advanced features progressively revealed as user explores app
  • SETUP-06: User can access help/documentation from settings

UI & Platform

  • UI-01: App uses dark mode as default theme
  • UI-02: User can switch to light mode in settings
  • UI-03: All text is readable in both dark and light modes
  • UI-04: App works on Android devices
  • UI-05: Web app provides full inventory access from browser
  • UI-06: Web app is responsive and usable on tablet/desktop
  • UI-07: Barcode scanning works offline and queues when reconnected

Data & Performance

  • DATA-01: Barcode API lookups are cached to minimize API costs
  • DATA-02: App stores data locally for offline access
  • DATA-03: App syncs data to server when internet connection available
  • DATA-04: All dates stored in UTC to prevent timezone bugs
  • DATA-05: Concurrent edits to same item are handled without data loss
  • DATA-06: App is completely free with no ads or paid features
  • DATA-07: Code is open source and FOSS compliant
  • DATA-08: Self-hosted Docker option available with clear setup instructions
  • DATA-09: Self-hosted option supports TrueNAS Scale/Unraid deployment

v2 Requirements

Deferred to future release. Tracked but not in current roadmap.

Recipes & Meal Planning

  • RECIPE-01: System suggests recipes based on expiring items
  • RECIPE-02: User can view recipe ingredients and check inventory
  • RECIPE-03: User can mark items as used for recipes
  • RECIPE-04: User can save favorite recipes

Advanced Features

  • ADVANCED-01: iOS native app for Apple devices
  • ADVANCED-02: Social features (share lists with friends outside household)
  • ADVANCED-03: Detailed analytics on food waste by category
  • ADVANCED-04: Barcode price history tracking
  • ADVANCED-05: Voice input for adding items
  • ADVANCED-06: Receipt photo capture and auto-parsing
  • ADVANCED-07: Grocery store integrations (shopping cart sync)
  • ADVANCED-08: Meal plan creation and shopping list generation

Out of Scope

Feature Reason
Recipes to use expiring items Deferred to v2; core value is tracking, not cooking
iOS native app Pending developer account; web app + Android sufficient for v1
Social features beyond household Increases complexity; focus on household collaboration first
Temperature/humidity tracking Nice-to-have; complexity vs. minimal user value
Auto-calculated expiration dates Privacy concern; users know their products better
Barcode OCR from photos ML complexity; physical barcode scan sufficient
Nutrition tracking Out of scope; separate concern from food waste
Restaurant/dining out tracking Scope creep; household inventory focus

Traceability

Which phases cover which requirements. Updated during roadmap creation.

Requirement Phase Status
INV-01 3 Pending
INV-02 4 Pending
INV-03 4 Pending
INV-04 4 Pending
INV-05 4 Pending
INV-06 8 Pending
INV-07 8 Pending
SHARE-01 2 Pending
SHARE-02 2 Pending
SHARE-03 2 Pending
SHARE-04 2 Pending
SHARE-05 2 Pending
SHARE-06 4 Pending
SHARE-07 4 Pending
SHARE-08 4 Pending
SHARE-09 4 Pending
SHARE-10 11 Pending
EXP-01 5 Pending
EXP-02 5 Pending
EXP-03 5 Pending
EXP-04 5 Pending
EXP-05 5 Pending
EXP-06 5 Pending
EXP-07 5 Pending
AUTH-01 1 Pending
AUTH-02 1 Pending
AUTH-03 1 Pending
AUTH-04 1 Pending
AUTH-05 1 Pending
NOTF-01 6 Pending
NOTF-02 7 Pending
NOTF-03 7 Pending
NOTF-04 7 Pending
NOTF-05 7 Pending
NOTF-06 7 Pending
NOTF-07 7 Pending
AI-01 8 Pending
AI-02 8 Pending
AI-03 8 Pending
AI-04 9 Pending
AI-05 9 Pending
AI-06 9 Pending
AI-07 9 Pending
SALES-01 10 Pending
SALES-02 10 Pending
SALES-03 10 Pending
SALES-04 10 Pending
SALES-05 10 Pending
SALES-06 10 Pending
SALES-07 10 Pending
SETUP-01 12 Pending
SETUP-02 12 Pending
SETUP-03 12 Pending
SETUP-04 12 Pending
SETUP-05 12 Pending
SETUP-06 12 Pending
UI-01 11 Pending
UI-02 11 Pending
UI-03 11 Pending
UI-04 11 Pending
UI-05 11 Pending
UI-06 11 Pending
UI-07 3 Pending
DATA-01 3 Pending
DATA-02 11 Pending
DATA-03 11 Pending
DATA-04 11 Pending
DATA-05 11 Pending
DATA-06 12 Pending
DATA-07 12 Pending
DATA-08 12 Pending
DATA-09 12 Pending

Coverage:

  • v1 requirements: 62 total
  • Mapped to phases: 62
  • Unmapped: 0 ✓
  • Coverage: 100%

Requirements defined: 2026-01-27 Roadmap traceability updated: 2026-01-27 Last updated: 2026-01-27 after roadmap creation