Restaurant website and ordering
Afro Flavours
A website and API for a West African restaurant and grocery in Auckland: table bookings, online ordering, catering requests, events and an admin dashboard.

- 17
- Data models
- 100
- API endpoints
- 35
- Pages
Overview
Afro Flavours needed one place for guests to book a table, order food and groceries, request catering and find out what is on. Staff needed an easy way to manage all of it without touching code.
I built the Next.js website and the Express API, including the admin dashboard the team uses day to day.
What I built
Bookings
Dine-in, event and African-experience bookings with live availability, double-booking checks and special-hours overrides.
Menu and online shop
Restaurant menu and groceries with a cart, checkout for delivery or pickup, and a tracking page for each order.
Catering
Catering requests with file attachments, handled from the admin dashboard.
Events, reviews and gallery
Events, customer reviews, a photo gallery, a newsletter and a contact form.
Admin dashboard
Manage bookings, orders, payments, menu, products, events, messages, reviews and site details, with exports.
Engineering notes
- Order numbers come from an atomic counter, and every status change adds an entry to the order's timeline.
- Admin routes sit behind a JWT guard; the API is rate limited and validates every request.
- Stripe payment intents and webhooks for bookings and catering, with refunds from the admin side.
- Transactional email through Resend and image storage on Cloudinary.
Screenshots







