Skip to content

BetancourtDev/blog_Laravel10

Repository files navigation

📰 Sistema de Blog con Roles, Permisos y Comentarios

Proyecto Laravel 10 + Jetstream + Livewire + Spatie Permission para gestión de un blog con panel administrativo y sistema de comentarios.


🚀 Características principales

Autenticación & Perfil

  • Registro e inicio de sesión con Jetstream/Fortify (Livewire).
  • Redirección post-login:
    • Admin / Editoradmin.dashboard
    • Userprofile.show
  • Gestión de perfil:
    • Foto de usuario (profile_photo_path).
    • Cambio de contraseña.
    • Datos básicos.

Roles & Permisos (Spatie)

  • 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: y permission:.

Blog Público

  • Home con listado de posts.
  • Vista de post por slug con:
    • Conteo automático de vistas.
    • Relacionados por categoría.
    • Listado de comentarios.
  • Filtrado por:
    • Categoría (/categoria/{slug})
    • Tag (/etiqueta/{slug})
    • Búsqueda (/buscar)

Comentarios

  • 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.

Panel Admin

  • 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.

📦 Instalación

  1. Clonar repositorio

    git clone https://github.com/tu-repo/blog-laravel.git
    cd blog-laravel
  2. Instalar dependencias

composer install npm install npm run build

  1. Configurar .env

    cp .env.example .env php artisan key:generate

  2. Migrar y seedear base de datos php artisan migrate --seed

  3. Crear enlace de storage php artisan storage:link

👥 Roles y Permisos iniciales

El seeder crea 3 usuarios:

Rol Email 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.


About

blog con panel de administración

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors