FergosiaTask
Contexto
Ferguson Australia quería organizar el trabajo interno de su empresa para que cada persona sepa en qué está trabajando, qué hacer a continuación y evitar trabajar en cosas que todavía no son necesarias, y pueda priorizar lo urgente. Necesitaban seguimiento de proyectos por fases, asignación de tareas con dependencias, y métricas de rendimiento.
Solución
Diseñé e implementé un sistema de gestión de proyectos siguiendo Clean Architecture. El sistema permite crear proyectos con fases, asignar tareas con dependencias entre ellas, y visualizar métricas de progreso en un dashboard centralizado. Incluye integraciones con Google Drive y Gmail para centralizar documentos y notificaciones.
Funcionalidades
- Gestión de usuarios con roles y permisos
- Proyectos organizados en fases secuenciales
- Tareas con dependencias (no se puede iniciar una tarea hasta completar sus prerequisitos)
- Métricas de proyecto: progreso, rendimiento, tareas completadas
- Dashboard con estadísticas en tiempo real
- Integración con Google Drive para documentos
- Integración con Gmail para notificaciones
- Autenticación JWT con refresh tokens
- Soft delete con auditoría completa
Desafíos Técnicos
Implementé Clean Architecture con separación estricta entre capas (Domain, Application, Infrastructure, API). Utilicé el patrón Unit of Work para transacciones y retry logic con backoff exponencial para operaciones que pueden fallar temporalmente. Elegí SQL Server como base de datos para ampliar mis conocimientos y comparar con PostgreSQL, que uso en otros proyectos.
Stack Tecnológico
Resultado
Sistema en desarrollo activo. Arquitectura diseñada para escalabilidad y mantenibilidad a largo plazo.