Food Ordering App
A production-focused food ordering application with protected routes, media upload for restaurant images, Stripe Checkout integration, and reliable order lifecycle management. Customers can search restaurants, add items to cart, checkout via Stripe, and track order status. Restaurant owners can create and manage restaurants and menus, and view incoming orders.
"Keeping order status accurate when payment confirmation is asynchronous (Stripe webhooks) is challenging. The platform also requires secure authentication, authenticated API routes, reliable media uploads, and robust order creation logic."
Built a full-stack solution: Auth0 for authentication and protected routes, an Express API split by domains (user, restaurant, order), MongoDB/Mongoose persistence, Cloudinary for image upload, Stripe Checkout + webhook handling to transition orders from 'pending_payment' to 'paid', and a React frontend using React Query for server state.