I was looking for such kind of project but found nothing, so I decided to create my own. Maybe there's not a huge difference between generic Laravel e-Commerce and DDD e-Commerce, but anyway it's interesting to use another architecture and look how you can modify base project structure.
I was inspired by these (1 , 2 , 3) and a lot of other articles and videos as well as my work projects. But basically every DDD article presents its own project structure so DDD is more an idea or a team agreement than exact project structure. And that's why I've implemented my own wierd DDD structure :)
- Fill
.env
variables. - To setup project in Docker environment (Laravel Sail) use
make setup
command.
- Laravel Octane with Swoole as Server
- Laravel Horizon as Queue Dashboard
- Totem as Schedule Dashboard
- Prequel as Database Dashboard
- Clockwork and Laravel Telescope as Dev Toolkit
- Swagger Documentation
- Amazing Admin Panel - Filament
- RESTful API
- Instant Parallel Tests
- RabbitMQ Queues
- Redis Cache
- Elasticsearch Search
- Sentry Logging
- XDebug Support
- DDD structure
- Separate Development, Testing and CI Infrastructure
- Git Hooks with Code Style (PHPCS, Laravel Pint) and Code Quality (PHPStan) analysis
- Fast CI at GitHub Actions:
- caching dependencies and check's results
- building, caching and pushing Docker images to the Docker Hub
- building code coverage report
- Authentication with Laravel Sanctum, Email Verification, Login History - [Users]
- Catalog with different filters, full-text search, categories tree, etc. - [Catalog]
- Ability to add feedback, but a limited number of times per hour per IP - [Feedback]
- [WIP] Carts with Redis - [Cart]
- [News]
- Full usage of PHP 8.1 + PHP 8.2 features
- Admin panel multilanguage support
- AWS S3 disk for images, responsive images generation
And a lot of other that isn't mentioned above, or will be added, or will be fixed in current code.