Semana 10/11 · ████████████████████░ 95% > Cobertura de tests: 100% (Integration & Logic)
Rendimiento: Optimizado con Índices Compuestos (PostgreSQL Tuning)
Linter/Formatter: Ruff (PEP-8, +700 reglas) - Inmaculado
Motor transaccional B2B para gestión de reservas con Arquitectura Enterprise.
Incluye un Asistente de IA (Gemini 1.5/2.0 Flash) para extracción de intenciones y normalización de fechas ISO 8601.
API stateless con JWT, diferenciación de roles (Usuario/Admin) y blindaje mediante CheckConstraints a nivel motor.
| Carpeta | Rol |
|---|---|
app/api |
Endpoints e inyección de dependencias |
routers/ |
Lógica de IA Assistant y Rutas Modulares |
app/models/ |
SQLAlchemy 2.0 (Mixins de Auditoría & Enums) |
app/schemas/ |
Pydantic V2 (Validación estricta y ConfigDict) |
alembic/ |
Migraciones Enterprise (versionadas y probadas) |
tests/ |
Escudo de pruebas con TestClient y validación de IA |
| Categoría | Ítem Técnico | Estado |
|---|---|---|
| Core & DB | SQLAlchemy + PostgreSQL (Enterprise Mixins) | ✅ |
| Auth | JWT Stateless + Roles (User/Admin) | ✅ |
| Arquitectura | Diseño Modular (Clean Architecture) | ✅ |
| IA | AI Assistant (Extracción ISO 8601 & Intent) | ✅ |
| Performance | SQL Tuning (Índices Compuestos & Enums) | ✅ |
| Integridad | Restricciones Físicas (CheckConstraints SQL) | ✅ |
| Auditoría | Auditoría Automática (Created/Updated at) | ✅ |
| Testing | Pytest Coverage (Camino Feliz/Triste) | ✅ |
| Calidad | Ruff Linting (Clean Code Policy) | ✅ |
| DevOps | Dockerización Pro (Multi-stage Build) | ✅ |
| Cloud | Despliegue en AWS (ECR / App Runner / RDS) | ⏳ En progreso |
| CI/CD | Pipeline con GitHub Actions (Auto-deploy) | ⏳ Pendiente |
El proyecto implementa un pipeline de calidad basado en cuatro pilares:
-
Pruebas de Integración y Regresión (Pytest): Validación automática de endpoints, incluyendo la simulación de errores de validación (422) y la consistencia de respuestas JSON.
-
IA Structured Output: Uso de LangChain y Pydantic para garantizar que el LLM devuelva esquemas de datos deterministas, eliminando la ambigüedad en la entrada de lenguaje natural.
-
Arquitectura de Datos Blindada: Uso de Mixins para estandarizar la auditoría de tablas y Enums para restringir estados lógicos, reduciendo la entropía en la base de datos.
-
Optimización de Consultas: Implementación de índices compuestos específicos para búsquedas de rangos temporales, garantizando latencias mínimas bajo carga.
pytest # todos los tests
pytest --cov=app --cov-report=term tests/locust -f locustfile.py --host=http://localhost:8000Resultado verificado: 1250 RPS sostenidos en hardware de desarrollo (8 vCPUs, 16GB RAM). Sin errores de concurrencia.
Los tests lanzan reservas simultáneas para validar que SELECT FOR UPDATE evita overbooking.
No se detectaron deadlocks en PostgreSQL 15.
ruff check . # análisis estático (+700 reglas)
ruff format . # formateo automático PEP-8Configuración en pyproject.toml.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtSECRET_KEY=clave_aleatoria_sin_frase_hecha
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30docker run --name bifrost-db -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:15
alembic upgrade headuvicorn app.main:app --reloadDocumentación interactiva: http://localhost:8000/docs
- Python 3.12
- FastAPI 0.115+
- SQLAlchemy 2.0
- Pydantic 2.5+
- PyJWT + Passlib (bcrypt)
- Pytest + pytest-cov + httpx
- Ruff 0.6+
- Locust 2.31+
- Docker + PostgreSQL 15
Baltasar Blanco – baltablanco9008@gmail.com
💼 LinkedIn
Código que no se puede probar no se acepta.