Barcode Betty 75be08ccf3 feat: add dedicated UAT seed user with known credentials
Add guaranteed UAT test user (uat@cartsnitch.com / CartSnitch-UAT-2026!)
seeded via Better-Auth bcrypt path. Idempotent — re-running the seed
skips the user if it already exists.

- Add 002_better_auth_tables Alembic migration (sessions, accounts,
  verifications tables + email_verified/image on users)
- Add bcrypt>=4.0,<6.0 to [seed] extra (CTO feedback: was bcrypt>=0.15,<1.0
  which matches zero installable versions)
- Fix account_id to use str(UAT_USER_ID) to match migration convention
  (CTO feedback: was using UAT_EMAIL which was inconsistent)
- Document credentials in common/README.md under Test Users

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-03-29 21:20:31 +00:00

CartSnitch Monorepo

CartSnitch is a self-hosted grocery price intelligence platform. This repo consolidates the core services and the flagship frontend PWA.

Services

Directory Service Purpose
/ (root) Frontend React 18 PWA — mobile-first price intelligence UI
api/ API Gateway FastAPI — frontend-facing REST API
common/ Common Shared Python models, schemas, Alembic migrations
receiptwitness/ ReceiptWitness Purchase ingestion via retailer scrapers

Quick Start

Frontend (root)

npm install
npm run dev        # http://localhost:5173
npm run build      # production build
npm run test       # unit tests (Vitest)

Python Services

Each Python service uses uv and has its own pyproject.toml:

cd api             # or common / receiptwitness
uv sync
uv run pytest

Development Workflow

  • Never push directly to main. Always open a PR from a feature branch.
  • Branch naming: feature/<description> or fix/<description>
  • Conventional commits: feat:, fix:, refactor:, docs:, chore:

Architecture

For full details see CLAUDE.md or the per-service CLAUDE.md in each subdirectory.

CartSnitch is a polyrepo-style monorepo: each service can be built and deployed independently, but sharing code between common/ and the other Python services is done via local path dependencies in pyproject.toml.

S
Description
Consumer savings platform with grocery coupon tracking, deal alerts, and price comparison
Readme 1.9 MiB
Languages
Python 85.2%
TypeScript 13.5%
Shell 0.5%
Dockerfile 0.5%
Mako 0.1%