← All Reports

Product Backlog

User stories from product research, tester feedback, and team decisions.

Last updated 2026-03-19 Testers: Patrick, Melisa Huma feedback pending
0
Total Stories
0
In MVP Sprints
0
Phase 2
0
Done
2
Testers
⚙️
Foundation
Project Scaffold
FND-001
As the team, I want a React (Vite) project scaffolded with folder structure and routing, so that we have a consistent base to build all screens from.
Acceptance Criteria
  • Vite project initialises.
  • Folder structure matches spec: components/, pages/, lib/, styles/.
  • App runs on npm run dev with no errors.
  • ESLint configured.
Test Approach

npm run dev renders default route. npm run build succeeds with no errors.

Review

Frontend Dev cross-reviews with Backend Dev. Code Reviewer final gate. Lead approval.

FND-002
As the team, I want the Supabase client configured with environment variables, so that all frontend features can connect to the database securely.
Acceptance Criteria
  • src/lib/supabase.js exports a configured Supabase client.
  • Reads VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY from env.
  • .env.example documents both vars.
  • App does not crash if env vars are missing.
Test Approach

Unit test verifies client initialises without throwing. Integration test verifies a basic query returns data.

Review

Frontend Dev cross-reviews with Backend Dev. Code Reviewer final gate.

Database Schema
FND-003
As Lerato, I want all core data tables created (households, members, inventory, categories, baseline stock, receipts, budget), so that the app can persist and query household data correctly.
Acceptance Criteria
  • All 6 tables created: households, household_members, inventory_items, categories, baseline_stock, receipts, budget_periods.
  • All columns match the spec.
  • Migration runs cleanly on a fresh Supabase project.
Test Approach

QA runs migration on fresh DB, verifies table existence, column types, and foreign key constraints. Invalid inserts are rejected.

Review

Backend Dev cross-reviews with DevOps. Code Reviewer final gate.

FND-004
As Lerato, I want row-level security enabled on all tables, so that each household's data is completely isolated and POPIA-compliant.
Acceptance Criteria
  • RLS enabled on all 6 tables.
  • Users can only access rows for their household.
  • View Only members cannot update or delete.
  • Managers can delete.
  • Cross-household access returns empty result set.
Test Approach

Two test households created. User A cannot read household B data. View Only blocked from update/delete. Manager can delete.

Review

Backend Dev owns. QA Engineer verifies. Code Reviewer final gate.

Authentication
FND-005
As Lerato, I want to sign up with my email and a password, so that I can create a Pantry account for my household.
Acceptance Criteria
  • Sign-up form accepts email and password.
  • Supabase Auth creates user.
  • Email format required, password min 8 chars.
  • Errors shown inline.
  • On success: redirect to /create-household.
  • Loading state shown during submit.
Test Approach

Valid credentials create session. Duplicate email shows inline error. Invalid password format shows validation error.

Review

Frontend Dev and UI Designer cross-review. UX Researcher validates Grace persona flow. Code Reviewer final gate.

FND-006
As Lerato, I want to sign in with my email and password, so that I can access my household's pantry from any device.
Acceptance Criteria
  • Sign-in form accepts email and password.
  • User with household redirected to /.
  • User without household redirected to /create-household.
  • Invalid credentials show inline error.
  • Loading state shown during submit.
Test Approach

Valid credentials return session and correct redirect. Invalid credentials show error. No household triggers create-household flow.

Review

Frontend Dev and UI Designer cross-review. UX Researcher validates. Code Reviewer final gate.

FND-007
As Lerato, I want to be redirected to sign in when I access a protected page without a session, so that my household data stays private.
Acceptance Criteria
  • All routes except /signin and /signup require authenticated session.
  • No session redirects to /signin.
  • Session but no household redirects to /create-household.
  • Authenticated user on /signin redirected to /.
Test Approach

Each protected route tested without session cookie. Redirects verified. Return URL preserved after sign in.

Review

Frontend Dev. Code Reviewer final gate.

Household Setup
FND-008
As Lerato, I want to create a household after signing up, so that I become the Manager and can start managing our pantry.
Acceptance Criteria
  • Form accepts household name.
  • On submit: household row created, user added as manager.
  • Redirect to / on success.
  • Name required, min 2 chars.
  • Error state if creation fails.
Test Approach

Valid name creates household and manager membership. Empty name shows validation error.

Review

Frontend Dev cross-reviews with Backend Dev. Code Reviewer final gate.

FND-009
As Lerato, I want expiry dates stored on inventory items, so that the app can alert me before food goes to waste.
Acceptance Criteria
  • inventory_items table includes expiry_date column, type date, nullable.
  • Column present in migration.
  • Frontend schema types include the field.
Test Approach

Insert with and without expiry_date both succeed. Query returns expiry_date correctly.

Review

Backend Dev. Code Reviewer.

FND-010
As Grace, I want to scan a product barcode to identify it, so that I can add items to the pantry without typing the name manually.
Acceptance Criteria
  • inventory_items table includes barcode column, type text, nullable.
  • Column present in migration.
Test Approach

Insert with barcode value, verify stored and returned correctly.

Review

Backend Dev. Code Reviewer.

🥫
Inventory Management
Stock Tracking
INV-001
As Lerato, I want to view all pantry items with quantities and categories, so that I always know what I have at home.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

INV-002
As Lerato, I want to see the date of purchase for each inventory item, so that I can track freshness and rotation.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

INV-003
As Lerato, I want to filter inventory by product category, so that I can quickly find what I am looking for.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

INV-004
As Lerato, I want to see expiry dates on items with waste-reduction alerts, so that I reduce food waste and save money.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

Baseline & Intelligence
INV-005
As Lerato, I want to set minimum baseline quantities for each item, so that the app knows when we are running low.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

INV-006
As Lerato, I want to receive deviation alerts when stock drops below our household baseline, so that I never run out of essentials.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

📷
Capture & Scanning
Receipt Scanning
CAP-001
As Lerato, I want to photograph a till slip to automatically add items to my pantry, so that I do not have to enter items manually.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

CAP-002
As Lerato, I want to scan long receipts in multiple sections, so that large shops at Makro or Checkers are captured fully.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

Barcode Scanning
CAP-003
As Grace, I want to scan a product barcode to log it in the pantry, so that I can quickly add single items without typing.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

💰
Budget & Spending
Budget Tracking
BUD-001
As Lerato, I want to see my monthly grocery spend against my set budget, so that I can stay in control of household finances.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

BUD-002
As Lerato, I want to see spending broken down by category and store, so that I can spot where we are overspending.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

BUD-003
As Lerato, I want to compare prices across Woolies, Checkers, and Pick n Pay before placing an order, so that I always get the best deal.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

👨‍👩‍👧
Household Management
Multi-User Access
HSH-001
As Lerato, I want to invite household members with different roles (Manager, Member, View Only), so that Grace and Thabo can contribute without full access.
Acceptance Criteria
  • Manager can enter an email to invite a member.
  • Role selector shows Manager, Member, View Only.
  • Invite creates a record or sends Supabase invite email.
  • Invited user appears in members list with pending status.
Test Approach

Invite valid email as Member, verify record created. Invite as View Only, verify role stored. Non-manager cannot access invite flow.

Review

Frontend Dev and Backend Dev cross-review. Code Reviewer final gate.

HSH-002
As Lerato, I want to manage household member settings and permissions from one screen, so that I stay in control of who sees and edits what.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

Auto-Replenishment
HSH-003
As Lerato, I want to set recurring orders for staple items, so that essentials are replenished automatically without me having to remember.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

🧾
Bill Management
Bill Automation
BILL-001
As Lerato, I want to upload and store recurring bills (COJ, levies, utilities, water), so that all my household bills are in one place.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

BILL-002
As Lerato, I want the app to detect bills arriving in my email and push a notification, so that I never miss a bill or pay late.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

BILL-003
As Lerato, I want to approve and auto-pay a bill directly from the app with one tap, so that I save time on monthly admin.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

💬
WhatsApp Integration
School Group Intelligence
WA-001
As Lerato, I want to connect specific WhatsApp groups (swimming, hockey, school), so that the app can monitor them for action items relevant to my family.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

WA-002
As Lerato, I want a prompt when my school group mentions something my child needs to bring, so that I never miss important school communications.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

WA-003
As Lerato, I want to accept a WhatsApp-sourced prompt and have it added directly to my family calendar, so that everything stays coordinated in one place.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

🔧
Home Maintenance
Maintenance & Repairs
MNT-001
As Lerato, I want to photograph home damage for AI assessment of urgency, so that I know whether to call someone immediately or plan a fix later.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

MNT-002
As Lerato, I want to find and book verified local service providers in-app, so that I do not have to search Facebook groups for a plumber.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

MNT-003
As Lerato, I want in-app escrow payments released only on job completion, so that I am protected if the work is not done properly.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

MNT-004
As Lerato, I want a home asset register with appliances, warranties, and service history, so that I have everything in one place when something breaks.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

MNT-005
As Lerato, I want a preventative maintenance calendar with reminders, so that I stay ahead of upkeep rather than reacting to problems.
Acceptance Criteria
  • Acceptance criteria to be defined before sprint planning.
Test Approach

Test approach to be defined during sprint planning.

Review

Standard triple-gate review: cross-review, Code Reviewer, Lead sign-off.

No stories match your filters.