Proyecto Laravel 10 + Jetstream + Livewire + Spatie Permission para gestión de un blog con panel administrativo y sistema de comentarios.
- Registro e inicio de sesión con Jetstream/Fortify (Livewire).
- Redirección post-login:
- Admin / Editor →
admin.dashboard - User →
profile.show
- Admin / Editor →
- Gestión de perfil:
- Foto de usuario (
profile_photo_path). - Cambio de contraseña.
- Datos básicos.
- Foto de usuario (
- admin → Acceso total a todas las secciones.
- editor → Puede crear/editar/publicar posts, crear/editar categorías y tags (NO borrar).
- user → Puede crear/eliminar sus comentarios.
- Rutas y vistas protegidas con
role:ypermission:.
- Home con listado de posts.
- Vista de post por
slugcon:- Conteo automático de vistas.
- Relacionados por categoría.
- Listado de comentarios.
- Filtrado por:
- Categoría (
/categoria/{slug}) - Tag (
/etiqueta/{slug}) - Búsqueda (
/buscar)
- Categoría (
- Autenticación obligatoria para comentar.
- Los usuarios pueden eliminar solo sus comentarios (o admin).
- Soporte para AJAX (publicar sin recargar).
- Esquema de tabla:
id,post_id,user_id,author_name,body, timestamps.
- Dashboard para admin y editor.
- Posts:
- CRUD completo para admin y editor (delete solo admin).
- Estado Publicado/Borrador.
- Categorías y Tags:
- CRUD completo para admin/editor (delete solo admin).
- Usuarios:
- Solo admin.
- Activar/desactivar.
- Reset de contraseña.
- Media:
- Subida de imágenes desde editor.
- Gestión desde panel.
- Secciones:
- Configuración de bloques destacados.
-
Clonar repositorio
git clone https://github.com/tu-repo/blog-laravel.git cd blog-laravel -
Instalar dependencias
composer install npm install npm run build
-
Configurar .env
cp .env.example .env php artisan key:generate
-
Migrar y seedear base de datos php artisan migrate --seed
-
Crear enlace de storage php artisan storage:link
👥 Roles y Permisos iniciales
El seeder crea 3 usuarios:
| Rol | Password | |
|---|---|---|
| admin | admin@example.com | password |
| editor | editor@example.com | password |
| user | user@example.com | password |
📂 Rutas principales
Público / → Home
/post/{slug} → Ver post
/categoria/{slug} → Filtrar por categoría
/etiqueta/{slug} → Filtrar por tag
/buscar → Buscador
Comentarios
POST /posts/{post}/comentarios → Crear comentario
DELETE /comentarios/{id} → Eliminar comentario
Admin (/admin) GET /admin → Dashboard
resource posts → CRUD Posts
resource categories → CRUD Categorías
resource tags → CRUD Tags
resource users → CRUD Usuarios
resource sections → CRUD Secciones
media → Subida/gestión de archivos
🛠 Comandos útiles php artisan optimize:clear
Asignar roles manualmente php artisan tinker $user = App\Models\User::find(1); $user->assignRole('admin');
✅ Pendientes / Próximos pasos Paginación de comentarios.
Moderación (aprobado/pendiente).
Media manager con modal.
Tests de permisos y flujo de comentarios.
Secciones configurables en Home.
📜 Licencia Proyecto privado. Todos los derechos reservados.