Saltar al contenido
BigTree108

Caso de estudio: el portal de gestión de la empresa

Una empresa nueva en 2025 necesitaba contratación, incorporación, contratos, control de horas, vacaciones, facturación y contabilidad desde el primer día, con un presupuesto que descartaba comprar siete productos. Construimos una única plataforma para todo ello, y dirigimos la empresa con ella.

El problema

Las herramientas estándar de RR. HH., control de horas y facturación habrían costado cada una más al mes que todo el presupuesto, y ninguna entendía la legislación ucraniana sobre contratistas, la firma electrónica a través de un banco local ni la forma en que las horas pasan de un control de tiempo a una factura de cliente. La alternativa eran las hojas de cálculo, que dejan de funcionar la semana en que alguien está de vacaciones.

La decisión fue construir la plataforma sobre el stack que vendemos, tratarla como un producto real con las mismas reglas de ingeniería que aplicamos al trabajo de los clientes y dejar que sea la referencia sobre la que nuestros clientes puedan preguntar.

Qué hace

  • Contratación

    Vacantes publicadas en portales de empleo, preselección de candidatos mediante un bot de Telegram con una biblioteca de preguntas, entrevistas técnicas y externas con reserva de hora y seguimiento del periodo de prueba.

  • Incorporación

    Un flujo guiado que recoge los documentos de identidad, los verifica con servicios de IA en la nube, confirma la ortografía del nombre, reúne contactos y equipamiento y abre cuentas a través del proveedor de identidad.

  • Contratos y documentos

    Contratos de servicios y NDA generados a partir de plantillas en PDF, enviados a firma electrónica y guardados como registro firmado. Los contratos con clientes y las declaraciones de trabajo siguen el mismo camino.

  • Horas y vacaciones

    Horas por asignación de proyecto, sincronizadas desde controles de tiempo externos y editables por el especialista; vacaciones y bajas por enfermedad con días permitidos por contrato y aprobaciones.

  • Compensación y facturación

    Facturas mensuales de los especialistas y facturas de clientes generadas a partir de las mismas horas registradas, tipos de cambio del banco central, pagos puntuales refacturados y un archivo de facturas firmadas.

  • Contabilidad y cumplimiento normativo

    Recordatorios de declaraciones y pagos de impuestos, importación de extractos bancarios, contactos de emergencia y un modelo de permisos con seguridad a nivel de fila y solicitudes de elevación para los datos financieros.

  • Notificaciones

    Tarjetas de chat y de mensajería para cada evento sobre el que una persona debe actuar, con la regla de que ningún mensaje lleva nunca cifras financieras; estas quedan tras el inicio de sesión.

Cómo está construida

  • Backend

    .NET 10 sobre Azure Functions, vertical slices con CQRS mediante un mediador generado por source generators, validación en cada frontera y EF Core con migraciones versionadas.

  • Datos

    Azure SQL con seguridad a nivel de fila por cliente y columnas Always Encrypted para datos personales y financieros, con las claves en un vault gestionado.

  • Frontend

    Angular con componentes standalone, signals y detección de cambios sin zone.js, un sistema de diseño en Tailwind y un cliente de API generado a partir del documento OpenAPI.

  • Envíos

    GitHub Actions con credenciales federadas, Terraform para todo el entorno, cambios de base de datos entregados como migraciones en el pipeline, CodeQL y análisis de dependencias.

Reglas que la dieron forma

  • Prioridades en un orden fijo: coste, después seguridad, después modernidad, después rendimiento y después alineación con el cumplimiento normativo. Todo conflicto lo resuelve el rango superior.
  • El proveedor de identidad es la fuente de verdad de los datos de las personas; la base de datos es una caché de este y el único lugar para el salario, los datos de contratación y los permisos.
  • Los datos sensibles nunca llegan a una columna en claro, ni siquiera brevemente. El cifrado se declara en más de un lugar y se valida al arrancar.
  • Cada corrección de error se entrega con una prueba de su clase, situada en la capa de control más amplia que pueda verla, a menudo una prueba de arquitectura y no una prueba unitaria.
  • El chat es una superficie de visualización no fiable. Las notificaciones nombran el evento y enlazan con la página tras la autenticación; los importes y las tarifas nunca salen del producto.

Por qué le importa

No estamos describiendo una demo. Esta plataforma dirige una empresa real todos los días, lo que significa que hemos convivido con nuestras propias decisiones de arquitectura, nuestras propias migraciones y nuestras propias alertas el tiempo suficiente para saber cuáles eran acertadas. Ese es el mismo criterio que aportamos a su producto.

¿Quiere algo así para su empresa?

Describa los procesos que hoy gestiona con hojas de cálculo. Recibirá un plan por escrito, una propuesta de arquitectura y un presupuesto en un plazo de un día laborable.