Projects

TasteHub

A restaurant management backend — one API over the menu, the orders, the reservations, and the staff who act on them.

Role
Software Engineer
Status
shipped
  • TasteHub — the API behind a restaurant's menu, orders, reservations and staff

Problem

A restaurant runs its menu, its orders and its reservations in three systems that never reconcile. TasteHub is the backend that holds them together, with the rules about who may change what living in middleware rather than being repeated in every route.

Architecture

guardsExpress APIserviceAuth middlewareserviceMenu managementserviceOrders + reservationsservicePayment + billingserviceAnalyticsserviceMongoDBdata
Architecture of TasteHub.
Read this diagram as text
  • Express API guards Auth middleware
  • Express API connects to Menu management
  • Express API connects to Orders + reservations
  • Orders + reservations connects to Payment + billing
  • Orders + reservations connects to Analytics
  • Menu management connects to MongoDB
  • Orders + reservations connects to MongoDB

Engineering decisions

The stack, reasoning not written up yet:

Node.js · Express · MongoDB · OAuth / JWT

The hard part

The rules about who may change what were the mess. A restaurant has customers, waiting staff, kitchen and owners, and the first version checked for them inside each route — so every new endpoint was a fresh chance to forget one, and within a month the rules disagreed with each other. They moved into middleware guarding the routes as a group: a role is described once, and a new endpoint inherits the answer instead of re-deciding it.

Result

A RESTful Node and Express backend on an MVC layout: digital menu management, online ordering and reservations, order tracking for admins, billing, and role-aware middleware separating customer from staff access.