# katherine606/plataforma-proyectos-vinculacion-grupoc architecture

> Architecture diagram of the GitHub repository katherine606/plataforma-proyectos-vinculacion-grupoc, 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/katherine606/plataforma-proyectos-vinculacion-grupoc
- Repository: https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc

## Overview

La plataforma gestiona proyectos de vinculación: coordinadores publican proyectos, estudiantes solicitan inscripción y tutores coordinan actividades y aprueban horas registradas; el sistema también ofrece paneles, perfiles y administración de usuarios. Angular presenta las funciones por rol y consume una API REST PHP, que autentica y enruta las operaciones a controladores y acceso MySQL. Las relaciones reflejan los excerpts y capacidades documentadas; no se muestran conexiones internas de subsistemas cuyos controladores o servicios no fueron muestreados.

Main entry points: [`backend/index.php`](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/index.php) (Router REST), [`backend/models/dao`](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/backend/models/dao) (Acceso a datos), [`frontend/src/app/components`](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/frontend/src/app/components) (Pantallas de gestión), [`frontend/src/app/app.routes.ts`](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/app.routes.ts) (Rutas y roles)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Aplicación Angular"]
  node_app["Aplicación<br/>[app.ts]"]
  node_routes["Rutas y roles<br/>[app.routes.ts]"]
  node_screens["Pantallas de gestión"]
  node_services["Servicios HTTP"]
  node_authservice["Servicio de sesión<br/>[auth.service.ts]"]
end

subgraph group_api["API y dominio"]
  node_router["Router REST<br/>[index.php]"]
  node_projects["Proyectos"]
  node_requests["Solicitudes"]
  node_hours["Registro y aprobación<br/>[HoraController.php]"]
  node_activities["Actividades"]
  node_dashboard["Paneles"]
  node_catalog["Catálogos"]
  node_profile["Perfil"]
  node_users["Administración usuarios"]
end

subgraph group_persistence["Persistencia"]
  node_daos["Acceso a datos"]
  node_database["Conexión PDO<br/>[database.php]"]
end

subgraph group_security["Autenticación"]
  node_authcontroller["Controlador de acceso<br/>[AuthController.php]"]
  node_jwt["JWT<br/>[JwtHelper.php]"]
end

node_coordinator(("Coordinador"))
node_tutor(("Tutor"))
node_student(("Estudiante"))
node_mysql[("MySQL")]

node_app -->|"inicia rutas"| node_routes
node_routes -->|"dirige navegación"| node_screens
node_student -->|"usa funciones"| node_screens
node_tutor -->|"usa funciones"| node_screens
node_coordinator -->|"usa funciones"| node_screens
node_authservice -->|"envía login"| node_router
node_services -->|"consume API"| node_router
node_router -->|"despacha login"| node_authcontroller
node_router -->|"despacha proyectos"| node_projects
node_router -->|"despacha solicitudes"| node_requests
node_router -->|"despacha horas"| node_hours
node_router -->|"despacha actividades"| node_activities
node_router -->|"despacha panel"| node_dashboard
node_router -->|"despacha catálogos"| node_catalog
node_router -->|"despacha perfil"| node_profile
node_router -->|"despacha usuarios"| node_users
node_router -->|"valida tokens"| node_jwt
node_authcontroller -->|"emite tokens"| node_jwt
node_projects -->|"consulta y modifica"| node_daos
node_requests -->|"consulta y modifica"| node_daos
node_hours -->|"consulta y modifica"| node_daos
node_activities -->|"consulta y modifica"| node_daos
node_users -->|"consulta y modifica"| node_daos
node_daos -->|"obtiene conexión"| node_database
node_database -->|"conecta PDO"| node_mysql

click node_app "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/app.ts"
click node_routes "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/app.routes.ts"
click node_screens "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/frontend/src/app/components"
click node_services "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/frontend/src/app/services"
click node_authservice "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/services/auth.service.ts"
click node_router "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/index.php"
click node_projects "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/ProyectoController.php"
click node_requests "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/SolicitudController.php"
click node_hours "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/HoraController.php"
click node_activities "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/ActividadController.php"
click node_dashboard "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/DashboardController.php"
click node_catalog "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/CatalogoController.php"
click node_profile "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/PerfilController.php"
click node_users "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/UsuariosController.php"
click node_authcontroller "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/AuthController.php"
click node_jwt "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/config/JwtHelper.php"
click node_daos "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/backend/models/dao"
click node_database "https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/config/database.php"

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_screens,node_services,node_authservice toneBlue
class node_router,node_projects,node_requests,node_hours,node_activities,node_dashboard,node_catalog,node_profile,node_users,node_mysql toneAmber
class node_daos,node_database toneMint
class node_authcontroller,node_jwt toneRose
class node_coordinator,node_tutor,node_student toneIndigo
```

## Components

### Aplicación Angular

- [Aplicación](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/app.ts): `frontend/src/app/app.ts`
- [Rutas y roles](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/app.routes.ts): `frontend/src/app/app.routes.ts`
- [Pantallas de gestión](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/frontend/src/app/components): `frontend/src/app/components`
- [Servicios HTTP](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/frontend/src/app/services): `frontend/src/app/services`
- [Servicio de sesión](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/frontend/src/app/services/auth.service.ts): `frontend/src/app/services/auth.service.ts`

### API y dominio

- [Router REST](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/index.php): `backend/index.php`
- [Proyectos](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/ProyectoController.php): `backend/controllers/ProyectoController.php`
- [Solicitudes](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/SolicitudController.php): `backend/controllers/SolicitudController.php`
- [Registro y aprobación](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/HoraController.php): `backend/controllers/HoraController.php`
- [Actividades](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/ActividadController.php): `backend/controllers/ActividadController.php`
- [Paneles](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/DashboardController.php): `backend/controllers/DashboardController.php`
- [Catálogos](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/CatalogoController.php): `backend/controllers/CatalogoController.php`
- [Perfil](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/PerfilController.php): `backend/controllers/PerfilController.php`
- [Administración usuarios](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/UsuariosController.php): `backend/controllers/UsuariosController.php`

### Persistencia

- [Acceso a datos](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/tree/main/backend/models/dao): `backend/models/dao`
- [Conexión PDO](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/config/database.php): `backend/config/database.php`

### Autenticación

- [Controlador de acceso](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/controllers/AuthController.php): `backend/controllers/AuthController.php`
- [JWT](https://github.com/katherine606/plataforma-proyectos-vinculacion-grupoc/blob/main/backend/config/JwtHelper.php): `backend/config/JwtHelper.php`

### Other components

- **Coordinador**
- **Tutor**
- **Estudiante**
- **MySQL**

## Connections

- Aplicación → Rutas y roles: inicia rutas
- Rutas y roles → Pantallas de gestión: dirige navegación
- Estudiante → Pantallas de gestión: usa funciones
- Tutor → Pantallas de gestión: usa funciones
- Coordinador → Pantallas de gestión: usa funciones
- Servicio de sesión → Router REST: envía login
- Servicios HTTP → Router REST: consume API
- Router REST → Controlador de acceso: despacha login
- Router REST → Proyectos: despacha proyectos
- Router REST → Solicitudes: despacha solicitudes
- Router REST → Registro y aprobación: despacha horas
- Router REST → Actividades: despacha actividades
- Router REST → Paneles: despacha panel
- Router REST → Catálogos: despacha catálogos
- Router REST → Perfil: despacha perfil
- Router REST → Administración usuarios: despacha usuarios
- Router REST → JWT: valida tokens
- Controlador de acceso → JWT: emite tokens
- Proyectos → Acceso a datos: consulta y modifica
- Solicitudes → Acceso a datos: consulta y modifica
- Registro y aprobación → Acceso a datos: consulta y modifica
- Actividades → Acceso a datos: consulta y modifica
- Administración usuarios → Acceso a datos: consulta y modifica
- Acceso a datos → Conexión PDO: obtiene conexión
- Conexión PDO → MySQL: conecta PDO
