Skip to content

RayfelO/AvaluoBackend

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

234 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Avaluo Backend

Avaluo Logo

Sistema de Gestion de Avaluo de Desempeno β€” Backend API

.NET 8 SQL Server Redis Swagger Figma License: MIT Visitors


Descripcion

Avaluo es una plataforma de gestion academica orientada al avaluo de desempeno universitario. Facilita la evaluacion de competencias, Student Outcomes (SO) y Performance Indicators (PI) mediante rΓΊbricas digitales, generacion automatica de informes en PDF y dashboards de seguimiento para coordinadores de carrera.

Este repositorio contiene el Backend API del sistema, desarrollado como parte de una tesis de grado en colaboracion con INTEC bajo los estandares de acreditacion ABET.

Repositorio original: Tejanin/AvaluoBackend
Frontend (privado): siriuzz/AvaluoUI
Prototipo de diseΓ±o: Figma


Caracteristicas principales

πŸ” Auth JWT + Roles Autenticacion y autorizacion con tokens JWT y permisos por roles.
πŸ“‹ RΓΊbricas, SO y PI Gestion completa de rΓΊbricas, Student Outcomes y Performance Indicators.
πŸ“Š Dashboards Resumenes de desempeno por carrera y periodo acadΓ©mico.
πŸ“„ Informes PDF Generacion automatica de informes con IronPDF y vistas Razor.
πŸ”— Integracion INTEC Sincronizacion de datos con sistemas externos de la institucion.
⚑ Cache Redis Cache distribuido para optimizacion de lecturas frecuentes.
⏰ Jobs Quartz Tareas programadas para procesos recurrentes y mantenimiento.
πŸ—οΈ Arquitectura DDD Capas separadas (Presentation, Application, Domain, Infrastructure).

Stack tecnologico

Tech Stack Icons

Capa Tecnologia
Framework .NET 8 Web API
ORM / Micro-ORM Entity Framework Core 9 + Dapper
Base de datos Microsoft SQL Server
Cache Redis (StackExchange.Redis)
Autenticacion JWT Bearer + Cookies seguras
Documentacion API Swagger + Swashbuckle
Generacion PDF IronPDF
Mapeo Mapster
Jobs Quartz.NET
Contenedores Docker Compose (Redis)

Arquitectura

flowchart TD
    Client["Cliente / Frontend"] -->|HTTP + JWT| Presentation["πŸ“‘ Presentation Layer<br/>Controllers + ViewModels"]
    Presentation -->|DTOs + Requests| Application["βš™οΈ Application Layer<br/>Services + Middlewares"]
    Application -->|Entities + Commands| Domain["🧠 Domain Layer<br/>Entidades + Reglas de Negocio"]
    Application -->|Abstracciones| Infrastructure["πŸ’Ύ Infrastructure Layer<br/>EF Core / Dapper / Redis / Auth / Jobs"]
    Domain -.->|Implementa| Infrastructure

    style Presentation fill:#e1f5fe
    style Application fill:#fff3e0
    style Domain fill:#e8f5e9
    style Infrastructure fill:#fce4ec
Loading
  • Presentation: Controladores REST, ViewModels y filtros de validacion.
  • Application: Servicios de aplicacion, DTOs, middlewares de excepcion y autenticacion.
  • Domain: Entidades, value objects y reglas de negocio puras.
  • Infrastructure: Persistencia (EF Core + Dapper), cache Redis, autenticacion JWT, integraciones INTEC y jobs Quartz.

Para mas detalles, consulta la documentacion completa o el archivo CONTRIBUTING.md.


Contributors

Contributors


Capturas y Demo

El backend expone una API REST documentada con Swagger. A continuacion, una demostracion del sistema en accion: Ver demo en YouTube

Demo en YouTube

Screenshots

Swagger UI
Documentacion interactiva de la API con Swagger UI

Frontend
Interfaz del cliente conectado al backend

Informe PDF
Generacion automatica de informes en PDF

  • Swagger UI: https://localhost:8000 (al ejecutar localmente)
  • Documentacion tecnica: GitHub Pages

Requisitos previos


Como ejecutar localmente

1. Clonar el repositorio

git clone https://github.com/RayfelO/AvaluoBackend.git
cd AvaluoBackend

2. Levantar Redis

docker-compose up -d

3. Configurar secrets

Copia el archivo de ejemplo y completa los valores necesarios:

cp AvaluoAPI/appsettings.example.json AvaluoAPI/appsettings.json

Ajusta las ConnectionStrings y las claves de Jwt, Email e IronPdf.

4. Ejecutar la API

cd AvaluoAPI
dotnet run

La API estara disponible en:

  • API: https://localhost:8000
  • Swagger UI: https://localhost:8000 (raiz)

Estructura del proyecto

AvaluoBackend/
β”œβ”€β”€ AvaluoAPI/
β”‚   β”œβ”€β”€ Presentation/
β”‚   β”‚   └── Controllers/
β”‚   β”œβ”€β”€ Application/
β”‚   β”‚   β”œβ”€β”€ Services/
β”‚   β”‚   └── DTOs/
β”‚   β”œβ”€β”€ Domain/
β”‚   β”‚   β”œβ”€β”€ Entities/
β”‚   β”‚   └── Services/
β”‚   └── Infrastructure/
β”‚       β”œβ”€β”€ Persistence/
β”‚       β”œβ”€β”€ Integrations/
β”‚       └── Data/
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ docs/
└── assets/

Documentacion

La documentacion tecnica del proyecto esta disponible via GitHub Pages:

Ver documentacion β†’

Tambien puedes consultar:

  • CONTRIBUTING.md β€” Estandares de codigo, flujo Git y estructura de carpetas.
  • docs/ β€” Fuente de la documentacion en GitHub Pages.

Licencia

Este proyecto esta licenciado bajo la Licencia MIT.


Desarrollado como tesis de grado. Fork del proyecto original con mejoras y documentacion adicional.

About

Avaluo es una plataforma de gestion academica orientada al avaluo de desempeno universitario. Desarrollado como parte de una tesis de grado en colaboracion con INTEC bajo los estandares de acreditacion ABET.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 94.7%
  • TSQL 3.1%
  • HTML 2.2%