Hex is a sandbox where I try stuff and learn about DDD, Hexagonal Architecture, CQRS and Event Sourcing.
The problem I'm trying to model in Hex is a meeting room, for which employees can make reservations. The business rules are quite simple:
- A meeting room has a limited capacity
- Meetings cannot take place oustide business hours
- Only one meeting can take place at the same time (no overlap)
- Meeting duration cannot exceed 3h
- Employees can make a reservation up to 7 days in advance
- Employees can consult the meeting room schedule
Here are succinct descriptions of concepts related to OOP, DDD, Hexagonal Architecture, CQRS and Event Sourcing. They are described as I understand them, illustrated with code examples.
$ ./vendor/bin/phpunit
# You can also give the tests a run for their money
$ ./vendor/bin/humbug
Hex takes inspiration and borrows a lot of ideas and code from some really awesome PHP projects:
- Broadway by Quandidate Labs
- LiteCQRS for PHP by Benjamin Eberlei
- Predaddy by Janos Szurovecz
- Playground: Event Sourcing by Robin Malfait
The MIT License (MIT). Please see License File for more information.