# andes/matriculaciones architecture

> Architecture diagram of the GitHub repository andes/matriculaciones, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/andes/matriculaciones
- Repository: https://github.com/andes/matriculaciones

## Overview

Matriculaciones is an Angular application for public-facing professional registration and appointment requests, plus authenticated administrative workflows for managing professionals, appointments, matriculation numbers, reports, and supervisors. Users enter through routed screens; protected routes use an authentication guard, while feature services call the ANDES API. The README documents Angular tooling but not product behavior. The graph follows explicit route declarations and sampled service/API calls; feature-to-service wiring beyond those excerpts is left out where uncertain.

Main entry points: [`src/app/app.routing.ts`](https://github.com/andes/matriculaciones/blob/master/src/app/app.routing.ts) (Route map), [`src/app/app.component.ts`](https://github.com/andes/matriculaciones/blob/master/src/app/app.component.ts) (App shell), [`src/app/components/profesionales/services/busqueda-profesional.service.ts`](https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/services/busqueda-profesional.service.ts) (Search filters), [`src/app/services/profesional.service.ts`](https://github.com/andes/matriculaciones/blob/master/src/app/services/profesional.service.ts) (Professional API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App entry"]
  node_app["App shell<br/>[app.component.ts]"]
  node_routes["Route map<br/>[app.routing.ts]"]
  node_guard["Route guard"]
  node_public["Public information"]
end

subgraph group_professional["Professional registry"]
  node_professional_search["Professional search"]
  node_professional_record["Professional record"]
  node_professional_detail["Professional details"]
  node_professional_filters["Search filters"]
end

subgraph group_appointments["Appointments"]
  node_booking["Appointment requests"]
  node_booking_enrollment["Enrollment request"]
  node_booking_renewal["Renewal request"]
  node_booking_selection["Slot selection"]
  node_agenda["Appointment agenda"]
  node_turn_management["Appointment management"]
end

subgraph group_administration["Administration"]
  node_numbers["Matriculation numbers"]
  node_reports["Reports"]
  node_supervisors["Supervisors"]
end

subgraph group_integration["API services"]
  node_professional_service["Professional API"]
  node_turn_service["Appointment API<br/>[turno.service.ts]"]
  node_number_service["Numbering service"]
end

node_user(("User"))
node_api{{"ANDES API"}}

node_user -->|"opens"| node_app
node_app -->|"navigates"| node_routes
node_routes -->|"routes to"| node_public
node_routes -->|"routes to"| node_professional_search
node_routes -->|"routes to"| node_professional_record
node_routes -->|"routes to"| node_professional_detail
node_routes -->|"routes to"| node_booking
node_routes -->|"routes to"| node_booking_enrollment
node_routes -->|"routes to"| node_booking_renewal
node_routes -->|"routes to"| node_booking_selection
node_routes -->|"routes to"| node_agenda
node_routes -->|"routes to"| node_turn_management
node_routes -->|"routes to"| node_numbers
node_routes -->|"routes to"| node_reports
node_routes -->|"routes to"| node_supervisors
node_routes -->|"guards routes"| node_guard
node_professional_filters -->|"queries professionals"| node_api
node_professional_service -->|"reads and updates"| node_api
node_turn_service -->|"reads and saves"| node_api
node_number_service -->|"uses endpoints"| node_api

click node_app "https://github.com/andes/matriculaciones/blob/master/src/app/app.component.ts"
click node_routes "https://github.com/andes/matriculaciones/blob/master/src/app/app.routing.ts"
click node_guard "https://github.com/andes/matriculaciones/blob/master/src/app/app.routings-guard.class.ts"
click node_public "https://github.com/andes/matriculaciones/blob/master/src/app/components/requisitos/requisitos.component.ts"
click node_professional_search "https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/listar-profesionales.component.ts"
click node_professional_record "https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/profesional.component.ts"
click node_professional_detail "https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/detalle-profesional.component.ts"
click node_professional_filters "https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/services/busqueda-profesional.service.ts"
click node_professional_service "https://github.com/andes/matriculaciones/blob/master/src/app/services/profesional.service.ts"
click node_booking "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno.component.ts"
click node_booking_enrollment "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno-matriculacion.component.ts"
click node_booking_renewal "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno-renovacion.component.ts"
click node_booking_selection "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/seleccion-turnos/seleccion-turnos.component.ts"
click node_agenda "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/agenda.component.ts"
click node_turn_management "https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/turnos.component.ts"
click node_turn_service "https://github.com/andes/matriculaciones/blob/master/src/app/services/turno.service.ts"
click node_numbers "https://github.com/andes/matriculaciones/blob/master/src/app/components/numeracion/numeracion-matriculas.component.ts"
click node_number_service "https://github.com/andes/matriculaciones/blob/master/src/app/services/numeracionMatriculas.service.ts"
click node_reports "https://github.com/andes/matriculaciones/blob/master/src/app/components/reportes/reportes.component.ts"
click node_supervisors "https://github.com/andes/matriculaciones/blob/master/src/app/components/supervisor/listado-supervisores.component.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_app,node_routes,node_guard,node_public,node_user toneBlue
class node_professional_search,node_professional_record,node_professional_detail,node_professional_filters toneAmber
class node_booking,node_booking_enrollment,node_booking_renewal,node_booking_selection,node_agenda,node_turn_management,node_api toneMint
class node_numbers,node_reports,node_supervisors toneRose
class node_professional_service,node_turn_service,node_number_service toneIndigo
```

## Components

### App entry

- [App shell](https://github.com/andes/matriculaciones/blob/master/src/app/app.component.ts): `src/app/app.component.ts`
- [Route map](https://github.com/andes/matriculaciones/blob/master/src/app/app.routing.ts): `src/app/app.routing.ts`
- [Route guard](https://github.com/andes/matriculaciones/blob/master/src/app/app.routings-guard.class.ts): `src/app/app.routings-guard.class.ts`
- [Public information](https://github.com/andes/matriculaciones/blob/master/src/app/components/requisitos/requisitos.component.ts): `src/app/components/requisitos/requisitos.component.ts`

### Professional registry

- [Professional search](https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/listar-profesionales.component.ts): `src/app/components/profesionales/listar-profesionales.component.ts`
- [Professional record](https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/profesional.component.ts): `src/app/components/profesionales/profesional.component.ts`
- [Professional details](https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/detalle-profesional.component.ts): `src/app/components/profesionales/detalle-profesional.component.ts`
- [Search filters](https://github.com/andes/matriculaciones/blob/master/src/app/components/profesionales/services/busqueda-profesional.service.ts): `src/app/components/profesionales/services/busqueda-profesional.service.ts`

### Appointments

- [Appointment requests](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno.component.ts): `src/app/components/turnos/solicitar-turno.component.ts`
- [Enrollment request](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno-matriculacion.component.ts): `src/app/components/turnos/solicitar-turno-matriculacion.component.ts`
- [Renewal request](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/solicitar-turno-renovacion.component.ts): `src/app/components/turnos/solicitar-turno-renovacion.component.ts`
- [Slot selection](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/seleccion-turnos/seleccion-turnos.component.ts): `src/app/components/turnos/seleccion-turnos/seleccion-turnos.component.ts`
- [Appointment agenda](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/agenda.component.ts): `src/app/components/turnos/agenda.component.ts`
- [Appointment management](https://github.com/andes/matriculaciones/blob/master/src/app/components/turnos/turnos.component.ts): `src/app/components/turnos/turnos.component.ts`

### Administration

- [Matriculation numbers](https://github.com/andes/matriculaciones/blob/master/src/app/components/numeracion/numeracion-matriculas.component.ts): `src/app/components/numeracion/numeracion-matriculas.component.ts`
- [Reports](https://github.com/andes/matriculaciones/blob/master/src/app/components/reportes/reportes.component.ts): `src/app/components/reportes/reportes.component.ts`
- [Supervisors](https://github.com/andes/matriculaciones/blob/master/src/app/components/supervisor/listado-supervisores.component.ts): `src/app/components/supervisor/listado-supervisores.component.ts`

### API services

- [Professional API](https://github.com/andes/matriculaciones/blob/master/src/app/services/profesional.service.ts): `src/app/services/profesional.service.ts`
- [Appointment API](https://github.com/andes/matriculaciones/blob/master/src/app/services/turno.service.ts): `src/app/services/turno.service.ts`
- [Numbering service](https://github.com/andes/matriculaciones/blob/master/src/app/services/numeracionMatriculas.service.ts): `src/app/services/numeracionMatriculas.service.ts`

### Other components

- **User**
- **ANDES API**

## Connections

- User → App shell: opens
- App shell → Route map: navigates
- Route map → Public information: routes to
- Route map → Professional search: routes to
- Route map → Professional record: routes to
- Route map → Professional details: routes to
- Route map → Appointment requests: routes to
- Route map → Enrollment request: routes to
- Route map → Renewal request: routes to
- Route map → Slot selection: routes to
- Route map → Appointment agenda: routes to
- Route map → Appointment management: routes to
- Route map → Matriculation numbers: routes to
- Route map → Reports: routes to
- Route map → Supervisors: routes to
- Route map → Route guard: guards routes
- Search filters → ANDES API: queries professionals
- Professional API → ANDES API: reads and updates
- Appointment API → ANDES API: reads and saves
- Numbering service → ANDES API: uses endpoints
