radarlog/doop

Simple File Uploader / AWS S3 Uploader

Maintainers

Details

github.com/radarlog/doop

Source

Issues

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 0

Open Issues: 0

Type:project

dev-master 2024-07-21 13:01 UTC

This package is auto-updated.

Last update: 2024-10-21 17:13:59 UTC


README

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.