https://github.com/kb-web-development/ddd-restaurant
Domain driven design (DDD) php application - personal project
https://github.com/kb-web-development/ddd-restaurant
Last synced: 3 months ago
JSON representation
Domain driven design (DDD) php application - personal project
- Host: GitHub
- URL: https://github.com/kb-web-development/ddd-restaurant
- Owner: KB-WEB-DEVELOPMENT
- License: mit
- Created: 2024-04-30T19:51:56.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-07-13T09:58:30.000Z (11 months ago)
- Last Synced: 2025-01-21T04:08:07.505Z (5 months ago)
- Language: PHP
- Size: 125 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Domain Driven Design (DDD) project - Restaurant Business
## Introduction
Sample project created to practice and learn how to build a simple domain driven design (DDD) web application.
The following aspects of such an application are examined:
- Domain objects
- Layers (Application, Domain and Infrastructure)
- Unit testing
- MySQL Database infrastructure
- Doctrine infrastructureRestaurant Business Modelling diagram:
[Modelling diagram](https://drive.google.com/file/d/1YCLQmQMe31okBSRxGhFvJZEZ0LvXtgft "Restaurant Business Modelling diagram")
Simplified Restaurant Business Class diagram:
[Simplified Class Diagram](https://drive.google.com/file/d/1XKvHCwYFbV-rwx69w_MeWZP-SiuRPlLH "Simplified Restaurant Business Class Diagram")
This is a simplified version of the class diagram because in a DDD project, the operations
are handled by the Infrastructure layer (see all interfaces and repositories in code).## Prices
I used the [Brick\Money] (https://github.com/brick/money "Brick\Money money and currency PHP library") money and currency PHP library to deal with money.
## Dependencies
- "doctrine/orm"
- symfony/dependency-injection"## To be done:
1. Add specific Domain events
2. Domain Event listeners
3. Transactions4. Factories (not needed for such a small project)
5. Domain Services and Infrastructure services (not needed for such a small project)
6. Application Services (not needed for such a small project)
7. Modules (not needed for such a small project)
8. Presentation layer
9. (eventually) external APIs## Technologies to be explored in the context of the project:
Scrutinizer Code Quality, Travis CS & Static Analysis