Skip to main content

Introducción

ABA es una plataforma Database-Centric (andrescortes.dev) que aprovisiona bases de datos MySQL gratuitas para estudiantes y desarrolladores tras un login OAuth (Google/GitHub), y expone ese mismo aprovisionamiento como servicio a otras células del bootcamp a través de una API server-to-server.

La regla de oro

El backend no tiene lógica de negocio. Toda validación, cálculo, asignación de permisos y auditoría vive en SQL Server como Stored Procedures, Vistas y Funciones. El único trabajo del backend es: recibir el request → autenticar/validar forma/aplicar rate limit → invocar un SP → mapear el resultado a una respuesta HTTP.

Por qué importa

Si en algún momento una decisión se siente como "lógica de negocio" (calcular una cuota, decidir un permiso, generar un nombre), casi seguro pertenece a un Stored Procedure nuevo o modificado, nunca a un Service o Controller de C#. Es el criterio que guía cada decisión de arquitectura en este proyecto — ver Arquitectura → Enfoque Database-Centric.

Qué vas a encontrar acá

SecciónContenido
ArquitecturaVisión general del sistema, por qué es Database-Centric, y los patrones de diseño del backend (Repository + DIP).
InfraestructuraCómo está distribuida la RAM en el VPS, la convención de subdominios, el hardening de red, y el contrato de API para células socias.
Instalación LocalCómo levantar el backend y el frontend en tu máquina para desarrollar.
Stored ProceduresConvenciones para escribir y nombrar SPs dentro de la regla de oro.
SeguridadAutenticación OAuth2 + JWT + CSRF, cifrado de credenciales, y rate limiting.
CI/CD y DespliegueCómo se construye y despliega cada repo de forma independiente.

Los tres repositorios

RepoContenido
ABA-backend.NET 9 Web API — autenticación, rate limiting, despacho a Stored Procedures.
ABA-frontendReact 19 + Vite — landing pública y dashboard de usuario.
AbaDocumentación de planificación y runbooks de infraestructura (fuente de esta documentación).

Arquitectura en una imagen

NavegadorReact SPA — cookies JWT + XSRF-TOKEN
NginxProxy inverso, TLS, rate limiting
.NET 9 Web APIAuth, rate limiting, validación, despacho
SQL Server"MasterControl" — usuarios, auditoría, aprovisionamiento

Desde ahí, MasterControl dirige el aprovisionamiento real en MySQL (motor externo, una base