¡Gracias por tu interés en contribuir a GapTo10! Esta guía te ayudará a entender cómo puedes colaborar en el proyecto.
- Código de Conducta
- Cómo Reportar Bugs
- Sugerir Mejoras
- Contribuir Código
- Pull Requests
- Estándares de Código
- Proceso de Review
Por favor, sé respetuoso y constructivo en todas las interacciones:
- Respeta a todos los contribuyentes
- Acepta las críticas constructivas
- Enfócate en lo mejor para la comunidad
- Reporta comportamiento inapropiado a través de issues privados
Los bugs se reportan a través de GitHub Issues.
- Verifica si el bug ya fue reportado
- Intenta reproducirlo en la versión más reciente
- Recopila información del entorno (navegador, SO, etc.)
Título claro y descriptivo:
[BUG] La barra de progreso no se actualiza al cambiar notas
Descripción que incluya:
- Comportamiento esperado
- Comportamiento actual
- Pasos para reproducir
- Capturas de pantalla o videos si es posible
- Navegador y versión
- Sistema operativo
Ejemplo:
## Descripción
La barra de progreso no se actualiza cuando cambio una nota de una evaluación.
## Comportamiento Esperado
La barra de progreso debe actualizarse inmediatamente al cambiar la nota.
## Comportamiento Actual
La barra permanece estática hasta recargar la página.
## Pasos para Reproducir
1. Crear una materia
2. Agregar una evaluación
3. Ingresar una nota
4. Cambiar la nota
5. Observar que la barra no se actualiza
## Información del Sistema
- Navegador: Chrome 120.0.6099.111
- SO: Windows 11 Pro
- Versión de GapTo10: v1.0.0Las sugerencias se reportan también como Issues con la etiqueta enhancement.
Título descriptivo:
[ENHANCEMENT] Agregar soporte para múltiples idiomas
Información a incluir:
- Descripción clara de la mejora
- Por qué crees que sería útil
- Ejemplos de cómo funcionaría
- Posibles alternativas
Ejemplo:
## Descripción
Agregar la capacidad de personalizar los colores del Dashboard según el estado.
## Motivación
Los estudiantes pueden identificar más rápidamente el estado de sus materias
con colores personalizables según sus preferencias.
## Implementación Sugerida
- Agregar sección "Temas" en Configuración
- Permitir elegir entre tema claro, oscuro y personalizado
- Guardar preferencia en localStorage
## Alternativas Consideradas
- Solo temas predefinidos (limitado)
- Paleta de colores completamente personalizable (complejo)-
Fork el repositorio
# En GitHub, haz clic en el botón "Fork" -
Clone tu fork
git clone https://github.com/TU-USUARIO/gapto10-cfpp.git cd gapto10-cfpp -
Agrega el upstream
git remote add upstream https://github.com/Jrgil20/gapto10-cfpp.git
-
Crea una rama
git checkout -b feature/tu-feature # Ejemplos: # feature/agregar-vista-mensual # fix/corregir-barra-progreso # docs/mejorar-readme
-
Realiza cambios
# Edita archivos # Prueba tus cambios: pnpm dev # Ejecuta tests: pnpm test # Verifica linting: pnpm lint
-
Commit y Push
git add . git commit -m "feat: descripción clara del cambio" git push origin feature/tu-feature
-
Abre un Pull Request
- Ve a tu fork en GitHub
- Haz clic en "New Pull Request"
- Selecciona tu rama
feature/nombre-descriptivo # Nuevas características
fix/nombre-descriptivo # Correcciones de bugs
docs/nombre-descriptivo # Cambios de documentación
refactor/nombre-descriptivo # Refactorización de código
test/nombre-descriptivo # Agregar o mejorar tests
## 📝 Descripción
Breve descripción de qué cambios realiza este PR.
## 🎯 Tipo de Cambio
- [ ] Nuevo feature
- [ ] Bug fix
- [ ] Documentación
- [ ] Refactorización
- [ ] Actualización de dependencias
## ✅ Checklist
- [ ] Mis cambios siguen el estilo de código del proyecto
- [ ] He ejecutado `pnpm lint` sin errores
- [ ] He ejecutado `pnpm test` sin fallos
- [ ] He actualizado la documentación si es necesario
- [ ] Mis commits tienen mensajes descriptivos
## 🔗 Issues Relacionados
Cierra #123
## 📸 Screenshots (si aplica)
[Agrega capturas si hay cambios visuales]
## 📋 Comentarios Adicionales
[Información adicional que consideres relevante]## 📝 Descripción
Implementa un selector de modo de cálculo en la vista de materia para cambiar dinámicamente entre los modos pesimista, normal y optimista sin recargar la página.
## 🎯 Tipo de Cambio
- [x] Nuevo feature
- [ ] Bug fix
- [ ] Documentación
- [ ] Refactorización
- [ ] Actualización de dependencias
## ✅ Checklist
- [x] Mis cambios siguen el estilo de código del proyecto
- [x] He ejecutado `pnpm lint` sin errores
- [x] He ejecutado `pnpm test` sin fallos
- [x] He actualizado la documentación
- [x] Mis commits tienen mensajes descriptivos
## 🔗 Issues Relacionados
Cierra #42
## 📸 Screenshots
[Captura del nuevo selector de modo]
## 📋 Cambios Realizados
- Agregado componente CalculationModeSelector
- Actualizado SubjectView para usar el selector
- Agregado test para el nuevo componente
- Actualizado WEB_VIEW.md con instrucciones- Siempre especifica tipos en props y variables
- Usa interfaces para objetos complejos
- Evita
anya menos que sea absolutamente necesario
// ❌ Malo
function handleClick(data) {
console.log(data)
}
// ✅ Bueno
interface ClickData {
id: string
value: number
}
function handleClick(data: ClickData): void {
console.log(data)
}- Usa componentes funcionales
- Custom hooks para lógica reutilizable
- Props bien tipadas
// ✅ Bueno
interface CardProps {
title: string
content: React.ReactNode
onClick?: () => void
}
export function Card({ title, content, onClick }: CardProps) {
return (
<div onClick={onClick}>
<h3>{title}</h3>
<div>{content}</div>
</div>
)
}- Componentes React:
PascalCase - Funciones y variables:
camelCase - Constantes:
UPPER_SNAKE_CASE
// ✅ Correcto
export function MyComponent() { }
const calculateGrade = () => { }
const MAX_GRADE = 20Usa mensajes descriptivos siguiendo el formato Conventional Commits:
feat: agregar nuevo tipo de evaluación
fix: corregir cálculo de promedio
docs: actualizar guía de instalación
refactor: simplificar lógica de cálculos
test: agregar tests para validación
chore: actualizar dependencias
-
Calidad de Código
- Sigue los estándares del proyecto
- Sin código duplicado
- Rendimiento adecuado
-
Funcionalidad
- Los cambios funcionan correctamente
- No rompen funcionalidades existentes
- Todos los tests pasan
-
Documentación
- Código bien comentado
- Documentación actualizada
- Cambios importantes en WEB_VIEW.md
-
Testing
- Cambios críticos tienen tests
- Cobertura adecuada
- Todos los tests pasan
- Sé receptivo a las sugerencias
- Actualiza el PR según el feedback
- Requiere confirmación después de cambios significativos
Cualquier bug encontrado es bienvenido, especialmente si vienes con una solución.
- Mejoras UI/UX
- Nuevos modos de cálculo
- Exportación a nuevos formatos
- Internacionalización
- Mejoras al README
- Tutoriales
- Traducción de documentación
- Ejemplos de uso
- Mejoras de rendimiento
- Reducción de tamaño del bundle
- Optimización de componentes
- Agregar nuevos idiomas
- Mejorar traducciones existentes
Si es tu primera contribución, puedes empezar por:
- Issues etiquetados como
good first issue - Issues etiquetados como
help wanted - Mejorar documentación
- Agregar tests
Una vez que tu PR es aprobado:
- El mantainer hará merge a la rama
develop - Se agregará a la próxima release
- Serás mencionado en los release notes
- Configuración del Desarrollo
- Arquitectura del Proyecto
- Guía de Vista Web
- GitHub Flow
- Conventional Commits
P: ¿Necesito permiso para contribuir? R: No, puedes simplemente hacer fork y enviar un PR.
P: ¿Cuánto tiempo toma revisar un PR? R: Típicamente 2-7 días, dependiendo de la complejidad.
P: ¿Puedo trabajar en un issue que ya está asignado? R: Mejor comenta en el issue primero para coordinarte.
P: ¿Qué pasa si mi PR es rechazado? R: Es normal, obtendrás feedback detallado. Puedes mejorar y resubmitir.
- GitHub Issues: Reportar aquí
- Maintainer: Jrgil20
¡Gracias por considerar contribuir a GapTo10! Tu ayuda es invaluable para mejorar este proyecto. 🎉