¡Gracias por tu interés en contribuir al proyecto CRUD App! 🎉
- Código de Conducta
- ¿Cómo puedo contribuir?
- Configuración del Entorno
- Proceso de Desarrollo
- Estándares de Código
- Commits
- Pull Requests
Este proyecto sigue un código de conducta. Al participar, se espera que mantengas este código. Por favor reporta comportamientos inaceptables.
Si encuentras un bug:
- Verifica que no haya sido reportado previamente en Issues
- Crea un issue con:
- Título descriptivo
- Descripción detallada del problema
- Pasos para reproducir el bug
- Comportamiento esperado vs actual
- Screenshots si es aplicable
- Versión de Angular, navegador, OS
Para sugerir nuevas características:
- Abre un issue describiendo:
- El problema que resuelve
- Cómo beneficiaría al proyecto
- Ejemplos de uso
- Posibles alternativas consideradas
- Fork el repositorio
- Crea una rama desde
main:git checkout -b feature/nueva-caracteristica # o git checkout -b fix/correccion-bug - Realiza tus cambios
- Commit con mensajes descriptivos
- Push a tu fork
- Crea un Pull Request
- Node.js 18.x o superior
- npm 9.x o superior
- Angular CLI 19.x
# Clonar tu fork
git clone https://github.com/tu-usuario/CRUD.git
cd CRUD
# Instalar dependencias
npm install
# Configurar Firebase
cp src/environments/environment.example.ts src/environments/environment.development.ts
# Editar environment.development.ts con tus credenciales
# Iniciar servidor de desarrollo
npm start# Inicia el servidor de desarrollo
ng serve
# En otra terminal, ejecuta los tests en modo watch
ng test --watchImportante: Todos los cambios deben incluir tests.
# Ejecutar tests unitarios
npm test
# Ejecutar tests con coverage
ng test --code-coverage
# El coverage debe ser > 80%Antes de hacer commit, asegúrate de que compila sin errores:
# Build de desarrollo
ng build --configuration development
# Build de producción
ng build --configuration production-
Formato: Usa prettier/ESLint
-
Nombres:
- Componentes: PascalCase (
HomeComponent) - Servicios: PascalCase +
Service(EmpleadosService) - Variables: camelCase (
empleadoNombre) - Constantes: UPPER_SNAKE_CASE (
API_URL)
- Componentes: PascalCase (
-
Imports: Ordena alfabéticamente
// Angular core import { Component } from '@angular/core'; // RxJS import { Observable } from 'rxjs'; // Servicios propios import { EmpleadosService } from './empleados.service'; // Modelos import { Empleado } from './empleado.model';
-
Interfaces: Preferir interfaces sobre types
// ✅ Bien export interface Empleado { nombre: string; apellido: string; } // ❌ Evitar (a menos que sea necesario) export type Empleado = { nombre: string; apellido: string; }
- Usa la nueva sintaxis de control flow:
<!-- ✅ Bien --> @if (empleado) { <div>{{ empleado.nombre }}</div> } @for (emp of empleados; track emp.id) { <app-empleado [empleado]="emp" /> } <!-- ❌ Evitar sintaxis antigua --> <div *ngIf="empleado">{{ empleado.nombre }}</div> <app-empleado *ngFor="let emp of empleados" [empleado]="emp" />
- Usa clases de Bootstrap cuando sea posible
- CSS custom solo para estilos específicos del componente
- Evita
!important
Usa Conventional Commits:
<tipo>(<alcance>): <descripción>
[cuerpo opcional]
[footer opcional]
Tipos:
feat: Nueva característicafix: Corrección de bugdocs: Cambios en documentaciónstyle: Formato, punto y coma faltante, etc.refactor: Refactorización de códigotest: Agregar testschore: Cambios en build, herramientas, etc.
Ejemplos:
feat(empleados): agregar validación de email
fix(login): corregir redirect después de login
docs(readme): actualizar instrucciones de instalación
refactor(services): extraer lógica común a servicio base
test(empleados): agregar tests para CRUD operations- Un commit = un cambio lógico
- Los commits deben compilar
- Los tests deben pasar
- El código compila sin errores
- Los tests pasan
- El coverage no disminuye
- Actualizaste el CHANGELOG.md
- Agregaste/actualizaste tests
- Actualizaste la documentación si es necesario
## Descripción
[Descripción clara de los cambios]
## Tipo de cambio
- [ ] Bug fix
- [ ] Nueva característica
- [ ] Breaking change
- [ ] Actualización de documentación
## ¿Cómo se ha probado?
[Describe las pruebas realizadas]
## Checklist
- [ ] Mi código sigue los estándares del proyecto
- [ ] He realizado una auto-revisión de mi código
- [ ] He comentado mi código en áreas complejas
- [ ] He actualizado la documentación
- [ ] Mis cambios no generan warnings
- [ ] He agregado tests que prueban mi cambio
- [ ] Tests nuevos y existentes pasan localmente
## Screenshots (si aplica)
[Agregar screenshots]- 🐛 Corrección de bugs reportados
- 🔐 Mejoras de seguridad
- ♿ Mejoras de accesibilidad
- 📱 Mejoras responsive
- ✨ Nuevas características del roadmap
- 🎨 Mejoras de UI/UX
- ⚡ Optimizaciones de performance
- 📝 Mejoras de documentación
- 🧹 Refactorizaciones
- 🎭 Mejoras estéticas menores
Si tienes preguntas, puedes:
- Abrir un Discussion
- Comentar en un issue existente
- Contactar a los maintainers
¡Gracias por contribuir! 🎉