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.
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ón | Contenido |
|---|---|
| Arquitectura | Visión general del sistema, por qué es Database-Centric, y los patrones de diseño del backend (Repository + DIP). |
| Infraestructura | Có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 Local | Cómo levantar el backend y el frontend en tu máquina para desarrollar. |
| Stored Procedures | Convenciones para escribir y nombrar SPs dentro de la regla de oro. |
| Seguridad | Autenticación OAuth2 + JWT + CSRF, cifrado de credenciales, y rate limiting. |
| CI/CD y Despliegue | Cómo se construye y despliega cada repo de forma independiente. |
Los tres repositorios
| Repo | Contenido |
|---|---|
ABA-backend | .NET 9 Web API — autenticación, rate limiting, despacho a Stored Procedures. |
ABA-frontend | React 19 + Vite — landing pública y dashboard de usuario. |
Aba | Documentación de planificación y runbooks de infraestructura (fuente de esta documentación). |
Arquitectura en una imagen
Desde ahí, MasterControl dirige el aprovisionamiento real en MySQL (motor externo, una base
- usuario por estudiante) — ver el detalle completo en Arquitectura → Visión General.