Skip to content

Latest commit

 

History

History
64 lines (52 loc) · 2.41 KB

File metadata and controls

64 lines (52 loc) · 2.41 KB

Guía de Contribución - Mi Día TodoApp

¡Gracias por interesarte en colaborar en este proyecto! Como este es un "ente" desarrollado con las tecnologías más recientes de Angular 21, seguimos estándares estrictos para mantener el rendimiento y la limpieza del código.

Requisitos del Entorno

Antes de empezar, asegúrate de tener:

  • Node.js: v22.x (LTS) o superior.
  • Angular CLI: v21.1.0 o superior.
  • Navegador: Recomendado Firefox o Chrome para pruebas de compatibilidad.

Reglas de Oro para Desarrolladores

Para que tu contribución sea aceptada, debe cumplir con estos pilares de nuestra auditoría:

1. Reactividad con Signals

No utilices variables estándar para datos que deban reflejarse en la UI.

  • Usa signal() para estado mutable.
  • Usa computed() para estado derivado (ej. filtros).
  • Evita el uso de ChangeDetectorRef.

2. Arquitectura Zoneless

El proyecto está configurado con provideExperimentalZonelessChangeDetection().

  • Prohibido: Importar o depender de zone.js.
  • Asegúrate de que todos los eventos disparen actualizaciones de Signals para que la UI se sincronice correctamente.

3. Flujo de Control Moderno

No utilices *ngIf o *ngFor. Es obligatorio usar la nueva sintaxis:

@if (condition) { ... }
@for (item of items; track item.id) { ... }
@switch (expression) { ... }

Pasos para Contribuir

  1. Fork el proyecto: Crea una copia en tu cuenta.

  2. Crear una rama: git checkout -b feature/MejoraIncreible.

  3. Realizar cambios: Asegúrate de seguir el estilo de código existente.

  4. Pruebas de Auditoría:

    • Ejecuta ng build para asegurar que el compilador no detecte errores de tipos.
    • Verifica que no haya errores de DOMException en la consola de Firefox.
  5. Commit con mensaje claro: Ejemplo: feat: agregar persistencia en la nube con Firestore.

  6. Push y Pull Request: Envía tus cambios para revisión.


Estructura de Datos (Task Model)

Si vas a modificar el ente Task, debe seguir esta interfaz:

export interface Task {
  id: number;      // Timestamp o ID único
  title: string;   // Descripción de la tarea
  completed: boolean;
  editing?: boolean;
}

Código de Conducta

Sé respetuoso y profesional. Estamos aquí para aprender y construir software de alta calidad.

Cualquier duda, puedes contactar a Luis CacuangoPerfil de GitHub