{"id":28881987,"url":"https://github.com/ronihdzz/roni-website","last_synced_at":"2026-05-04T21:33:37.871Z","repository":{"id":256128877,"uuid":"854316314","full_name":"ronihdzz/roni-website","owner":"ronihdzz","description":"Personal website built with FastHTML, boasting a modern responsive design and sections for experiences, skills, projects, and contact with advanced CSS animations.","archived":false,"fork":false,"pushed_at":"2025-06-13T07:25:20.000Z","size":862,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T07:42:43.131Z","etag":null,"topics":["css3","fasthtml","html5","javascript","python"],"latest_commit_sha":null,"homepage":"https://ronihdz.com/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ronihdzz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-09T00:02:19.000Z","updated_at":"2025-06-13T07:25:25.000Z","dependencies_parsed_at":"2024-09-15T08:40:34.352Z","dependency_job_id":"48fc27e7-986c-405f-acea-c5e8c48cba77","html_url":"https://github.com/ronihdzz/roni-website","commit_stats":null,"previous_names":["ronihdzz/website","ronihdzz/roni-website"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ronihdzz/roni-website","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronihdzz%2Froni-website","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronihdzz%2Froni-website/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronihdzz%2Froni-website/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronihdzz%2Froni-website/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ronihdzz","download_url":"https://codeload.github.com/ronihdzz/roni-website/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ronihdzz%2Froni-website/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261014123,"owners_count":23097179,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css3","fasthtml","html5","javascript","python"],"created_at":"2025-06-20T20:41:45.019Z","updated_at":"2026-05-04T21:33:37.854Z","avatar_url":"https://github.com/ronihdzz.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Portafolio Personal - Roni Hernández\n\n\u003c!-- Language Menu --\u003e\n\u003cdiv align=\"center\"\u003e\n\n**Choose your language / Elige tu idioma:**\n\n[![English](https://img.shields.io/badge/English-📖-blue?style=for-the-badge\u0026logo=googletranslate\u0026logoColor=white)](README_EN.md)\n[![Español](https://img.shields.io/badge/Español-📖-red?style=for-the-badge\u0026logo=googletranslate\u0026logoColor=white)](README.md)\n\n\u003c/div\u003e\n\n---\n\nUn portafolio web personal moderno y responsivo desarrollado con **FastHTML** y **Python**, que presenta información profesional, experiencias, proyectos y habilidades de manera dinámica e interactiva.\n\n## 🎯 ¿Qué hace este proyecto?\n\nEste proyecto es un **sitio web de portafolio personal** que sirve como una plataforma profesional para mostrar:\n\n- **Información personal y profesional** con contenido dinámico multiidioma (Español/Inglés)\n- **Secciones interactivas** que incluyen \"Acerca de mí\", \"Momentos destacados\", \"Habilidades\", \"Proyectos\" y \"Contacto\"\n- **Descarga de CV** en ambos idiomas con visor PDF integrado\n- **Formulario de contacto** funcional para comunicación directa\n- **Diseño responsivo** que se adapta a diferentes dispositivos\n- **Animaciones y efectos visuales** para una experiencia de usuario moderna\n\n## 🚀 Tecnologías Utilizadas\n\n### Backend\n- **[FastHTML](https://github.com/answerdotai/fasthtml)** - Framework web moderno de Python para desarrollo rápido\n- **[Uvicorn](https://www.uvicorn.org/)** - Servidor ASGI de alto rendimiento\n\n### Frontend\n- **HTML5** con componentes dinámicos generados por FastHTML\n- **CSS3** con diseño responsivo y animaciones\n- **JavaScript (ES6)** para interactividad del cliente\n- **Font Awesome** para iconografía\n- **Google Fonts** (Inter \u0026 JetBrains Mono) para tipografía\n\n### Contenido y Datos\n- **JSON** para almacenamiento de contenido dinámico\n- **Multiidioma** (Español/Inglés) con cambio dinámico\n- **PDFs** para CVs descargables\n\n### DevOps y Despliegue\n- **Docker** y **Docker Compose** para containerización\n- **GitHub Actions** para CI/CD automatizado\n- **Digital Ocean** como plataforma de hosting\n- **Multi-environment deployment** (development, staging, production)\n\n## 📁 Estructura del Proyecto\n\n```\n├── .github/\n│   └── workflows/\n│       └── cli.yml                 # Pipeline CI/CD con GitHub Actions\n├── src/\n│   ├── main.py                     # Aplicación principal FastHTML\n│   ├── static/\n│   │   ├── data.json              # Contenido dinámico (Español)\n│   │   ├── data_en.json           # Contenido dinámico (Inglés)\n│   │   ├── styles.css             # Estilos CSS principales\n│   │   ├── script.js              # JavaScript para interactividad\n│   │   ├── cv.pdf                 # CV en Español\n│   │   ├── cv_en.pdf              # CV en Inglés\n│   │   ├── roni.jpg               # Foto de perfil\n│   │   ├── ronihdz_en_proyectos.jpeg\n│   │   └── *.png                  # Iconos y logos\n│   └── __pycache__/               # Cache de Python\n├── env/                           # Entorno virtual de Python\n├── Dockerfile.deploy              # Configuración Docker para producción\n├── docker-compose.yml             # Orquestación de contenedores\n├── requirements.txt               # Dependencias de Python\n├── .gitignore                     # Archivos ignorados por Git\n├── LICENSE                        # Licencia del proyecto\n├── README.md                      # Documentación del proyecto (Español)\n└── README_EN.md                   # Documentación del proyecto (Inglés)\n```\n\n### Componentes Clave\n\n#### `src/main.py`\nAplicación principal que incluye:\n- Configuración de rutas y vistas\n- Manejo de idiomas dinámico\n- Componentes reutilizables (sidebar, secciones, formularios)\n- Inyección de metadatos SEO\n- Servicio de archivos estáticos\n\n#### `src/static/data.json` y `src/static/data_en.json`\nArchivos de contenido estructurado que contienen:\n- Información personal y profesional\n- Experiencias y momentos destacados\n- Habilidades organizadas por categorías\n- Proyectos con enlaces y descripciones\n- Información de contacto\n- Metadatos SEO\n\n#### `src/static/styles.css`\nEstilos CSS que proporcionan:\n- Diseño responsivo con CSS Grid y Flexbox\n- Tema oscuro moderno\n- Animaciones y transiciones suaves\n- Componentes interactivos (dropdowns, modales)\n- Optimización para diferentes dispositivos\n\n#### `src/static/script.js`\nJavaScript que maneja:\n- Funcionalidad \"Ver más/Ver menos\"\n- Dropdowns de idioma y CV\n- Sidebar colapsable\n- Validación de formularios\n- Smooth scrolling entre secciones\n\n## 🌐 Despliegue Automático\n\nEl proyecto implementa un sistema de **CI/CD robusto** con diferentes entornos:\n\n- **Branch `development`** → Deploy automático a [dev.ronihdz.com](https://dev.ronihdz.com)\n- **Branch `main`** → Deploy automático a [ronihdz.com](https://ronihdz.com)\n\n### Pipeline de Despliegue\n1. **Build y Push** - Construcción de imagen Docker y push a Digital Ocean Container Registry\n2. **Deploy** - Despliegue automático al servidor correspondiente vía SSH\n3. **Multi-environment** - Mapeo automático de branches a entornos\n\n## 🛠️ Cómo Ejecutar Localmente\n\n### Prerequisitos\n- Python 3.11+\n- pip (gestor de paquetes de Python)\n\n### Pasos de Instalación\n\n1. **Clonar el repositorio:**\n   ```bash\n   git clone https://github.com/ronihdzz/website.git\n   cd website\n   ```\n\n2. **Crear y activar entorno virtual:**\n   ```bash\n   python -m venv env\n   source env/bin/activate  # En Windows: env\\Scripts\\activate\n   ```\n\n3. **Instalar dependencias:**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n4. **Ejecutar la aplicación:**\n   ```bash\n   cd src\n   uvicorn main:app --reload --port 9999\n   ```\n\n5. **Abrir en el navegador:**\n   ```\n   http://127.0.0.1:9999\n   ```\n\n### Usando Docker\n\n```bash\n# Construir y ejecutar con Docker Compose\ndocker-compose up --build\n\n# Acceder en: http://localhost:9000\n```\n\n## 🔧 Personalización\n\nPara adaptar este portafolio a tus necesidades:\n\n1. **Modificar contenido:** Edita `src/static/data.json` y `src/static/data_en.json`\n2. **Cambiar estilos:** Personaliza `src/static/styles.css`\n3. **Añadir funcionalidad:** Extiende `src/main.py` con nuevas rutas o componentes\n4. **Actualizar assets:** Reemplaza imágenes y PDFs en `src/static/`\n\n## 📄 Licencia\n\nEste proyecto está licenciado bajo la **Licencia MIT**. Consulta el archivo [LICENSE](LICENSE) para más detalles.\n\n## 🤝 Contribuciones\n\nLas contribuciones son bienvenidas. Por favor:\n\n1. Fork el proyecto\n2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)\n3. Commit tus cambios (`git commit -am 'Añadir nueva funcionalidad'`)\n4. Push a la rama (`git push origin feature/nueva-funcionalidad`)\n5. Abre un Pull Request\n\n---\n\n**Desarrollado con ❤️ por Roni Hernández**\n\n🌐 **Website:** [ronihdz.com](https://ronihdz.com)  \n📧 **Email:** ronihdzbel@gmail.com  \n💼 **LinkedIn:** [linkedin.com/in/ronihdz](https://linkedin.com/in/ronihdz)  \n🔧 **GitHub:** [github.com/ronihdzz](https://github.com/ronihdzz)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronihdzz%2Froni-website","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fronihdzz%2Froni-website","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fronihdzz%2Froni-website/lists"}