Project Empanada

An online food ordering platform where customers can browse products, add items to their cart, and place orders easily.

  • NextJS
  • TypeScript
  • Tailwind CSS
  • Firebase

The problem

Orders were taken by message. The menu, the cart, and the final order lived in different places, so totals were easy to get wrong. A customer could send a list, then change it in a follow-up chat, and nobody had one place to check what was actually ordered. Prices and availability were also easy to miss because they were not tied to the same list the customer sent.

The solution

A menu, a cart, and a checkout on one site, so a customer can see the order before it is sent. Products, quantities, and the total sit on the same page. The catalog and the submitted order are stored in Firebase, so the shop is not reconstructing the request from a thread.

What I learned

The hard part was the last step: showing the order clearly enough that people stopped confirming it in chat. Line items, quantities, and the total had to be visible together, or customers went back to messaging. I also learned to keep the cart and the saved order on the same source of truth in Firebase, so the page and the shop were not looking at two different lists.

More projects