You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Trabajo de Fin de Máster — Gestión Empresarial Multi-Tenant
Sistema web completo para la gestión de empresas de mantenimiento informático. Plataforma multi-tenant donde cada empresa tiene acceso a los servicios contratados (Scrum, Tickets, Documentación DPD/ISO), y un panel de administración total para gestionar usuarios, empresas y configuración global.
1. Descripción general
BYTEREDAPP es una aplicación web de arquitectura monolítica modular con API REST, diseñada para gestionar múltiples empresas de forma aislada. Cada empresa opera con sus propios datos, usuarios y servicios activos, siguiendo un modelo multi-tenant por fila (company_id en cada tabla).
El sistema fue desarrollado como solución real para la gestión de una empresa de mantenimiento informático, pero está diseñado para ser escalable y adaptable a otros sectores.
Público objetivo
Empresas de mantenimiento informático que necesitan centralizar la gestión de clientes, documentación y soporte técnico.
Equipos que trabajan con metodología ágil (Scrum/Kanban).
Organizaciones que requieren cumplimiento normativo DPD/ISO para documentación.
2. Objetivos
Objetivo principal
Desarrollar una aplicación web real, funcional y desplegada que demuestre los conocimientos adquiridos a lo largo del máster, abarcando desde el diseño de base de datos hasta el despliegue en producción.
Objetivos específicos
Implementar un sistema multi-tenant completo con aislamiento por fila.
Desarrollar una API RESTful asíncrona con FastAPI y Python.
Crear un frontend moderno con React, JavaScript vanilla y CSS plano.
Integrar autenticación JWT con roles y permisos (admin total, admin empresa, usuario).
Implementar feature flags para activar/desactivar servicios por empresa.
Añadir un sistema de agentes de IA para desarrollo (diferenciador del proyecto).
Lograr tests con cobertura alta y pipelines CI/CD automatizadas.
3. Stack tecnológico
Capa
Tecnología
Justificación
Frontend
React + JavaScript + Vite
Ecosistema maduro, rápido desarrollo, despliegue estático en Hostinger
Estilos
CSS plano
Sin dependencias extra, control total del diseño
Backend
FastAPI (Python 3.11+)
Alto rendimiento asíncrono, tipado con Pydantic, documentación OpenAPI automática
Base de datos
MySQL 8
Disponibilidad en Hostinger, costo cero, rendimiento probado
ORM
SQLAlchemy 2.0 + Alembic
Estándar en Python, migraciones versionadas
Autenticación
JWT (access + refresh tokens)
Stateless, escalable, multi-tenant nativo
Cache/Lock
Redis
Blocklist de tokens, rate limiting
Email
Resend API
Envío asíncrono de emails para tickets
Despliegue Frontend
Hostinger
Hosting contratado, archivos estáticos
Despliegue Backend
Render (free tier)
Despliegue automático desde GitHub
CI/CD
GitHub Actions
Pipelines automatizadas de test y deploy
Contenedores
Docker + Docker Compose
Entorno local consistente
4. Arquitectura
Tipo: Monolítica modular con API REST
Usuario → React SPA → API REST (JWT) → FastAPI → Service → Model → MySQL
Principios de diseño
Multi-tenant por fila: Cada tabla tiene company_id. Un middleware inyecta automáticamente el tenant del JWT en cada query.
Feature flags: Tabla empresa_servicio que determina qué módulos tiene activos cada empresa.
Roles: Tres niveles de acceso — admin_total, admin_empresa, usuario.
Middleware de tenant: Filtro automático por empresa en todas las queries.
Modelo de datos (simplificado)
empresa (1) ──→ (N) usuario
empresa (1) ──→ (N) empresa_servicio
empresa (1) ──→ (N) tarea
empresa (1) ──→ (N) ticket
empresa (1) ──→ (N) documento
usuario (1) ──→ (N) tarea (asignación)
usuario (1) ──→ (N) documento_permiso
5. Estructura del proyecto
📁 byteredapp/
├── client/ → Aplicación React (Vite + JavaScript)
├── server/ → API Backend (FastAPI + Python)
├── ia/ → Documentación para agentes de IA de desarrollo
├── .github/workflows/ → CI/CD (GitHub Actions)
├── .opencode/ → Configuración de agentes de OpenCode
├── docker-compose.yml → Entorno local con MySQL + Redis
├── .env.example → Plantilla de variables de entorno
├── .gitignore
└── README.md
Diferenciador principal del proyecto: BYTEREDAPP incorpora un sistema de agentes de IA especializados que aceleran el desarrollo y mantienen la consistencia del código.