This project is a Food Ordering System that evolves over six development phases, integrating core software engineering concepts, database management, security, and API development.
- 📜 Menu Management: View, add, update, and delete menu items.
- 🛒 Order Processing: Customers can place and modify orders, with receipt generation.
- 🔑 Secure Authentication: JWT-based authentication & OAuth2 for secure login.
- 🛠️ Role-Based Access: Customers, Merchants, and Admins with different permissions.
- 📊 Reports & Analytics: Jasper Reports for order summaries and sales tracking.
- ☁️ Cloud Deployment: Hosted on Railway.app
- Java 8 (Core Language)
- Spring Boot 2 (Framework)
- Spring Data JPA (Database Access)
- Spring Security & OAuth2 (Authentication & Authorization)
- PostgreSQL (Primary Database)
- Hibernate (JPA) (ORM for database interaction)
- Swagger (Springdoc OpenAPI) (API Documentation)
- JUnit & Mockito (Unit & Integration Testing)
- Postman (Manual API Testing)
- Jasper Reports (PDF Report Generation for Orders & Sales)
- Railway.app (Cloud Deployment)
- Docker (Containerization for scalability)
The API documentation is available at http://localhost:8081/swagger-ui.html after starting the server.
Follow these steps to get the project up and running locally.
Make sure you have the following installed on your machine:
- Java JDK 8
- Maven
- PostgreSQL
- Clone the repository:
git clone https://github.com/Dikus21/food-ordering-api.git
cd food-ordering-api-
Set up the PostgreSQL database and configure the application properties.
-
Install dependencies and build the project
mvn clean installmvn spring-boot:runFor any questions or inquiries, please contact me at andikatirta001@gmail.com
