Aplicación fullstack de gestión de tareas construida con Laravel 13 (API REST) y Vue 3 (SPA).
- Backend: Laravel 13, PHP 8.4, SQLite
- Frontend: Vue 3, Pinia, Vue Router, Vite
- Auth: Laravel Sanctum (Bearer token)
- Tests: Pest (13 tests, 100% passing)
- Entorno: Docker
- Docker
- Docker Compose
git clone <repo>
cd task-manager
cp .env.example .env
touch database/database.sqlite
docker compose up -d
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate --seedAccede a:
- API: http://localhost
- Frontend: http://localhost:5174
| Método | Endpoint | Descripción | Auth |
|---|---|---|---|
| POST | /api/v1/register | Registro | No |
| POST | /api/v1/login | Login | No |
| POST | /api/v1/logout | Logout | Sí |
| GET | /api/v1/me | Usuario actual | Sí |
| GET | /api/v1/tasks | Listar tareas | Sí |
| POST | /api/v1/tasks | Crear tarea | Sí |
| GET | /api/v1/tasks/{id} | Ver tarea | Sí |
| PUT | /api/v1/tasks/{id} | Editar tarea | Sí |
| DELETE | /api/v1/tasks/{id} | Eliminar tarea | Sí |
docker compose exec app ./vendor/bin/pestSanctum con Bearer token en lugar de JWT porque es la solución oficial de Laravel, más simple de configurar y suficiente para una SPA con backend propio.
SQLite para desarrollo por su simplicidad — en producción se cambiaría a MySQL o PostgreSQL modificando únicamente las variables de entorno.
Pinia en lugar de Vuex porque es el gestor de estado oficial desde Vue 3, con una API más simple basada en Composition API.
Policies para autorización en lugar de middleware porque permiten granularidad
por acción y por recurso, y se integran limpiamente con $this->authorize().