Porfolio personal - Juan Carlos Macías
juancarlosmacias.es
- 🚀 Server-Side Rendering (SSR): Renderizado inicial en PHP para mejor SEO y rendimiento
- ⚡ Progressive Enhancement: React se hidrata sobre HTML pre-renderizado
- 🎯 Optimización SEO: Meta tags dinámicos completos desde el servidor
- 📱 Experiencia SPA: Navegación fluida sin recargas después del primer load
- 🏗️ Arquitectura front_php/: Sistema de templates PHP + build de React integrado
- 📄 Layout.php: Template base con meta tags dinámicos y structured data
- 🔧 Componentización: Sistema modular de componentes reutilizables
- 🌐 Detección de rutas: Parsing de URL para inyectar meta tags específicos
- 📊 Datos estructurados: JSON-LD automático para artículos y páginas
- 💡 Contenido contextual: Usa contenido existente como base para generar artículos más coherentes
- 🎨 Modal avanzado: Interfaz intuitiva con opciones completas de configuración
- 🎯 Control de tono: 5 estilos disponibles (profesional, casual, académico, amigable, técnico)
- 📊 Control de palabras: Selección precisa del número de palabras a generar
- 🔄 Auto-generación: Genera automáticamente extracto y meta description tras crear el artículo
- 🔧 Test de conexión: Herramienta de depuración integrada para verificar API
- 🛠️ Depuración mejorada: Logs detallados y manejo de errores más robusto
- 📊 Contador de visualizaciones: Registra automáticamente las vistas de cada artículo
- 📈 Estadísticas en tiempo real: Panel de administración muestra estadísticas de visualizaciones
- 🔄 Inicialización de vistas: Botón para inicializar vistas en artículos existentes
- 🌐 Detección de entorno: Funciona correctamente en local y producción
- 🏷️ Meta tags completos: Metadatos de autor, fechas de publicación y modificación
- 📋 Structured data: JSON-LD para mejor indexación en Google
- 🔗 Open Graph mejorado: Metadatos específicos para artículos en redes sociales
- 📝 Twitter Cards: Optimización para compartir en Twitter
- ⚖️ Licencias: Metadatos de copyright y licencias Creative Commons
- 🎯 Selector visual: Interfaz mejorada para seleccionar imágenes destacadas
- 👁️ Vista previa: Previsualización automática de la imagen seleccionada
- 🔧 Validación URL: Verificación automática de URLs de imágenes
- 📐 Recomendaciones: Guías de tamaño óptimo para redes sociales
- 🤖 Generación automática: Crea sitemaps XML automáticamente desde el panel admin
- 🔍 Detección React SPA: Descubre rutas de aplicaciones React automáticamente
- 🌐 Multi-entorno: Funciona en local y producción con detección automática
- ⚡ Tiempo real: Actualización instantánea del sitemap
- 🏷️ Tags de artículos: Corregido problema de formato CSV vs JSON en tags
- 🔗 URLs consistentes: Mejorada detección de entorno local vs producción
- 🛡️ Validaciones: Mejoras en validación de datos y manejo de errores
- 📝 Gestión completa de artículos: Crea, edita y publica artículos desde un panel de administración intuitivo
- 🤖 Generación automática con IA: Integración con múltiples proveedores de IA (Groq, Hugging Face, OpenAI) para generar contenido automáticamente
- 🔍 Búsqueda inteligente: Busca artículos en tiempo real por título, contenido o etiquetas
- 📱 Vista adaptativa: Cambia entre vista de cuadrícula y lista para una mejor experiencia de lectura
- 🏷️ Sistema de etiquetas: Organiza y filtra artículos por categorías y temas
- 📁 Explorador de imágenes: Navega y selecciona imágenes fácilmente desde el panel de administración
- ⬆️ Subida de archivos: Sube nuevas imágenes directamente desde la interfaz
- 🖱️ Selección modal: Interfaz elegante para seleccionar imágenes para proyectos y artículos
- 📏 Optimización automática: Las imágenes se optimizan automáticamente para web
- 🔐 Sistema de autenticación: Acceso seguro con gestión de sesiones
- 📊 Dashboard informativo: Vista general de proyectos, artículos y estadísticas
- ⚡ Interfaz responsive: Funciona perfectamente en desktop, tablet y móvil
- 🎨 Diseño moderno: Interfaz limpia y profesional con navegación intuitiva
- 📄 Paginación inteligente: Navega por proyectos y artículos con controles de paginación
- 🔍 Filtros avanzados: Filtra proyectos por tipo (web, app) con contadores dinámicos
- ⚡ Rendimiento optimizado: Consultas optimizadas para cargas rápidas
- 🌐 CORS configurado: Acceso seguro desde diferentes dominios
- 📰 Artículos recientes: Muestra automáticamente los últimos artículos publicados
- 🔗 Navegación mejorada: Nueva sección de artículos en el menú principal
- 📱 Diseño responsive: Adaptación perfecta a todos los dispositivos
- ⚡ Carga optimizada: Mejores tiempos de carga y fluidez general
Puedes modificar el código de la forma y manera que te apetezca, eres libre de copiar y modificar a tu gusto, y si quieres puedes nombrarme juancmacias.
Mi portafolio personal juancarlosmacias.es presenta algunos de mis proyectos en Github, así como mi currículum y habilidades técnicas.
Este proyecto utiliza tecnologías modernas para ofrecer una experiencia completa tanto en frontend como en backend.
- React.js - Framework principal para la interfaz de usuario
- Bootstrap - Framework CSS para diseño responsive
- React Router - Navegación entre páginas
- CSS3 - Estilos personalizados y animaciones
- JavaScript ES6+ - Funcionalidades modernas
- SSR con PHP - Renderizado híbrido servidor/cliente para SEO óptimo
- PHP 8+ - Lenguaje del servidor con programación orientada a objetos
- MySQL/MySQLi - Base de datos con compatibilidad automática
- API REST - Endpoints para proyectos, artículos e imágenes
- JSON - Formato de intercambio de datos
- Groq API - Generación rápida de contenido
- Hugging Face - Modelos de lenguaje natural
- OpenAI - Generación de texto avanzada
- Git - Control de versiones con etiquetado semántico
- VS Code - Editor principal con extensiones optimizadas
- Composer - Gestor de dependencias PHP (futuro)
- npm - Gestor de paquetes Node.js
Clona este repositorio. Necesitaras node.js, git y un servidor PHP instalados globalmente en tu máquina.
-
Instala las dependencias:
npm install -
Configura las URLs:
- Revisa
frontend/src/Services/urls.js - Ajusta las URLs según tu entorno (local/producción)
- Revisa
-
Inicia el desarrollo:
npm start
Ejecuta la aplicación en modo de desarrollo. Abre http://localhost:3000 para verlo en el navegador. La página se recargará si realizas modificaciones.
-
Build del frontend:
cd frontend npm install npm run build -
Copia el build a front_php/:
cp -r build/* ../front_php/build/ -
Configura PHP:
- El archivo
front_php/index.phpservirá como punto de entrada - Los templates en
front_php/templates/manejan el SSR - React se hidrata automáticamente sobre el HTML generado
- El archivo
-
Accede a:
http://tudominio.com/(el SSR funcionará automáticamente)
-
Servidor PHP: Asegúrate de tener PHP 8+ con extensiones MySQLi/PDO
-
Base de datos:
- Importa
admin/sql/init-database.sqlen tu MySQL - Configura la conexión en
admin/config/config.local.php
- Importa
-
Configuración local:
cp admin/config/config.local.example.php admin/config/config.local.php
Luego edita
config.local.phpcon tus datos reales. -
Panel de administración:
- Accede a
http://tudominio.com/admin - Usa las credenciales configuradas en la base de datos
- Accede a
Para usar las funcionalidades de generación automática de contenido:
-
Obtén API keys de los proveedores que quieras usar:
- Groq (recomendado - más rápido)
- Hugging Face
- OpenAI
-
Configura las keys en
admin/config/config.local.php:'api_keys' => [ 'groq' => 'tu-api-key-aqui', 'huggingface' => 'tu-api-key-aqui', 'openai' => 'tu-api-key-aqui' ]
📦 Portfolio/
├── 🎨 frontend/ # Aplicación React (desarrollo)
│ ├── src/components/ # Componentes reutilizables
│ ├── src/Services/ # Configuración de APIs y URLs
│ └── public/Assets/ # Imágenes y recursos estáticos
├── 🚀 front_php/ # Sistema híbrido SSR + SPA (producción)
│ ├── index.php # Punto de entrada con detección de rutas
│ ├── templates/ # Templates PHP para SSR
│ │ ├── Layout.php # Layout base con meta tags dinámicos
│ │ └── components/ # Componentes reutilizables PHP
│ └── build/ # Build de React integrado
├── 🔧 admin/ # Panel de administración
│ ├── pages/ # Páginas del admin (login, dashboard, etc.)
│ ├── api/ # APIs para imágenes y funciones IA
│ ├── classes/ # Clases PHP (AIContentGenerator, ArticleManager, etc.)
│ │ └── RAG/ # Sistema RAG para chat conversacional
│ └── config/ # Configuración de la aplicación
├── 🌐 api/portfolio/ # API REST principal
│ ├── projects.php # Endpoint de proyectos
│ ├── articles.php # Endpoint de artículos
│ ├── chat-rag.php # Endpoint del chat conversacional
│ └── config.php # Configuración de la API
└── 📚 doc/ # Documentación técnica
-
Contenido personal:
- Edita
frontend/src/components/para cambiar textos e información - Actualiza
frontend/public/Assets/con tus imágenes
- Edita
-
Proyectos:
- Usa el panel admin para agregar/editar proyectos
- O edita directamente
api/portfolio/datos_proyectos.json
-
Artículos:
- Accede al panel admin → Sección "Artículos"
- Crea nuevo contenido manualmente o con ayuda de IA
-
Estilos:
- Modifica
frontend/src/style.csspara cambios visuales - Ajusta
admin/assets/css/para el panel de administración
- Modifica
- 🏠 Dashboard: Vista general con estadísticas
- 📁 Proyectos: Gestión completa de tu portfolio
- 📝 Artículos: Sistema de blog con editor y IA
- 🖼️ Galería: Explorador y gestor de imágenes
- ⚙️ Configuración: Ajustes del sistema y APIs
Si te gusto dale una estrella y puedes invitarme a un café.
- Todo el código fue probado y funciona correctamente
- Todos los tests pasan
- El proyecto está en un estado estable o importante (lanzamiento, demo, entrega, etc.)
- ¿Rompiste compatibilidad con versiones anteriores? → Incrementa
MAJOR - ¿Añadiste nuevas funcionalidades compatibles? → Incrementa
MINOR - ¿Solo corregiste errores o hiciste mejoras menores? → Incrementa
PATCH
🧠 Ejemplo:
Si la versión actual esv1.2.3y corriges un bug, la nueva seríav1.2.4.
git tag -a v1.0.0 -m "Release: versión inicial"
git push origin v1.0.0
# para obtener la última versión
git describe
