62 requirements across 9 categories: - Inventory core (7) - Sharing & multi-user (10) - Expiration management (7) - Authentication (5) - Notifications (7) - AI shopping prediction (7) - Local sales tracking (7) - Setup & onboarding (6) - UI & platform (7) - Data & performance (9) v2 deferred: recipes, iOS, advanced features All requirements ready for roadmap mapping. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
9.6 KiB
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 | — | Pending |
| INV-02 | — | Pending |
| INV-03 | — | Pending |
| INV-04 | — | Pending |
| INV-05 | — | Pending |
| INV-06 | — | Pending |
| INV-07 | — | Pending |
| SHARE-01 | — | Pending |
| SHARE-02 | — | Pending |
| SHARE-03 | — | Pending |
| SHARE-04 | — | Pending |
| SHARE-05 | — | Pending |
| SHARE-06 | — | Pending |
| SHARE-07 | — | Pending |
| SHARE-08 | — | Pending |
| SHARE-09 | — | Pending |
| SHARE-10 | — | Pending |
| EXP-01 | — | Pending |
| EXP-02 | — | Pending |
| EXP-03 | — | Pending |
| EXP-04 | — | Pending |
| EXP-05 | — | Pending |
| EXP-06 | — | Pending |
| EXP-07 | — | Pending |
| AUTH-01 | — | Pending |
| AUTH-02 | — | Pending |
| AUTH-03 | — | Pending |
| AUTH-04 | — | Pending |
| AUTH-05 | — | Pending |
| NOTF-01 | — | Pending |
| NOTF-02 | — | Pending |
| NOTF-03 | — | Pending |
| NOTF-04 | — | Pending |
| NOTF-05 | — | Pending |
| NOTF-06 | — | Pending |
| NOTF-07 | — | Pending |
| AI-01 | — | Pending |
| AI-02 | — | Pending |
| AI-03 | — | Pending |
| AI-04 | — | Pending |
| AI-05 | — | Pending |
| AI-06 | — | Pending |
| AI-07 | — | Pending |
| SALES-01 | — | Pending |
| SALES-02 | — | Pending |
| SALES-03 | — | Pending |
| SALES-04 | — | Pending |
| SALES-05 | — | Pending |
| SALES-06 | — | Pending |
| SALES-07 | — | Pending |
| SETUP-01 | — | Pending |
| SETUP-02 | — | Pending |
| SETUP-03 | — | Pending |
| SETUP-04 | — | Pending |
| SETUP-05 | — | Pending |
| SETUP-06 | — | Pending |
| UI-01 | — | Pending |
| UI-02 | — | Pending |
| UI-03 | — | Pending |
| UI-04 | — | Pending |
| UI-05 | — | Pending |
| UI-06 | — | Pending |
| UI-07 | — | Pending |
| DATA-01 | — | Pending |
| DATA-02 | — | Pending |
| DATA-03 | — | Pending |
| DATA-04 | — | Pending |
| DATA-05 | — | Pending |
| DATA-06 | — | Pending |
| DATA-07 | — | Pending |
| DATA-08 | — | Pending |
| DATA-09 | — | Pending |
Coverage:
- v1 requirements: 62 total
- Mapped to phases: 0
- Unmapped: 62 ⚠️ (will be filled by roadmap)
Requirements defined: 2026-01-27 Last updated: 2026-01-27 after initial definition