Case study
Spectra
Discounted Food Ordering for Quebec Restaurants
Role
Scope
Stack
Live
What I built.
- 01
Handled the entire product, from the client’s business rules to every screen, the server, the database, payments and notifications.
- 02
Customers search restaurants, see discounts with the original price crossed out, choose dine-in or take-out, tip, pay by card and rate their order.
- 03
Checkout shows Quebec taxes and “You save $X”, and the orders page keeps a running total of savings.
- 04
Restaurants sign up, upload menus, choose how new orders arrive (text, email or both), mark orders fulfilled or cancelled, and see a full payout breakdown.
- 05
Payouts go to each restaurant’s bank account automatically, and cancellations refund the customer with the right party covering the fees.
- 06
An admin panel for managing restaurants and customers, blocking accounts, setting commission and changing the minimum order without a code change.
- 01
Express API serving Apollo GraphQL alongside REST, with Mongoose schemas for restaurants, orders, ratings and site settings.
- 02
A pricing engine for discount, 14.975% Quebec tax, tip, service fee and customer savings, rounded to the cent.
- 03
Stripe Connect Express accounts created at restaurant sign-up; each order reads the real Stripe fee from its balance transaction and transfers the remainder to the restaurant.
- 04
Cancellation logic with transfer reversals and full or partial refunds, depending on who cancelled.
- 05
New-order notifications through Twilio SMS, SendGrid email or both; JWT auth with bcrypt, and an admin block flag enforced at login.
- 06
About 30 React screens on Redux Toolkit and Apollo Client, plus a separate admin API and React admin SPA on the same database.