Doop is a PHP application implementing Hexagonal Architecture for uploading images to an S3-compatible object storage and using PostgreSQL for data deduplication. It strictly follows SOLID principles and is 100% covered by tests. Development environment is fully dockerized and automated with a makefile.
- PHP >= 8.3
- PostgreSQL >= 16.3
- S3-compatible storage (AWS, MinIO)
- Node.js >= 22.2
- Yarn >= 1.22
- Typescript >= 5.4
bin/ cli entry point
config/ configuration files
docker/ docker related files
public/ http document root
src/ source files
Application/ application layer (use cases)
Domain/ domain layer (core logic)
Frontend/ frontend application (css, html, typescript)
Infrastructure/ infrastructure layer (db, cli, http)
tests/ unit and functional tests
Application/ use cases unit tests
Domain/ domain layer unit tests
Fixtures/ image fixture files
Infrastructure/ infrastructure functional tests
Make sure you have docker compose
and make
installed.
Clone the latest version and run:
$ make run
then navigate to http://localhost/
with your favorite browser.
Make sure you have docker compose
and make
installed.
Perform all the necessary QA-checks like coding styles, static analysis and unit/functional tests:
$ make tests
Doop is licensed under MIT License. Please see LICENSE for details.
Please see CHANGELOG for more information.