https://github.com/victorlevandovski/teamo-ddd-example
Implementing Domain Driven Design in PHP using Laravel
https://github.com/victorlevandovski/teamo-ddd-example
ddd ddd-architecture ddd-sample domain-driven-design hexagonal-architecture laravel laravel-application laravel-framework laravel5
Last synced: 2 months ago
JSON representation
Implementing Domain Driven Design in PHP using Laravel
- Host: GitHub
- URL: https://github.com/victorlevandovski/teamo-ddd-example
- Owner: victorlevandovski
- Created: 2017-06-13T17:02:18.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2017-08-08T17:45:11.000Z (over 7 years ago)
- Last Synced: 2025-02-01T04:31:43.382Z (3 months ago)
- Topics: ddd, ddd-architecture, ddd-sample, domain-driven-design, hexagonal-architecture, laravel, laravel-application, laravel-framework, laravel5
- Language: PHP
- Homepage:
- Size: 2.99 MB
- Stars: 55
- Watchers: 1
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Implementing Domain Driven Design in PHP using Laravel
Teamo is a collaboration service for small teams working on their projects. It's a place to keep discussions, tasks and events.
In Teamo every user can create unlimited number of projects, and join any projects of other users by invitation. So there is no main account of the team, there are just users and projects. User can have projects with different teams not related to each other.
This repository is an example of how such Laravel application may look. Application consists of two bounded contexts: User and Project.
In User bounded context there are things like registration, login, account settings and preferences.
Project bounded context is where everything happens, every User is a Team Member of a Project here.
These two bounded contexts are a part of the same application, however they can be easily separated since there is no direct connection between them except for few Domain Event Subscribers. They share the same database, but they don't share tables in it.
When working on new application, you usually don't need to distribute your system right away, but you can/should write a code that will be easy to distribute later.
### What this code is
This code is an example of how your DDD application with Hexagonal architecture may look. Please visit /app directory.
### What this code is not
This is definitely not a good example of frond-end development skills. Actually I just copied HTML, CSS and JavaScript from old project without trying to fix anything. So please don't use it as a reference on organising your resources.