A digital replacement for the handwritten customer cards used in optical shops. Built as a real-world case study in AI-Driven Development Lifecycle (AI-DLC) — replacing Agile sprints with outcome-defined Bolts, AI-assisted Mob Construction, and gated evidence-based delivery.
Enable optical shop owners and staff to digitally manage customer records, eye prescriptions, and orders — replacing paper cards with a searchable, role-aware system that tracks payments, generates printable receipts, and gives the owner real-time visibility into pending deliveries and outstanding balances.
Full scope: docs/scope.md
This is both a working MVP for a real target user (neighborhood optical shops still using handwritten cards) and a public record of how AI-DLC compares to traditional SDLC in practice. Every Bolt is tracked with actual metrics (clock hours, prompt count, lines of code, gate failures) so the productivity claims made in the final case study are grounded in data, not impressions.
Methodology write-up: docs/ai-dlc-methodology.md
Per-Bolt metrics: docs/metrics-tracker.md
Retros: docs/bolt-retros/
| Layer | Technology |
|---|---|
| Frontend | Angular 17+, PrimeNG, standalone components |
| Backend | NestJS, Passport.js, JWT |
| ORM | Prisma |
| Database | PostgreSQL |
| Auth | JWT with role-based guards (OWNER / WORKER) |
| PDF (planned) | Puppeteer |
Each Bolt is an independently shippable unit of work with its own Gate Evidence checklist.
- Bolt 1 — Foundation & Auth
- Bolt 2 — Customer Management
- Bolt 2.5 — Design Foundation & Theming (inserted, non-feature)
- Bolt 2.6 — Visual Identity & Motion Design (inserted, non-feature)
- Bolt 3 — Order + Prescription Entry
- Bolt 4 — Receipt Generation
- Bolt 5 — Dashboard & Payment Tracking
- Bolt 6 — Role Permissions & Polish
Bolt details and Gate Evidence checklists: docs/scope.md
- Node.js 18+
- PostgreSQL running locally
cd optical-backend
# 1. Copy env file and set your DB password
cp .env.example .env
# 2. Apply DB migrations
npx prisma migrate dev --name init
# 3. Start the API
npm run start:devAPI runs at http://localhost:3000.
Owner account auto-seeded: username: owner / password: owner123.
cd optical-frontend
ng serveApp runs at http://localhost:4200.
Optical Shop Management System/
├── README.md ← this file
├── docs/
│ ├── scope.md ← Intent, DDD model, Bolts breakdown
│ ├── ai-dlc-methodology.md ← how AI-DLC is applied here
│ ├── metrics-tracker.md ← per-Bolt hours, prompts, LOC
│ ├── bolt-retros/
│ │ ├── TEMPLATE.md
│ │ ├── bolt-1.md
│ │ ├── bolt-2.md
│ │ ├── bolt-2.5.md
│ │ ├── bolt-2.6.md
│ │ └── bolt-3.md
│ └── screenshots/
│ ├── bolt-2.5/ ← four manual a11y verification captures
│ └── bolt-3/ ← before-patch3 + after-patch4 a11y (16) + 3 perf + 1 reduced-motion
├── optical-backend/ ← NestJS + Prisma + PostgreSQL
└── optical-frontend/ ← Angular + PrimeNG
Built by Muhammad Wasim as a public case study in AI-assisted software delivery. Open to remote Senior Software Engineer roles (UTC+5, full overlap with GMT, partial overlap with EST).