2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00
2025-01-23 00:45:59 +01:00

How to start with development


Tests

Run the following command to execute the tests:

docker compose exec php-fpm vendor/bin/phpunit

PHPStan & CS

  • Run PHP CodeSniffer:
    docker compose exec php-fpm vendor/bin/phpcs
    
  • Run PHPStan with increased memory limit:
    docker compose exec php-fpm vendor/bin/phpstan --memory-limit=2G
    

Swagger

To regenerate Swagger documentation, use:

docker compose exec php-fpm /var/www/html/artisan l5-swagger:generate

Containers

  • php-fpm - FPM and additional tooling
  • nginx - Serves static content, proxies requests to FPM
  • mysql - Database

TODO

  • Add more filtering options
  • Different DB for testing (and revert changes)
  • The current tests are very basic. Write additional testing scenarios (feature tests).
  • Write unit tests!
  • Extend Swagger documentation; currently, only one controller is documented.
  • Add a monitoring stack (Prometheus, Otel, Loki, Grafana, etc.).
  • Integrate Sentry.
  • Establish deployment pipelines for dev/test and production environments. Configure production settings and Docker images.
  • Integrate CI/CD.

Notes

Rate-limiting is managed at the NGINX layer (per IP). Therefore, there is no need to send "banned" traffic to php-fpm and occupy workers.

Description
No description provided
Readme 125 KiB
Languages
PHP 78.2%
Blade 20.8%
Shell 0.5%
JavaScript 0.5%