A full-stack food delivery platform built using React on the frontend and Spring Boot on the backend. This application allows users to browse restaurants, view food items, place orders, and track their deliveries in real time.
- Typescript
- React
- React Query
- Tailwind CSS
- Redux Toolkit
- Java 17
- Spring Boot
- MongoDB (for user and order data)
- PostgreSQL (for structured relational data like restaurants, menu items)
- Kafka (optional - for asynchronous order processing and event-driven architecture)
- Redis (optional - for caching and session management)
- JWT (JSON Web Token)
- OAuth2 (Google, GitHub login support)
- AWS / Azure (EC2, S3, RDS, etc.) (optional)
- Docker (for containerization)
- Kubernetes (for orchestration)
- Nginx (for reverse proxy)
- Terraform (for infrastructure as code)
- Git (for version control)
- Docker Compose (for local development)
- Postman (for API testing)
# Optional tools and libraries
- GraphQL (optional - for flexible API queries)
- Apollo Client (optional - for GraphQL queries)
- Swagger (for API documentation)
- ESLint (for code linting)
- Prettier (for code formatting)
- Jest (for unit testing)
- Cypress (for end-to-end testing)
- SonarQube (for code quality analysis)
- Sentry (for error tracking)
- Redis (for caching)
- RabbitMQ (for message brokering)
- Stripe (for payment processing)
- Twilio (for SMS notifications)
- Google Maps API (for location services)
- Cloudinary (for image hosting)
- Webpack (for module bundling)
- Babel (for JavaScript transpilation)
- Axios (for API requests)
- React Router (for routing)
- Redux (for state management)
- GitHub Actions (CI/CD)
- Vercel (for frontend hosting)
- Node.js (v18+)
- Java 17 or higher
- PostgreSQL (for local development)
- MongoDB (for local development)
- Docker (for MongoDB, PostgreSQL)
- Maven
cd UI
npm install
npm run dev- Set up project with Vite + Tailwind CSS + Redux Toolkit
- Create responsive layout (header, footer, main content)
- Restaurant listing page with filters and categories
- Food item detail page with add to cart functionality
- Shopping cart component (persist in localStorage)
- Checkout page and address form
- Order summary and payment simulation
- Order Tracking page
- User authentication (JWT + OAuth2)
- Profile page (past orders, addresses)
- Admin dashboard UI
- Restaurant management UI
- Real-time order status updates using polling/websockets
- Integrate React Query for all API interactions
- Project setup with layered architecture (controller, service, repo)
- Configure MongoDB (for users/orders) and PostgreSQL (for structured data)
- Implement JWT-based authentication
- Implement OAuth2 (Google, GitHub)
- User roles: Customer, Admin, Restaurant Owner
- Restaurant CRUD APIs
- Food item CRUD APIs
- Cart and checkout API endpoints
- Order management with status flow
- Kafka integration for event-driven order processing (optional)
- Redis for caching frequently accessed data (optional)
- API documentation with Swagger/OpenAPI
- Unit and Integration tests using JUnit + Mockito
- Dockerize backend and databases (Docker Compose)
- Environment setup scripts for dev/staging
- GitHub Actions for CI/CD (backend and frontend)
- Deployment to AWS or Azure (EC2, S3, RDS)
- Deploy frontend to Vercel or S3 static hosting
- Setup monitoring (e.g., Prometheus + Grafana)
- Logging (Spring Boot with ELK or Loki stack)
food-delivery-platform/
├── UI/ # React Frontend
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── store/features/ # Redux Toolkit slices
│ │ ├── api/ # React Query API definitions
│ │ ├── utils/
│ │ └── App.jsx
│ └── tailwind.config.js
├── backend/ # Spring Boot Backend
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/fooddelivery/
│ │ │ │ ├── controller/
│ │ │ │ ├── dto/
│ │ │ │ ├── model/
│ │ │ │ ├── repository/
│ │ │ │ ├── service/
│ │ │ │ └── config/
│ │ └── resources/
│ │ └── application.yml
├── docker-compose.yml
├── README.md
└── .github/workflows/ # CI/CD configurations
🙌 Maintainers The CodeReveal – YouTube Channel
If you find this project helpful, consider supporting the creator by:
-
Subscribing to the YouTube channel
-
Liking and sharing the videos
-
Your support helps in creating more content and maintaining this project.
-
Buy Me A Coffee - Support the creator with a coffee ☕
- Thank you for your support!

