Welcome to FoodTech Kitchen Service
FoodTech Kitchen Service is a robust restaurant kitchen management system designed to automate the decomposition of customer orders into station-specific preparation tasks. Built with clean architecture principles and powered by the Command Pattern, it streamlines kitchen operations across multiple cooking stations.Quick Start
Get up and running in 5 minutes
Architecture
Learn about the hexagonal architecture
API Reference
Explore the REST API endpoints
Domain Model
Understand the core domain entities
What Problem Does It Solve?
When a restaurant order contains multiple products (drinks, hot dishes, salads), the system automatically groups them by station and creates specific tasks for each kitchen workstation:| Station | Products | Preparation Time |
|---|---|---|
| BAR 🍹 | Beverages, cocktails | 3 seconds per drink |
| HOT_KITCHEN 🔥 | Main courses, soups | 7 seconds per dish |
| COLD_KITCHEN 🥗 | Salads, desserts | 5 seconds per dish |
Key Features
Hexagonal Architecture
Clear separation of concerns with domain, application, and infrastructure layers
Command Pattern
Station-specific commands encapsulate preparation logic for each kitchen area
SOLID Principles
Built with best practices including SRP, OCP, LSP, ISP, and DIP
REST API
Full REST API for order processing and task management
Docker Ready
Multi-stage Docker builds for easy deployment
Test Coverage
Comprehensive unit and integration tests with TDD approach
Technology Stack
- Java 17 - Modern Java with records and pattern matching
- Spring Boot 3.2.1 - Application framework
- Spring Data JPA - Database persistence
- H2 Database - In-memory database for development
- Gradle 8.5 - Build automation
- JUnit 5 - Testing framework
- Docker - Containerization
How It Works
Receive Order
The system receives an order via REST API containing a table number and list of products
Decompose into Tasks
The TaskDecomposer groups products by their station (Bar, Hot Kitchen, Cold Kitchen)
Create Commands
For each station, a specific Command is created (PrepareDrinkCommand, PrepareHotDishCommand, etc.)
Next Steps
Quickstart Guide
Create your first order in minutes
Installation
Set up the development environment
Command Pattern Deep Dive
Learn how the Command Pattern is implemented
API Documentation
Explore the REST API endpoints