No description
  • PHP 61.1%
  • Twig 19.5%
  • JavaScript 9.5%
  • HTML 3.7%
  • CSS 2.5%
  • Other 3.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-22 23:41:28 +00:00
.kilocode/rules docs(release): consolidate verified architecture and release checklist 2026-10-02 17:12:26 +01:00
assets Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
bin Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
config fix(seo): align indexing metadata and canonical publication URLs 2026-10-02 16:24:34 +01:00
docker Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
docs Improve homepage SEO and clinic structured data 2026-10-08 07:34:00 +00:00
migrations fix(seo): align indexing metadata and canonical publication URLs 2026-10-02 16:24:34 +01:00
onepage_code Improvements CWV 2026-08-09 20:02:41 +00:00
public refactor(ui): replace AdminKit with owned Bootstrap components 2026-10-04 20:58:51 +03:00
src Improve homepage local SEO copy for Dnipro 2026-10-22 23:39:44 +00:00
templates Restore compact Topolia clinic card heading 2026-10-22 23:41:28 +00:00
tests Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
translations refactor(ui): replace AdminKit with owned Bootstrap components 2026-10-04 20:58:51 +03:00
.dockerignore Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
.env.docker.example Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
.env.example docs(release): consolidate verified architecture and release checklist 2026-10-02 17:12:26 +01:00
.env.prod build: establish reproducible runtime and safe audit baseline 2026-10-01 22:14:18 +01:00
.gitattributes feat(ui): migrate admin to Volt and align responsive components 2026-10-04 21:35:26 +03:00
.gitignore Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
.user.ini Initial commit 2025-10-06 12:46:43 +03:00
BagiraZooVet_AdminKit_UI_Audit_Roadmap.md Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
BagiraZooVet_Technical_Architecture_UI_UX_Audit.md Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
compose.yaml Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
composer.json chore(ops): harden sessions workers and recoverable deployment 2026-10-02 09:52:07 +01:00
composer.lock chore(ops): harden sessions workers and recoverable deployment 2026-10-02 09:52:07 +01:00
context.md Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
DOCKER.md Add Docker development setup, audits and sample data command; ignore runtime backups 2026-10-02 23:09:59 +03:00
LICENSE Initial commit 2025-10-06 12:46:43 +03:00
package-lock.json refactor(ui): replace AdminKit with owned Bootstrap components 2026-10-04 20:58:51 +03:00
package.json refactor(ui): replace AdminKit with owned Bootstrap components 2026-10-04 20:58:51 +03:00
phpunit.xml.dist chore(platform): adopt supported Symfony 7.4 LTS stack 2026-10-02 02:03:56 +01:00
postcss.config.js Migrated to bootstrap 2025-10-08 21:22:42 +03:00
README.md Restore reproducible editor build and document native FastPanel deployment 2026-10-05 09:28:23 +00:00
symfony.lock chore(ops): harden sessions workers and recoverable deployment 2026-10-02 09:52:07 +01:00
webpack.config.js refactor(ui): replace AdminKit with owned Bootstrap components 2026-10-04 20:58:51 +03:00

BagiraZooVet

The operator-authorized native FastPanel deployment on bagirazoovet.dp.ua is documented in 2026-10-05 deployment evidence. Historical phase handoff blockers below are implementation-time evidence; the deployment report states exactly what was exercised and what remains unqualified.

For the migrated Windows/Docker development environment, see DOCKER.md.

Symfony/Doctrine/Twig veterinary CRM with an AdminKit staff interface, owner portal and public Ukrainian CMS. Phases 00–24 have local implementation/evidence; production release is blocked pending the explicit gates below. No deployment or canonical database migration was performed.

Start with release handoff, 58 finding dispositions, phase evidence, architecture and role boundaries, and operations/recovery. Earlier setup/evidence is retained as history.

Supported local baseline

Executed: PHP 8.3.6, Composer 2.9.2, Node 22.22.3/npm 10.9.8 and local MySQL 8.0.46. Locked: Symfony framework-bundle 7.4.20, Doctrine ORM 3.5.2/DBAL 3.10.6, Twig 3.30.0. PHP requirement is >=8.2; Node >=22 <23, npm >=10 <11. Use the locks, not a framework-wide version guess. Required PHP extensions are declared in composer.json; composer check-platform-reqs is authoritative for the full installed graph.

Clean setup

Use an isolated fresh checkout and operator-approved empty/disposable local database. Preserve existing .env*, database and files. .env.example contains placeholders only; a clean checkout requires .env before application boot. Supply existing approved connection/configuration privately in .env.local or process settings. Never put real values in source or command-line URLs.

test -e .env || cp .env.example .env
composer install --no-interaction --no-scripts --prefer-dist
composer check-platform-reqs
npm ci --no-audit --no-fund
npm run build

Only after verifying the actual authorized database and correct environment, run the reviewed migrations in that isolated destination and then composer run-script auto-scripts. Do not run doctrine:database:create, doctrine:schema:update --force or migrations against a pre-existing/canonical database as a setup shortcut. Main migrations and clinical/file backfill require their own approval and coherent recovery point. The tested migration chain supports an empty local schema; the upgrade rehearsal preserved synthetic phase-14 CMS rows.

Local release checks

The existing approved fixture database is bagira_phase01_test. The guarded runner derives its local connection privately from existing env, checks configuration/host/SELECT DATABASE(), forces APP_ENV=test, null mailer and indexing off. Tests replace disposable fixtures; they are never a production probe. Do not repoint this runner to another database to bypass its guard.

php tests/Release/run.php
php tests/Release/run.php --console lint:yaml config
php tests/Release/run.php --console lint:twig templates
php tests/Release/run.php --console lint:container
php tests/Release/run.php --console debug:router
php tests/Release/run.php --console doctrine:schema:validate
php tests/Release/run.php --console doctrine:migrations:status

The final full run passed 326 tests / 4591 assertions but exited 1 under the existing deprecation policy. Dependency/build scans also retain blockers; do not suppress checks to obtain green output. Real Chrome fixture verification is separate from HTTP/PHPUnit tests; see handoff for exact coverage, reproducibility and missing live/device/PDF evidence.

Deployment, workers and rollback

Use operations.env.example as a private process-setting inventory, not replacement local env. Operations documents approved release preparation, coherent SQL/private-file/queue snapshots, worker supervision, recovery and compatible rollback. SEO/indexing operations cover canonical origin, additive slug/outbox migration and opt-in indexing. Templates are uninstalled. Keep mail/indexing disabled until provider/key/origin and delivery are approved.

Production requires G1–G7 in handoff: migration/storage approval, build-chain advisories/deprecations, valid PDF rendering, infrastructure/recovery/mail evidence, business/indexing confirmation, real-device/live browser tests and CI status. Roll back compatible code with additive schema/evidence retained; never blindly run down migrations or restore stale tokens/queue jobs.