App de Notas (CRUD) con Laravel (API JSON) y React. Todo el stack se levanta con un comando: docker compose up.
- Docker (Se ha hecho uso de Docker Desktop)
# crear BD sqlite + permisos, clave app (laravel) y migraciones
docker compose run --rm php sh -lc "mkdir -p database && touch database/database.sqlite && chmod -R 777 storage bootstrap/cache database"
docker compose run --rm php php artisan key:generate
docker compose run --rm php php artisan migratedocker compose up- Frontend (React): http://localhost:8080
- API (Laravel): prefijo
/api→ p.ej.http://localhost:8080/api/health
GET /api/health→{ "data": { "db": "ok" }, "message": null, "errors": null }GET /api/notes?q=→ lista (10/página), filtro por title (contains), orden created_at descPOST /api/notes→{ title: string, content?: string }GET /api/notes/{id}PUT /api/notes/{id}DELETE /api/notes/{id}
Formato éxito: { "data": ..., "message": null, "errors": null }
Validación (422): { "errors": { "field": ["..."] } }
/(listado)/new(formulario crear)/edit/:id(formulario editar)
- Backend (PHPUnit):
docker compose run --rm php php artisan test- Frontend (Vitest):
docker compose exec node npm run test:runbackend/ (Laravel 11 API + SQLite)
frontend/ (React + Vite)
php/ (Dockerfile PHP-FPM)
nginx/ (default.conf)
docker-compose.yml
Nota: La app no usa auth (login/register).