Example app for interview
assets | ||
bin | ||
config | ||
docker | ||
public | ||
src | ||
templates | ||
tests | ||
translations | ||
.env | ||
.env.test | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
docker-compose.yml | ||
Dockerfile.fpm | ||
Dockerfile.nginx | ||
Dockerfile.static | ||
importmap.php | ||
phpstan.dist.neon | ||
phpunit.xml.dist | ||
README.md | ||
symfony.lock |
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)
- xdebug v dockeru
Poznámky
- Nejsem kodér (a javascript developer), nevypadá to nijak extra ;-)