﻿# Release 5: Revisión del front de un módulo

Copia este contenido en una página nueva de la wiki del grupo, con el título
**Revisión R5 front: `<nombre del módulo>`**. Una página por módulo revisado.

| Dato | Valor |
| :---- | :---- |
| **Propietario del módulo** | |
| **Nombre del módulo** | |
| **Entidad 1** | |
| **Entidad 2** | |
| **Entidad 3** | |

| Dato | Valor |
| :---- | :---- |
| **Revisor** | _(si el propietario se revisa a sí mismo, escribe su nombre aquí también)_ |

**Cómo usar esta lista.** Cada criterio se aplica a **las 3 entidades**. En la
columna *Comentario* escribe `Cumple` o, si falla, qué entidad y qué archivo
no cumple. El revisor **no corrige el código del propietario**: solo registra lo
que encuentra. Las correcciones las hace el propietario.

---

## Convenciones

| Criterio | Ejemplo | Comentario |
| :---- | :---- | :---- |
| **Estructura de las fuentes.** Cada componente vive en su propia carpeta dentro de `src/app/`. | `src/app/artist-list/`, `src/app/artist-detail/`, `src/app/artist-create/` | |
| **Modelo TS.** `<entidad>.model.ts` en `src/app/`, con la interfaz `<Entidad>`. | `src/app/artista.model.ts`, `interface Artista` | |
| **Componente listar.** Carpeta `<nombre>-list/`, clase `<Nombre>ListComponent`, selector `app-<nombre>-list`. | `artist-list/`, `ArtistListComponent`, `app-artist-list` | |
| **Componente detalle.** Carpeta `<nombre>-detail/`, clase `<Nombre>DetailComponent`, selector `app-<nombre>-detail`. | `artist-detail/`, `ArtistDetailComponent`, `app-artist-detail` | |
| **Componente crear.** Carpeta `<nombre>-create/`, clase `<Nombre>CreateComponent`, selector `app-<nombre>-create`, con formulario reactivo y `httpClient.post`. | `artist-create/`, `ArtistCreateComponent`, `app-artist-create` | |
| **Servicio.** `<entidad>.service.ts` en `src/app/`, clase `<Entidad>Service`, `@Injectable({ providedIn: 'root' })`, con `httpResource` para lectura y el signal `seleccionado`. | `src/app/artista.service.ts`, `ArtistaService` | |
| **Environments.** Carpeta `src/environments/` con `environment.ts` (producción, apunta a la VM del grupo) y `environment.development.ts` (desarrollo, apunta a `localhost`). | `environment.ts` con la URL de la VM, `environment.development.ts` con `http://localhost:8080` | |

---

## Validación funcional

El revisor corre el módulo en **su propia máquina**, sin basarse en lo que el propietario dice que funciona.

| Criterio | Ejemplo | Comentario |
| :---- | :---- | :---- |
| **El front arranca.** `ng serve` arranca sin errores. | La consola muestra `Local: http://localhost:4200/` | |
| **El front funciona con el back del propietario.** Con el back del propietario corriendo en local, la aplicación muestra lista, detalle y formulario de crear de las 3 entidades. | Recorrer las 3 entidades en `http://localhost:4200` | |

---

## Cierre del propietario

Antes de crear la rama de integración, el propietario vuelve a verificar su
módulo, **incluso si no tuvo revisor**.

- [ ] Corregí todo lo que quedó en los comentarios.
- [ ] Volví a correr `ng serve` y el front funciona con las 3 entidades.
- [ ] Fecha de la verificación final: ______
