radarlog / doop
Simple File Uploader / AWS S3 Uploader
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ^8.3
- composer-plugin-api: ^2.6
- composer-runtime-api: ^2.2
- ext-fileinfo: *
- ext-json: *
- ext-pdo: *
- async-aws/s3: ^2.3
- doctrine/dbal: ^4.0
- doctrine/migrations: ^3.8
- psr/log: ^3.0
- symfony/config: ^7.1
- symfony/console: ^7.1
- symfony/dependency-injection: ^7.1
- symfony/flex: ^2.4
- symfony/form: ^7.1
- symfony/framework-bundle: ^7.1
- symfony/monolog-bundle: ^3.10
- symfony/twig-bundle: ^7.1
- symfony/uid: ^7.1
- symfony/webpack-encore-bundle: ^2.1
- symfony/yaml: ^7.1
Requires (Dev)
- ergebnis/composer-normalize: ^2.43
- phpstan/phpstan: ^1.11
- phpstan/phpstan-symfony: ^1.4
- phpunit/phpunit: ^11.2
- psalm/plugin-phpunit: ^0.19.0
- psalm/plugin-symfony: ^5.2
- qossmic/deptrac: ^2.0
- roave/security-advisories: dev-latest
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.10
- symfony/browser-kit: ^7.1
- symfony/dotenv: ^7.1
- vimeo/psalm: dev-master as 5.25
This package is auto-updated.
Last update: 2024-11-21 17:19:57 UTC
README
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.
Requirements
- PHP >= 8.3
- PostgreSQL >= 16.3
- S3-compatible storage (AWS, MinIO)
- Node.js >= 22.2
- Yarn >= 1.22
- Typescript >= 5.4
Directory Structure
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
Running locally
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.
Testing
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
License
Doop is licensed under MIT License. Please see LICENSE for details.
Changelog
Please see CHANGELOG for more information.