Skip to content
/ doop Public

PHP application implementing Hexagonal Architecture for uploading images to AWS S3 and using PostgreSQL for deduplication

License

Notifications You must be signed in to change notification settings

radarlog/doop

Repository files navigation

Doop

Build Status codecov

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.

About

PHP application implementing Hexagonal Architecture for uploading images to AWS S3 and using PostgreSQL for deduplication

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published