Una página web colaborativa donde desarrolladores de todo el mundo pueden contribuir con su información personal y aprender sobre colaboración en proyectos open source.
Este taller fue posible gracias a la colaboración de:
- 🎓 Developer Student Clubs UTP - Comunidad de estudiantes desarrolladores
- 🌟 Xperience Campus Chimbote - Impulsando el crecimiento tecnológico en Chimbote
Gracias a estas organizaciones pudimos llevar a cabo este workshop de Git & GitHub, proporcionando a los participantes una experiencia práctica y colaborativa en el desarrollo de software open source.
Al participar en este proyecto, practicarás y aprenderás:
- 🍴 Forking: Crear una copia del repositorio en tu cuenta
- 🌿 Branching: Crear y manejar ramas para organizar tu trabajo
- 📝 Commits: Guardar cambios con mensajes descriptivos
- ⬆️ Push/Pull: Sincronizar cambios entre local y remoto
- 🔄 Pull Requests: Proponer cambios para revisión
- 🤝 Merge: Integrar cambios al proyecto principal
Ahora es más fácil que nunca contribuir. Solo necesitas:
- ✅ Copiar el template JSON
- ✅ Crear tu propio archivo en
contributors/<tu-nickname>.json - ✅ Hacer PR - ¡No más conflictos de merge!
¿Por qué es mejor ahora?
- 🚫 Sin conflictos - Cada persona tiene su propio archivo
- ⚡ Más rápido - No esperas a que otros terminen
- 🤖 Automático - GitHub Actions genera todo por ti
- ✅ Más simple - Solo editas TU archivo
{
"name": "Tu Nombre Completo",
"nickname": "tu-github-username",
"github": "https://github.com/tu-username",
"linkedin": "https://linkedin.com/in/tu-perfil",
"instagram": "https://www.instagram.com/tu-instagram/",
"image": "https://github.com/tu-username.png",
"description": "Breve descripción profesional (máx. 150 caracteres)",
"hobbies": ["Hobby1", "Hobby2", "Hobby3", "Hobby4"]
}Este proyecto está optimizado para usar GitHub Codespace, que te proporciona:
- 🚀 Configuración instantánea - Sin instalaciones locales
- 🔧 Extensiones preinstaladas - Live Server, Image Preview, Git
- 🌐 Acceso desde cualquier lugar - Solo necesitas un navegador
- 💾 Guardado automático - Tus cambios se sincronizan automáticamente
- 🎯 Enfoque en el código - Sin preocuparte por dependencias
- Live Server - Vista previa en tiempo real de la página
- Image Preview - Visualización de imágenes en el editor
- Git Graph - Historial visual de commits
- Auto Close Tag - Cierre automático de etiquetas HTML
- IntelliSense - Autocompletado inteligente
| Concepto | Descripción | Habilidad Práctica |
|---|---|---|
| 🔧 Configuración de Entorno | GitHub Codespace preconfigurado | Trabajar sin instalaciones locales |
| 🍴 Workflow de Fork | Crear tu propia copia del proyecto | Colaborar sin afectar el original |
| 🌿 Gestión de Ramas | Organizar trabajo en features | git checkout -b feat/nueva-funcionalidad |
| 📝 Commits Semánticos | Mensajes claros y estructurados | feat:, fix:, docs: |
| 🔄 Pull Request Process | Proponer cambios para revisión | Comunicación efectiva en equipo |
| 👥 Code Review | Recibir y dar feedback | Mejorar la calidad del código |
| 🤖 Continuous Integration | Validaciones automáticas | Detectar errores antes del merge |
| 🚀 Merge y Deploy | Ver tu trabajo en producción | Ciclo completo de desarrollo |
flowchart TD
A["🌐 1. Accede al Repositorio"] --> B["🍴 2. Haz Fork del Repo"]
B --> C["✅ 3. Verifica tu Fork"]
C --> D["☁️ 4. Crear GitHub Codespace"]
D --> E["🔍 5. Verificar Estado Inicial"]
E --> F["🌿 6. Crear Nueva Rama"]
F --> G["📝 7. Crear tu archivo JSON"]
G --> H["💾 8. Preparar Commit"]
H --> I["⬆️ 9. Push a tu Fork"]
I --> J["🔄 10. Crear Pull Request"]
J --> K["🤖 11. Validación Automática"]
K --> L{"¿Validación exitosa?"}
L -->|"❌ No"| M["📝 Corregir Errores"]
M --> H
L -->|"✅ Sí"| N["🤖 12. Auto-generación"]
N --> O["🎉 13. Auto-merge Exitoso"]
%% Estilos mejorados
style A fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style D fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style G fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
style K fill:#fff3e0,stroke:#f57c00,stroke-width:2px
style L fill:#fce4ec,stroke:#c2185b,stroke-width:2px
style M fill:#ffebee,stroke:#d32f2f,stroke-width:2px
style N fill:#e0f2f1,stroke:#00796b,stroke-width:2px
style O fill:#c8e6c9,stroke:#388e3c,stroke-width:3px
- Una cuenta de GitHub
- Navegador web (Chrome, Firefox, Edge, Safari)
| Paso | Acción | Instrucción | 💡 Tip |
|---|---|---|---|
| 1 | 🍴 Fork | Botón "Fork" → "Create fork" | Crea tu copia del proyecto |
| 2 | ✅ Verificar | Verifica que diga "forked from Dav082004" | Asegúrate de estar en TU fork |
| 3 | ☁️ Codespace | "Code" → "Codespaces" → "Create" | Entorno listo en 1-2 minutos |
# 4. Verificar estado inicial
git status # Working tree debe estar limpio
git branch --all # Debes estar en 'main'
# 5. Crear tu rama
git checkout -b feat/add-tu-nickname
# 6. Verificar que estás en tu rama
git branch # Debe mostrar * feat/add-tu-nicknameOpción A: Usando la Terminal (Recomendado)
# 1. Copia el template
cp templates/contributor-template.json contributors/tu-nickname.json
# 2. Edita tu archivo
# Abre contributors/tu-nickname.json en el editorOpción B: Manualmente
- Abre la carpeta
contributors/ - Crea un nuevo archivo:
tu-nickname.json - Copia el contenido de
templates/contributor-template.json - Completa con tu información
✏️ Ejemplo completo:
{
"name": "María González",
"nickname": "mariagonzalez",
"github": "https://github.com/mariagonzalez",
"linkedin": "https://linkedin.com/in/maria-gonzalez-dev",
"instagram": "https://instagram.com/maria.codes",
"image": "https://github.com/mariagonzalez.png",
"description": "Full-stack developer apasionada por JavaScript y React",
"hobbies": ["Programación", "Open Source", "Gaming", "Fotografía"]
}# 8. Preparar tu archivo para commit
git add contributors/tu-nickname.json
# Verificar que solo agregaste tu archivo
git status # Solo debe aparecer tu .json
# 9. Hacer commit
git commit -m "feat: add profile for tu-nickname"
# 10. Push a tu fork
git push origin feat/add-tu-nickname- Ve a tu repositorio en GitHub
- Verás un banner amarillo: "Compare & pull request" → Click
- Título:
feat: add profile for tu-nickname - Descripción: Explica brevemente quién eres
- Click en "Create pull request"
Una vez creado el PR:
- 🤖 GitHub Actions se ejecuta automáticamente
- 🔍 Valida tu archivo JSON
- 🏗️ Genera
public/index.jsonysrc/contributors-data.js - ✅ Hace commit automático de los archivos generados
- 🎉 Mergea tu PR automáticamente
Verás en tu PR:
✅ Validation / validate
✅ Generate Contributors / generate
🤖 Auto-generate contributors data (commit automático)
🎉 Pull request successfully merged and closed
| Paso | Comando | Resultado |
|---|---|---|
| Setup | git checkout -b feat/add-tunickname |
Nueva rama creada |
| Crear | cp templates/contributor-template.json contributors/tunickname.json |
Template copiado |
| Editar | Abrir contributors/tunickname.json |
Completar con tu info |
| Stage | git add contributors/tunickname.json |
Archivo listo para commit |
| Commit | git commit -m "feat: add profile for tunickname" |
Cambios guardados |
| Push | git push origin feat/add-tunickname |
Cambios en GitHub |
| PR | Ir a GitHub → "Compare & pull request" | PR creado |
| Wait | GitHub Actions trabaja automáticamente | 🤖 Magia |
| Done | PR mergeado → ¡Tu perfil está en la web! | 🎉 |
❌ NO TOCAR:
contributors-data.js(se genera automáticamente)src/contributors-data.js(se genera automáticamente)public/index.json(se genera automáticamente)
✅ SÍ EDITAR:
contributors/<tu-nickname>.json(tu archivo personal)
-
🏗️ Generador Automático -
scripts/generate-contributors.js- Lee todos los archivos JSON de
contributors/ - Valida formato y campos obligatorios
- Genera automáticamente:
public/index.json(API pública)src/contributors-data.js(módulo JS)
- Se ejecuta automáticamente en GitHub Actions
- Lee todos los archivos JSON de
-
🤖 GitHub Action - Validación y generación automática
- Se ejecuta cuando modificas archivos en
contributors/ - Valida tu JSON
- Genera los archivos consolidados
- Hace commit automático con github-actions[bot]
- Mergea automáticamente si todo está correcto
- Se ejecuta cuando modificas archivos en
Nuestro sistema valida automáticamente:
| Validación | Descripción | ❌ Error Común |
|---|---|---|
| 📝 Sintaxis JSON | Estructura correcta del archivo | Falta coma o corchete |
| 🏷️ Campos Requeridos | name, nickname obligatorios |
Campos vacíos |
| 🎯 Límite de Hobbies | Mínimo 1, máximo 4 elementos | Array vacío o con >4 items |
| 🔗 URLs válidas | GitHub, LinkedIn, Instagram | URLs incompletas |
| 📏 Longitud Descripción | Máximo 150 caracteres | Texto muy largo |
| 🚫 No Duplicados | Nickname único | Username ya existe |
flowchart LR
A[Tu archivo JSON] --> B[GitHub Actions]
B --> C{Validación}
C -->|✅ OK| D[generate-contributors.js]
C -->|❌ Error| E[Notificación]
D --> F[public/index.json]
D --> G[src/contributors-data.js]
F --> H[Commit automático]
G --> H
H --> I[Auto-merge]
style A fill:#e3f2fd,stroke:#1976d2
style D fill:#fff3e0,stroke:#f57c00
style F fill:#e8f5e8,stroke:#388e3c
style G fill:#e8f5e8,stroke:#388e3c
style I fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
Proceso completo:
- 📝 Creas/modificas
contributors/tu-nickname.json - 🚀 Haces push a tu fork
- 🔄 Creas un Pull Request
- 🤖 GitHub Actions detecta cambios en
contributors/ - ✅ Valida tu archivo JSON
- 🏗️ Ejecuta
node scripts/generate-contributors.js - 📄 Se generan automáticamente:
public/index.jsonsrc/contributors-data.js
- 💾 github-actions[bot] hace commit de los archivos generados
- 🎉 Tu PR se mergea automáticamente
- 🌐 Tu perfil aparece en la web
- Lee los comentarios de la validación - Te dice exactamente qué corregir
- Edita TU archivo en
contributors/- No toques otros archivos - Commit y push nuevamente - Los cambios se agregan automáticamente al PR
- GitHub Actions regenerará todo - Espera a que termine
# ✅ Verificar tu JSON localmente (Opcional pero recomendado)
node scripts/generate-contributors.js
# ✅ Verificar antes de commit
git status # Ver qué archivos cambiaron
git diff contributors/tu-nickname.json # Ver tus cambios
# ✅ Solo agregar tu archivo
git add contributors/tu-nickname.json
# ✅ Commit descriptivo
git commit -m "feat: add profile for tu-nickname"
# ✅ Push a tu rama
git push origin feat/add-tu-nickname| Error | Causa | Solución |
|---|---|---|
SyntaxError: Unexpected token |
JSON mal formado | Verifica comas, corchetes, comillas |
name is required |
Campo obligatorio vacío | Completa el campo name |
nickname is required |
Campo obligatorio vacío | Completa el campo nickname |
hobbies must be an array |
Formato incorrecto | Usa ["Hobby1", "Hobby2"] |
At least 1 hobby required |
Array vacío | Agrega al menos 1 hobby |
Maximum 4 hobbies allowed |
Más de 4 hobbies | Reduce a máximo 4 |
Invalid GitHub URL |
URL incorrecta | Usa formato: https://github.com/username |
Description too long |
Más de 150 caracteres | Acorta tu descripción |
Si quieres probar antes de hacer PR:
# 1. Asegúrate de tener Node.js instalado
node --version
# 2. Ejecuta el generador localmente
node scripts/generate-contributors.js
# 3. Si hay errores, te mostrará exactamente cuáles
# 4. Si todo está bien, generará los archivosNota: No necesitas hacer commit de los archivos generados (public/index.json y src/contributors-data.js), GitHub Actions los generará automáticamente.
- Crear/modificar únicamente tu archivo en
contributors/<tu-nickname>.json - Usar el template de
templates/contributor-template.json - Incluir información real y profesional
- Usar GitHub Codespace para editar (recomendado)
- Hacer PR con solo tu archivo
- ❌ Modificar
contributors-data.js(archivo legacy, no usar) - ❌ Modificar
src/contributors-data.js(auto-generado) - ❌ Modificar
public/index.json(auto-generado) - ❌ Modificar archivos de otros colaboradores
- ❌ Modificar HTML, CSS, JS del proyecto (a menos que sea otra contribución aprobada)
- ❌ Agregar múltiples colaboradores en un solo PR
- ❌ Usar información falsa o inapropiada