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.2
- doctrine/dbal: ^4.0
- doctrine/migrations: ^3.7
- psr/log: ^3.0
- symfony/config: ^7.0
- symfony/console: ^7.0
- symfony/dependency-injection: ^7.0
- symfony/flex: ^2.4
- symfony/form: ^7.0
- symfony/framework-bundle: ^7.0
- symfony/monolog-bundle: ^3.10
- symfony/twig-bundle: ^7.0
- symfony/uid: ^7.0
- symfony/webpack-encore-bundle: ^2.1
- symfony/yaml: ^7.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.42
- phpstan/phpstan: ^1.10
- phpstan/phpstan-symfony: ^1.3
- phpunit/phpunit: ^10.5
- psalm/plugin-phpunit: ^0.19.0
- psalm/plugin-symfony: ^5.1
- qossmic/deptrac-shim: ^1.0
- roave/security-advisories: dev-latest
- slevomat/coding-standard: ^8.15
- squizlabs/php_codesniffer: ^3.9
- symfony/browser-kit: ^7.0
- symfony/dotenv: ^7.0
- vimeo/psalm: ^5.23
This package is auto-updated.
Last update: 2024-04-04 14:32:54 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.2
- PostgreSQL >= 15.3
- S3-compatible storage (AWS, MinIO)
- Node.js >= 20.0
- Yarn >= 1.22
- Typescript >= 5.1
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.