00
Portfolio

Artisanal cookie ordering platform with a public order form and comprehensive admin dashboard for managing orders, products, payments, and analytics
A cookie seller relied on Instagram for discovery and Google Forms for order intake. Manual payment screenshot review, no order tracking, no CRM data, and no analytics made operations slow and error-prone.
Le Doux is a full-stack cookie ordering platform built for an artisanal cookie business in Davao. It replaces a Google Forms-based workflow with a branded, multi-step order wizard and a comprehensive admin dashboard. The system handles structured product ordering across multiple template types (cookies, boxes, tubs, bento cakes), GCash payment verification with client-side OCR, confirmation emails via Brevo, and a full admin suite covering orders, menu management, form building, customer CRM, and analytics.
Le Doux
* Shared with client permission.
Sole Full Stack Developer
Multi-step order wizard with admin-configurable form blocks
Structured product catalog with template-based UIs (cookie, box, tub, bento cake)
Exact-quantity flavor distribution for cookie boxes
Customizable tub selector (3 flavors + 1 sauce)
GCash payment with QR display and client-side OCR for reference extraction
Server-side price recalculation to prevent tampering
Order snapshot strategy for historical accuracy
Admin dashboard with at-a-glance stats
Orders management with status filters, CSV export, and activity logs
Payment verification with screenshot lightbox review
Email workflow with branded confirmation templates and preview
Full menu CRUD with template types and sold-out toggles
Dynamic form builder with draft/publish workflow
Content management for welcome messages, reminders, and email templates
Pickup slot management with capacity controls
Customer CRM with auto-created records and order history
Analytics with revenue charts, top products, and customer insights
Next.js full-stack App Router: Server Components, Server Actions, Route Handlers, and Middleware in a single deployment — no separate backend needed for this scope.
Supabase for database, auth, and storage: PostgreSQL with RLS handles multi-tenant data isolation, Supabase Auth manages admin sessions, and Storage handles payment proofs and menu images without custom upload logic.
Order snapshot strategy with JSONB: all customer, payment, and form response data is denormalized into snapshots at creation time. Historical orders render from snapshots only, ensuring accuracy as products, prices, or settings change.
Server-side price recalculation: the client submits line items but the server re-fetches product prices from the database and recalculates all totals. Client-submitted totals are never trusted, preventing price tampering.
Tesseract.js for client-side OCR: payment screenshots are processed in the browser to auto-extract GCash reference numbers, reducing manual entry errors without a server-side OCR pipeline.
Dynamic form builder with draft/publish workflow: admins configure the public order form through a visual block editor stored as JSONB, with publish validation ensuring no orphaned categories or empty product lists.




