Aplicación web que combina un portafolio profesional con un sistema de blog completamente administrable, construido con Laravel 12.
- User: Datos personales (nombre, foto, biografía, puesto)
- Education: Estudios y certificaciones
- WorkExperience: Experiencia laboral
- Skill: Habilidades técnicas y profesionales
- SocialNetwork: Redes sociales y contactos
- Post: Artículos del blog con contenido y estado de publicación
- PostCategory: Categorías para organización temática
- PostTag: Etiquetas para clasificación detallada
- PostComment: Sistema de comentarios
-
Portafolio Profesional:
- Perfil personal con información biográfica
- Educación y certificaciones
- Experiencia laboral
- Habilidades técnicas
- Redes sociales
-
Blog:
- Artículos organizados por categorías
- Sistema de etiquetas
- Comentarios
- Búsqueda de contenido
-
Portafolio Profesional
- Perfil personal con imagen y biografía
- Timeline de educación y certificaciones
- Cards de experiencia laboral
- Barras de progreso para habilidades
- Enlaces a redes sociales con iconos
- Diseño responsive con Bootstrap 5
- Interfaz construida con Livewire y Blade
-
Blog Administrable
- CRUD completo para artículos
- Categorías y etiquetas
- Sistema de comentarios
- Editor WYSIWYG (CKEditor)
- Gestión de imágenes
- Estilos con Bootstrap 5
-
Panel de Administración
- Autenticación segura
- Gestión de usuarios y roles
- Estadísticas básicas
- Configuración del sitio
- Gestión de secciones del portafolio (perfil, educación, experiencia, etc.)
- Interfaz construida con Livewire y Blade
- PHP 8.2 o superior
- Laravel 12
- Composer 2.5+
- Base de datos MySQL 8.0+ o MariaDB 10.3+
- Node.js 18+ (para assets frontend)
- npm 9+ o yarn 1.22+
- Bootstrap 5.3.7
- FontAwesome 6.7.2 (para iconos)
- Clonar el repositorio:
git clone https://github.com/MarioSandovalP3/laravel-12-portafolio-blog.git
cd laravel-12-portafolio-blog
- Instalar dependencias:
composer install
npm install
- Compilar y optimizar los archivos frontend (JavaScript, CSS, etc.) usando Vite:
npm run build
- Para que las imágenes y archivos subidos sean accesibles públicamente, ejecuta:
php artisan storage:link
Esto creará un enlace simbólico desde public/storage
a storage/app/public
.
- Configurar entorno:
cp .env.example .env
php artisan key:generate
- Configurar base de datos en
.env
:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nombre_bd
DB_USERNAME=usuario
DB_PASSWORD=contraseña
- Migrar y poblar base de datos:
php artisan migrate --seed
- Iniciar servidor de desarrollo:
php artisan serve
Para acceder al panel de administración, utiliza las siguientes credenciales:
- URL:
http://127.0.0.1:8000/login
- Usuario:
[email protected]
- Contraseña:
admin123
- Optimizar el autoloader:
composer install --optimize-autoloader --no-dev
- Cachear configuraciones y rutas:
php artisan config:cache
php artisan route:cache
php artisan view:cache
El proyecto incluye un archivo docker-compose.yml
preconfigurado con:
-
Servicio MySQL:
- Imagen: mysql:8.0
- Puerto: 3306
- Credenciales:
- Usuario root: root
- Base de datos: laravel_db
- Usuario app: laravel_user
- Contraseña: secret
- Volumen persistente para datos
-
Servicio phpMyAdmin (opcional):
- Accesible en: http://localhost:8080
- Configurado para conectarse automáticamente al servicio MySQL
- Copiar el archivo
.env.example
a.env
y configurar:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=secret
- Ejecutar los servicios:
docker-compose up -d
- Para detener los servicios:
docker-compose down
Nota: Los datos de MySQL persisten gracias al volumen configurado.
El portafolio utiliza los siguientes modelos principales:
- User: Datos personales (nombre, foto, biografía, puesto)
- Education: Estudios y certificaciones
- WorkExperience: Experiencia laboral
- Skill: Habilidades técnicas y profesionales
- SocialNetwork: Redes sociales y contactos
- Post: Artículos del blog con contenido y estado de publicación
- PostCategory: Categorías para organización temática
- PostTag: Etiquetas para clasificación detallada
- PostComment: Sistema de comentarios
Para configurar el correo (contacto y notificaciones), editar en .env
:
MAIL_MAILER=smtp
MAIL_HOST=mailhog
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
El proyecto incluye configuración Docker con los siguientes servicios:
- MySQL 8.0: Base de datos para la aplicación
- phpMyAdmin: Interfaz web para administrar la base de datos
- Construir los contenedores:
docker-compose build
- Iniciar los servicios:
docker-compose up -d
- Host: mysql (nombre del servicio en Docker)
- Puerto: 3306
- Usuario: laravel_user
- Contraseña: secret
- Base de datos: laravel_db
- Abrir en el navegador: http://localhost:8080
- Credenciales:
- Usuario: root
- Contraseña: root
Configurar en .env
:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user
DB_PASSWORD=secret
Este proyecto sigue un modelo Open Core:
- Versión Gratuita: Código completo disponible en GitHub (MIT License)
- Servicios Premium:
- Configuración, personalización, migraciones.
- Personalizaciones y desarrollo de módulos adicionales
- Soporte técnico prioritario
- Optimizaciones SEO
- Plantillas exclusivas
Estructura de monetización:
GitHub (gratis) → Genera interés → Conversión a clientes de servicios pagos
Este proyecto está licenciado bajo la Licencia MIT.
Si este proyecto te fue útil, puedes apoyarme con una donación: