Example app for interview
Go to file
2024-01-18 22:43:04 +01:00
assets feat: add stub implementation for image 2024-01-17 19:05:54 +01:00
bin feat: add CurrencyValidator 2024-01-17 19:11:44 +01:00
config fix: use same terminology 2024-01-18 22:08:07 +01:00
docker feat: add support for OTEL logs 2024-01-18 18:59:31 +01:00
public initial commit 2024-01-16 16:54:06 +01:00
src fix: NumberClasss invalid_message 2024-01-18 22:23:53 +01:00
templates feat: add error pages 2024-01-18 21:57:13 +01:00
tests fix: use same terminology 2024-01-18 22:08:07 +01:00
translations feat: add error pages 2024-01-18 21:57:13 +01:00
.env feat: add sentry 2024-01-18 20:50:37 +01:00
.env.test feat: add CurrencyValidator 2024-01-17 19:11:44 +01:00
.gitignore feat: add CurrencyValidator 2024-01-17 19:11:44 +01:00
composer.json feat: add nubium/this-should-never-happen-exception 2024-01-18 20:50:37 +01:00
composer.lock feat: add nubium/this-should-never-happen-exception 2024-01-18 20:50:37 +01:00
docker-compose.yml initial commit 2024-01-16 16:54:06 +01:00
Dockerfile.fpm feat: add translator 2024-01-17 19:05:54 +01:00
Dockerfile.nginx initial commit 2024-01-16 16:54:06 +01:00
Dockerfile.static initial commit 2024-01-16 16:54:06 +01:00
importmap.php feat: use bootstrap layout for forms 2024-01-17 19:05:53 +01:00
phpstan.dist.neon feat: change PHPStan level to max 2024-01-17 18:14:28 +01:00
phpunit.xml.dist feat: add CurrencyValidator 2024-01-17 19:11:44 +01:00
README.md docs: update README 2024-01-18 22:43:04 +01:00
symfony.lock feat: add sentry 2024-01-18 20:50:37 +01:00

symfony_example_app

Generátor QR kódů pro platby z https://topapi.top-test.cz

Quick setup

# git clone https://git.nanobyte.cz/nanobyte-public/symfony_example_app.git
# cd symfony_example_app
# docker compose run --build php-fpm composer install
# docker compose up --build
  • aplikace je dostupná na http://localhost:8000/
  • na adrese http://localhost:3000/explore je běžící grafana (s loki a tempo)
  • aplikace je nastavená (i na lokálu, běžně bych to nastavil až na devech/stage/PROD) aby posílala logy do lokiho a tracing do tempa pomocí otel protokolu

TODO:

  • Chybí speciální slovník nebo vypnutí slovníku pro testy
  • V reálný aplikaci bych použil Mockery, nicméně tady mě to přijde zbytečný
  • Nastavení cache ideálně v memcached/redis etc.
  • Vyhezkat OTEL logs, OTEL tracing
  • CI pipelines
  • k8s deployment
  • prometheus country na počet requestů/api (počet 200OK/500ERR)
  • Je dost na zvážení zda nezobrazit výsledek remote validace (response_create_400.json) a nenechat uživatele špatné hodnoty opravit. Ovšem znamená to že lokální validátory jsou špatně, chybu by bylo vhodné zalogovat do Sentry (do logu etc.) a opravit ji...
  • Na produkci bych statický content rozhodně netlačil přes app container ale přes static nginx container (asset-map:compile -> copy do nginx static containeru)

Poznámky

  • Nejsem kodér (a javascript developer), nevypadá to nijak extra ;-)