|
|
1 주 전 | |
|---|---|---|
| .claude | 1 주 전 | |
| .idea/.idea.CartWise/.idea | 1 주 전 | |
| docs | 1 주 전 | |
| src | 1 주 전 | |
| tests | 1 주 전 | |
| .editorconfig | 1 주 전 | |
| .gitignore | 1 주 전 | |
| AGENTS.md | 1 주 전 | |
| CLAUDE.md | 1 주 전 | |
| CartWise.sln | 1 주 전 | |
| Directory.Build.props | 1 주 전 | |
| README.md | 1 주 전 | |
CartWise is a mobile-first grocery companion web application built with ASP.NET Core MVC. It helps households manage shared grocery lists, remember preferred products, record purchases, and build a trustworthy personal price history.
CartWise is not a grocery delivery platform and is not tied to a single retailer. Its first job is to become the shopper's grocery memory by helping households:
milk or peanut butter to preferred productsCartWise v1 focuses on the core grocery-memory workflow:
The following are explicitly out of scope for v1 unless requirements change:
CartWise is designed as a modular monolith with server-rendered pages first and JavaScript used for progressive enhancement.
CartWise.sln
src/
CartWise.Web/
CartWise.Application/
CartWise.Domain/
CartWise.Infrastructure/
tests/
CartWise.Domain.Tests/
CartWise.Application.Tests/
CartWise.Web.Tests/
docs/decision-log.md DEC-005)This repository is being built from the AGENTS.md build specification. The current focus is a solo-founder MVP targeted for local completion by September 10, 2026.
Progress so far (see docs/scrum-backlog.md for the authoritative task-level state):
CW-EPIC-01 Platform Foundation is complete:
CW-STORY-01.1 Solution skeleton — 4 src projects + 3 test projects, correct dependency direction, nullable enabledCW-STORY-01.2 Application startup — MVC shell runs, SQLite wired via CartWiseDbContext, wwwroot structure organizedCW-STORY-01.3 ASP.NET Core Identity authentication — register, sign in, sign outCW-STORY-01.4 Engineering baseline — shared analyzer settings, .editorconfig, tuned logging, smoke testsCW-EPIC-02 Household and Access Control is complete:
CW-STORY-02.1 Household/HouseholdMember entities, EF configuration, migration, domain testsCW-STORY-02.2 HouseholdService — create household, resolve current household, membership checksCW-STORY-02.3 Household UI — create and overview pagesCW-STORY-02.4 Reusable "HouseholdMember" authorization policy, cross-household isolation verifiedCW-EPIC-03 Smart Shopping List is complete:
CW-STORY-03.1 ShoppingList/ShoppingListItem/GroceryConcept/ProductCategory entities, EF configuration, migrationCW-STORY-03.2 ShoppingListService — get/create the household's one active listCW-STORY-03.3 Free-text add-item flow, auto-provisioned default list, verified live end-to-endCW-STORY-03.4 Toggle purchased/skip/delete with optimistic concurrency handling and jQuery progressive enhancementCW-STORY-03.5 Mobile-first/touch-friendly polish pass (not visually verified in a browser — no browser-automation tool available in this environment; recommend a quick manual check)CW-EPIC-04 Product Catalog and Barcode Resolution is complete — built ahead of the MVP-tagged epics per DEC-010 (explicit founder direction to work epics in strict numeric order rather than MVP-first):
CW-STORY-04.1 Brand/Product/ProductIdentifier/HouseholdProductPreference entities, EF configuration, migrationCW-STORY-04.2 Local product search and details pagesCW-STORY-04.3 Local-first barcode lookup flow with provider fallback (IProductDataProvider)CW-STORY-04.4 Real OpenFoodFactsProductDataProvider (typed HttpClient, no API key required)CW-STORY-04.5 Camera-based scan page (native BarcodeDetector API, manual-entry fallback) with add-to-list — verified live against the real Open Food Facts APICW-EPIC-05 Stores, Purchases, and Price Intelligence is complete:
CW-STORY-05.1 Retailer/StoreLocation entities, EF configuration, migration (store tracking optional per DEC-011)CW-STORY-05.2 Purchase/PurchaseItem entities, EF configuration, migrationCW-STORY-05.3 Append-only PriceObservation entity, EF configuration, migration (cascade-delete protected)CW-STORY-05.4 Purchase recording flow — start, add items, completeCW-STORY-05.5 PriceService derives price observations from completed purchases (latest/average/median/lowest/unit price)CW-STORY-05.6 PriceController + price views (index, per-product history, manual price logging), real price insight on product detailsNext up: CW-EPIC-06 Shopping Mode.
AGENTS.mdCLAUDE.mddocs/scrum-backlog.mddocs/decision-log.mddocs/release-mvp-checklist.mddocs/scrum-backlog.md as stories and tasks move into active work and when work is completedConnectionStrings:DefaultConnection in src/CartWise.Web/appsettings.json, pointing at App_Data/cartwise.db)dotnet restore
dotnet build
dotnet test
dotnet run --project src/CartWise.Web
dotnet restore, dotnet build, and dotnet test (in that order, against CartWise.sln) are the commands a CI pipeline should run — there is no separate CI-only script. dotnet build fails the same way locally and in CI since analyzer rules are enforced via Directory.Build.props (EnableNETAnalyzers, AnalysisLevel=latest-recommended) rather than a separate lint step.
Registration and sign-in are available at /Account/Register and /Account/Login. The Identity schema migration applies automatically on startup in the Development environment. Domain entities (household, list, etc.) and their first migration land in CW-EPIC-02 (Household and Access Control).
The team plans to manage this project using Scrum with:
When contributing:
AGENTS.mdNo license has been defined yet for this repository.
Powered by TurnKey Linux.