FoodFlow is a modern, production-ready full-stack food ordering and delivery application built with React on the frontend and Spring Boot on the backend.
This project demonstrates real-world full-stack development practices, including secure authentication, role-based access control, RESTful API design, email notifications, payment integration, and cloud-ready deployment.
- Frontend: React (SPA)
- Backend: Spring Boot (REST API)
- Authentication: JWT (JSON Web Token)
- Authorization: Role-Based Access Control (Admin / Customer / Delivery)
- Database: MySQL / PostgreSQL
- Deployment Target: AWS (EC2, RDS, S3)
- User registration & login
- JWT-based authentication
- Role-based access control
- Secure API protection using Spring Security
- Browse food menu & categories
- Place orders
- View order history
- Role-specific features
- Order confirmation emails
- Status update notifications
- Stripe API (test environment)
- AWS-ready deployment design
- Environment-based configuration
- React
- React Router
- Axios
- HTML / CSS
- JavaScript (ES6+)
- Java 17+
- Spring Boot
- Spring Security
- JWT
- Spring Validation
- Java Mail Sender
- Maven
- MySQL / PostgreSQL
- JPA / Hibernate
FoodFlow/
├── frontend/
│ ├── src/
│ ├── public/
│ └── package.json
│
├── backend/
│ ├── src/main/java/
│ ├── src/main/resources/
│ └── pom.xml
│
├── .gitignore
└── README.md
Create a .env file in the frontend directory:
VITE_API_BASE_URL=http://localhost:8080/apiUse application.properties for shared config and application-local.properties for secrets.
spring.datasource.url=jdbc:mysql://localhost:3306/foodflow
spring.datasource.username=root
spring.datasource.password=your_password
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your_email
spring.mail.password=your_passwordcd backend
mvn spring-boot:runBackend runs on http://localhost:8080
cd frontend
npm install
npm run devFrontend runs on http://localhost:3000
{
"statusCode": 200,
"message": "Success",
"data": {}
}- Backend: AWS EC2
- Database: AWS RDS
- Frontend: AWS S3 + CloudFront
Educational & portfolio use.
Built with ❤️ using React & Spring Boot