Demo app (showcase)
apps/demo es la app end-to-end que demuestra cada paquete de Arqel integrado en un único proyecto: un blog admin con Posts, Tags y Categories, incluyendo generación de resúmenes con AI, transiciones de workflow (draft → review → published → archived), historial de versiones y un audit log.
Por qué existe
- Showcase público — ejecutable en ~2 minutos, base para screenshots y tutoriales.
- Smoke test cross-package — ejercita
arqel-dev/core+fields+workflowversioning+ai+auditen CI en cada PR.
- Boilerplate — fork-friendly para quien quiera empezar con Arqel hoy.
Setup rápido
La demo está versionada bajo apps/demo/. Configúrala con el script composer setup incluido y carga los datos de ejemplo del blog:
git clone https://github.com/arqel-dev/arqel.git
cd arqel
pnpm install
# Instala deps, copia .env, genera key, corre migrate y compila assets.
composer -d apps/demo setup
# Carga el blog de ejemplo (3 usuarios, 5 categorías, 20 tags, 50 posts).
php -d apps/demo artisan migrate --seed --seeder=Database\\Seeders\\DemoSeeder
php -d apps/demo artisan serveAbre http://127.0.0.1:8000/admin.
UI shadcn (new-york) sobre Radix UI
La migración masiva del framework a shadcn CLI v4 (registry new-york) sobre Radix UI (radix-ui) afecta a la demo en dos formas visibles:
- Flujo de login split-screen de shadcn: la página
/loginusa el bloquelogin-04(split-screen con panel de marketing a la izquierda + form a la derecha) — reemplazando la tarjeta centrada anterior. - Sidebar bloque
sidebar-07de shadcn: el layout admin usa el bloquesidebar-07(sidebar con icon collapsible + header + nav primaria + footer con menú de usuario) integrada con los tokens canónicos (--background,--foreground,--primary,--border,--muted,--ring,--radius, etc.).
E2E con Playwright
La demo lleva una suite de Playwright que cubre el flujo crítico de auth y el CRUD básico del blog. El entry point del smoke set está en:
apps/demo/tests/e2e/01-login.spec.ts— login → dashboard → logout.
Ejecutar localmente:
pnpm --filter demo exec playwright testEn CI, estos tests corren después de arqel:install en un runner limpio, garantizando que la secuencia de una sola línea funciona end-to-end.
Features demostradas
- Resources declarativos con 7+ tipos de Field (
text,slug,aiText,richText,stateTransition,dateTime,belongsTo). - Workflow con state machine pure-PHP en
app/States/PostStates.php. - Fields AI offline-friendly (stubs deterministas cuando no hay key configurada).
- 3 usuarios, 5 categorías, 20 tags, 50 posts generados por
DemoSeeder.
Repositorio
- Código:
apps/demo/ - README:
apps/demo/README.md