A React-based food ordering web application built on my own as a part of a course challenge. Users can browse available meals, manage their cart, and place an order with form-based user data. Backend communication is handled via RESTful API calls.
- Meals List – Fetched dynamically from the backend (
GET /meals) - Cart Functionality – Add/remove meals, view total, open/close cart in modal
- Checkout Form – Enter user info (name, email, address) in a modal form
- Data Submission – Send cart + user data to the backend (
POST /orders) - Loading & Error Handling – Visual feedback for API requests
- Frontend: React, Hooks, Context API, CSS Modules
- Backend: Node.js, Express
- Tooling: Vite, Fetch API
root/
├── backend/
│ ├── data/
│ └── app.js
├── public/
├── src/
│ ├── assets/
│ ├── components/
│ │ ├── Modal/
│ │ ├── ErrorMessage.jsx
│ │ ├── Header.jsx
│ │ ├── Meal.jsx
│ │ └── Meals.jsx
│ ├── store/
│ ├── util/
│ ├── App.jsx
│ ├── main.jsx
│ └── index.css
├── index.html
├── package.json
├── vite.config.js
- Navigate to the backend folder
cd backend/ - Install dependencies
npm install - Run the backend
node app.js
- Install dependencies
npm install - Run the app
npm run dev
Backend is exposing the following endpoints:
GET /meals– returns available mealsPOST /orders– accepts user + cart data
This project was built on my own, as part of the React course challenge: "React - The Complete Guide 2025" by Academind, Maximilian Schwarzmüller