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

Folders and files

NameName
Last commit message
Last commit date

Latest commit

4366873 · Jul 21, 2024
Jun 2, 2024
Sep 4, 2021
Jul 21, 2024
Jul 21, 2024
Sep 4, 2021
Jun 2, 2024
Jun 2, 2024
Mar 12, 2019
Nov 29, 2023
Jul 30, 2022
Mar 12, 2024
Apr 14, 2020
Jul 26, 2022
Apr 14, 2019
Jul 30, 2022
Dec 17, 2023
Jun 2, 2024
Jun 2, 2024
Jul 21, 2024
Jul 21, 2024
Dec 2, 2022
Jul 21, 2024
Jul 21, 2024
Jun 2, 2024
Jun 2, 2024
Jun 2, 2024
Jul 31, 2023
Jul 21, 2024
Mar 12, 2024
Jul 21, 2024

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