Golden Fork — Restaurant Ordering System
A full ordering platform: customers browse a menu, build a cart and pay
by card. Staff get a live kitchen queue and full control of the menu.
Golden Fork — Restaurant Ordering System
A full ordering platform: customers browse a menu, build a cart and pay by card. Staff get a live kitchen queue and full control of the menu.
What it does
- Real card payments through Stripe Checkout, verified end to end
- HTML receipt emailed to the customer on every successful payment
- Kitchen queue of paid orders, sorted by payment time
- Admin menu management with soft delete, locked down by role
- Server-rendered frontend in Thymeleaf, sharing the same services as the API
Design decisions I can defend
- Snapshot pricing — each order stores the price it was bought at, so changing a menu price never rewrites history
- Two independent payment confirmations — a Stripe webhook and a redirect check; either one alone is enough, so a lost webhook cannot lose a payment
- Receipt failures never roll back a payment — a mail error inside the transaction would un-pay an order the customer was already charged for
- Two separate limits — a per-line cap explains the rule to the customer, an order-total cap keeps the database column from ever overflowing
- The session holds only a cart id — never the cart itself, and never an id taken from the URL
- Java 21
- Spring Boot
- PostgreSQL
- Stripe
- Thymeleaf
- JUnit 5