Generalidades - dcmendoza/Domus GitHub Wiki
1. Generalidades del proyecto
1.1 Descripción del Problema y su Solución Software
Descripción del Problema
La administración de conjuntos residenciales y propiedades horizontales sigue siendo un proceso manual y poco eficiente. Los administradores dependen de registros en papel o herramientas básicas como hojas de cálculo para gestionar tareas clave, lo que genera retrasos, errores y dificultad para acceder a la información en tiempo real. Problemas comunes incluyen:
- Falta de control sobre mantenimientos y actividades pendientes del conjunto.
- Gestión ineficiente del personal (horarios, permisos, incapacidades).
- Registro financiero manual.
- Inexistencia de envío de facturas mensual, generando retrasos en los pagos por parte de los propietarios.
Solución Software Propuesta
Se propone una aplicación web y móvil que digitaliza la administración de conjuntos residenciales. El software permitirá:
- Gestión de pendientes y mantenimiento, asegurando el cumplimiento de tareas clave.
- Control del personal, registrando horarios, permisos e incapacidades.
- Manejo financiero, con seguimiento de ingresos y gastos del conjunto.
- Automatización del envío de facturas por correo electrónico, facilitando la comunicación con los propietarios.
1.2 Personas y Roles del Proyecto
A continuación, se presenta la distribución de roles y responsabilidades del equipo de desarrollo, siguiendo la metodología Scrum.
Nombre | Correo Institucional | Rol en el Equipo | Descripción del Rol |
---|---|---|---|
[Camilo Cordoba Bedoya] | [[email protected]] | Scrum Master | Facilita el proceso ágil, elimina impedimentos y asegura el cumplimiento de Scrum. |
Desarrollador Backend | Encargado de la lógica del negocio, base de datos y servicios del sistema. | ||
[Danna Carolina Mendoza Burgos] | [[email protected]] | Administrador de Repositorio | Diseña la estructura del software y define la arquitectura tecnológica del sistema. |
Desarrollador Frontend | Diseña y desarrolla la interfaz de usuario del sistema. | ||
[Juan Alejandro Osorno Bustamante] | [[email protected]] | Arquitecto de Software | Responsable del control de versiones y buenas prácticas en el código. |
QA Tester | Asegura la calidad del software mediante pruebas y validaciones. |
Explicación de la Distribución
Dado que el equipo es pequeño (solo tres integrantes), cada persona asume múltiples roles para abarcar todas las responsabilidades necesarias en un proyecto Scrum.
1.3 Público Objetivo y Contexto
Público Objetivo
El sistema está diseñado para facilitar la gestión de conjuntos residenciales y propiedades horizontales. A continuación, se describen los principales actores que interactuarán con la plataforma:
Rol | Descripción |
---|---|
Administrador del Conjunto | Persona encargada de la gestión del conjunto residencial. Se encarga de la administración financiera, gestión de reservas, manejo de quejas y comunicación con los residentes. |
Propietarios de Apartamentos | Dueños de los apartamentos en el conjunto. Pueden acceder al sistema para realizar pagos, hacer reservas, presentar quejas y participar en decisiones comunitarias. |
Personal del Conjunto | Empleados encargados del mantenimiento y seguridad del conjunto, como guardias, personal de aseo, jardineros, entre otros. Utilizan el sistema para recibir notificaciones y reportes de mantenimiento. |
Residentes (Inquilinos) | Personas que viven en el conjunto sin ser propietarios. Pueden interactuar con el sistema para recibir notificaciones, hacer reservas y presentar solicitudes. |
Sistemas de Software y Hardware Interactuantes
El sistema interactuará con diferentes plataformas y dispositivos para garantizar su funcionamiento óptimo:
Software
- Backend: Django
- Frontend: Flutter.
- Base de Datos: MariaDB.
- Sistema de Pagos Electrónicos: Integración con PSE para permitir pagos electrónicos directos desde cuentas bancarias.
Hardware
- Dispositivos Móviles: Smartphones y tablets utilizados por residentes y personal del conjunto.
- Computadoras de Administración: Equipos utilizados por el administrador del conjunto.
Diagrama de Contexto
1.4 Descripción del Proceso de Interacción
El siguiente proceso describe cómo cada tipo de usuario interactúa con el Sistema de Gestión Residencial.
Administrador del Conjunto
- Inicia sesión en la app con sus credenciales.
- Accede al panel de administración.
- Registra y consulta mantenimientos programados.
- Administra horarios y registros del personal.
- Ingresa ingresos y gastos en el sistema financiero.
- Genera y envía facturas a propietarios vía correo electrónico.
- Consulta y aprueba solicitudes de reservas de áreas comunes.
- Revisa y gestiona quejas y reclamos de residentes.
- Envía notificaciones y avisos a la comunidad.
- Cierra sesión.
Propietario del Apartamento
- Inicia sesión en la app con sus credenciales.
- Visualiza la factura mensual en su perfil.
- Descarga o recibe la factura por correo electrónico.
- Realiza pagos a través de PSE.
- Consulta reportes financieros del conjunto.
- Solicita mantenimiento para su apartamento.
- Reserva áreas comunes como salones o parques.
- Presenta quejas o sugerencias a la administración.
- Cierra sesión.
Personal del Conjunto
- Inicia sesión en la app con sus credenciales.
- Consulta su horario de trabajo y tareas asignadas.
- Solicita permisos o reporta incapacidades.
- Recibe notificaciones sobre cambios en turnos o tareas.
- Registra el estado de mantenimiento de áreas comunes.
- Reporta incidentes o problemas en el conjunto.
- Cierra sesión.
1.5 Glosario de términos
Este glosario define los términos clave utilizados en el desarrollo del Sistema de Gestión Residencial.
A
- Administrador del Conjunto: Persona encargada de gestionar el conjunto residencial, incluyendo la administración financiera, gestión de personal, mantenimiento y comunicación con los residentes.
- Área Común: Espacios compartidos dentro del conjunto residencial, como salones sociales, gimnasios, parques y piscinas.
B
- Backend: Parte del sistema que maneja la lógica de negocio, la base de datos y la comunicación con el frontend.
C
- Conjunto Residencial: Comunidad de viviendas bajo una administración común, que comparte reglas, costos y espacios comunes.
- Credenciales de Usuario: Información de autenticación que permite a los usuarios acceder al sistema, generalmente compuesta por un correo electrónico y una contraseña.
F
- Factura Electrónica: Documento digital que registra una transacción económica, en este caso, el pago de cuotas de mantenimiento por parte de los propietarios.
H
- Hive: Base de datos NoSQL utilizada en el sistema para almacenar información de manera eficiente y rápida.
M
- Mantenimiento Programado: Actividad planificada para garantizar el buen estado de las instalaciones y servicios dentro del conjunto residencial.
N
- Notificación: Mensaje o alerta enviada a los usuarios del sistema para informar sobre eventos importantes, como pagos pendientes o actualizaciones de normativas.
P
- PSE (Pagos Seguros en Línea): Plataforma que permite realizar pagos electrónicos de forma segura desde cuentas bancarias.
- Personal del Conjunto: Empleados encargados del mantenimiento, seguridad y limpieza del conjunto residencial.
- Propiedad Horizontal: Régimen legal bajo el cual se rigen conjuntos residenciales, definiendo derechos y deberes de los propietarios y administradores.
- Propietario del Apartamento: Dueño de una vivienda dentro del conjunto residencial, con derecho a participar en la toma de decisiones administrativas.
R
- Reserva de Área Común: Proceso mediante el cual los residentes pueden agendar el uso de espacios compartidos dentro del conjunto.
- Residente: Persona que habita en el conjunto residencial, ya sea propietario o inquilino.
S
- Scrum: Metodología ágil utilizada en el desarrollo del sistema, basada en ciclos de trabajo iterativos y mejora continua.
- Sistema de Gestión Residencial: Plataforma digital diseñada para facilitar la administración de conjuntos residenciales, integrando pagos, reservas, mantenimiento y comunicación.
T
- Turnos de Trabajo: Horarios asignados al personal del conjunto para realizar sus funciones de mantenimiento, seguridad y limpieza.
2. Determinación de Necesidades
2.1 Requisitos Funcionales
Para la determinación de los requisitos funcionales, se emplearon técnicas de Elicitación de Requerimientos con el objetivo de comprender y documentar las necesidades de los usuarios del sistema.
Técnicas Utilizadas
Se emplearon las siguientes técnicas para la obtención de los requerimientos:
- Entrevistas con Usuarios Clave: Se realizaron reuniones con administradores de conjuntos residenciales y personal operativo para identificar sus necesidades y dificultades actuales.
- Observación Directa: Se analizaron los procesos administrativos existentes para detectar ineficiencias y oportunidades de mejora.
- Análisis de Documentación: Se revisaron registros manuales y formatos utilizados actualmente en la administración de conjuntos.
Participantes en la Elicitación
- Administrador del Conjunto: Responsable de la gestión del conjunto residencial.
- Propietarios de Apartamentos: Dueños de las propiedades que interactúan con el sistema.
- Personal del Conjunto: Empleados encargados del mantenimiento, seguridad y aseo.
- Desarrolladores del Proyecto: Encargados de analizar y documentar los requisitos.
Requisitos Funcionales del Sistema
A continuación, se presentan los requisitos funcionales estructurados en historias de usuario para reflejar la interacción con el sistema.
Mantenimiento y Gestión de Infraestructura
- Yo como administrador quiero poder registrar mantenimientos programados para asegurar que se realicen a tiempo.
- Yo como administrador quiero poder recibir notificaciones de mantenimientos pendientes para evitar retrasos en las reparaciones.
- Yo como administrador quiero poder asignar responsables a tareas de mantenimiento para llevar control de su cumplimiento.
Gestión del Personal
- Yo como administrador quiero poder registrar horarios de trabajo del personal para organizar turnos de manera eficiente.
- Yo como administrador quiero poder aprobar permisos e incapacidades del personal para gestionar la disponibilidad del equipo.
- Yo como empleado quiero poder solicitar permisos e incapacidades para informar mi ausencia con anticipación.
- Yo como empleado quiero poder recibir notificaciones sobre cambios en mi turno para estar al tanto de mis responsabilidades.
Gestión Financiera y Facturación
- Yo como administrador quiero poder registrar ingresos y gastos del conjunto para llevar un control financiero actualizado.
- Yo como administrador quiero poder generar reportes financieros para analizar la salud económica del conjunto.
- Yo como administrador quiero poder generar facturas mensuales en PDF para enviarlas a los propietarios.
- Yo como administrador quiero poder enviar automáticamente las facturas por correo electrónico para facilitar la gestión de pagos.
- Yo como propietario quiero poder consultar y descargar mis facturas para estar al tanto de mis pagos pendientes.
- Yo como propietario quiero poder acceder al estado financiero del conjunto para conocer el manejo de los fondos comunes.
- Yo como propietario quiero poder recibir notificaciones cuando se emita una nueva factura para no olvidar los pagos.
Gestión de Usuarios y Accesos
- Yo como usuario quiero poder registrarme en el sistema con mis credenciales para acceder a mis funcionalidades según mi rol.
- Yo como usuario quiero poder recuperar mi contraseña en caso de olvido para no perder acceso a la aplicación.
- Yo como administrador quiero poder gestionar los roles y permisos de los usuarios para definir qué acciones pueden realizar en la plataforma.
Gestión de Reservas de Áreas Comunes
- Yo como propietario o residente quiero poder reservar áreas comunes como salones sociales o parques para eventos.
- Yo como administrador quiero poder aprobar o rechazar solicitudes de reserva para garantizar una correcta administración.
- Yo como propietario o residente quiero recibir confirmación de reserva por notificación y correo para asegurar mi solicitud.
Gestión de Quejas y Reclamos
- Yo como propietario o residente quiero poder enviar quejas y reclamos a la administración para reportar problemas en el conjunto.
- Yo como administrador quiero poder gestionar y dar respuesta a quejas y reclamos de los residentes de manera organizada.
- Yo como propietario o residente quiero hacer seguimiento al estado de mis quejas para verificar su resolución.
Notificaciones y Comunicación
- Yo como usuario quiero recibir notificaciones en tiempo real sobre pagos, eventos y novedades del conjunto.
- Yo como administrador quiero poder enviar comunicados masivos a todos los residentes para mantenerlos informados.
- Yo como usuario quiero poder chatear con la administración para resolver dudas o hacer consultas rápidas.
Evidencias de la Elicitación de Requerimientos
2.2 Exploración de antecedentes
En esta sección se presentan tres aplicaciones existentes que ofrecen funcionalidades similares a las planeadas en nuestro proyecto. Se analiza su enfoque, características principales y las diferencias clave con respecto a nuestra solución.
1. CondoControl
URL: https://www.condocontrol.com/es/
Descripción
CondoControl es una plataforma que ofrece herramientas para la administración eficiente de propiedades horizontales. Se especializa en la automatización de tareas como facturación, mantenimiento y gestión de personal.
Diferencias con Nuestro Proyecto
- Mayor enfoque en la automatización de tareas (facturación automática, control de mantenimientos y personal).
- No cuenta con una gestión integral del personal con horarios y permisos automatizados.
- Nuestra aplicación ofrecerá una experiencia móvil optimizada con Flutter, mientras que CondoControl tiene una interfaz más enfocada en la web.
Capturas de pantalla
2. Tu Condominio
URL: https://consultatucondominio.com/
Descripción
Tu Condominio es una aplicación enfocada en la gestión financiera de conjuntos residenciales. Permite llevar control de ingresos, egresos y generar reportes financieros detallados.
Diferencias con Nuestro Proyecto
- Está centrada en gestión financiera, pero carece de herramientas para la administración del personal y mantenimiento.
- Nuestra aplicación incluirá seguimiento de mantenimiento, gestión de turnos y permisos del personal, y automatización de reportes de mantenimiento, funcionalidades con las que Tu Condominio no cuenta.
- Nuestro sistema ofrecerá notificaciones en tiempo real, algo limitado en Tu Condominio.
Captura de pantalla
3. Properix
URL: https://www.properix.com/
Descripción
Properix es una solución integral para la gestión de propiedades horizontales, combinando herramientas de administración financiera y comunicación con los residentes.
Diferencias con Nuestro Proyecto
- Su aplicación móvil no está completamente optimizada, y algunas funciones solo están disponibles en la versión web.
- Nuestro sistema, desarrollado en Flutter, brindará una experiencia móvil fluida con acceso completo a todas las funciones desde cualquier dispositivo.
- Carece de una gestión avanzada del personal, mientras que nuestra solución incluirá módulos específicos para horarios, permisos y seguimiento de tareas.
Captura de pantalla
3. User Story Mapping y Backlog del Producto
3.1 Story Mapping
El User Story Mapping del sistema ha sido diseñado para organizar visualmente las funcionalidades clave del producto. Se estructuró en Canva siguiendo la siguiente jerarquía:
- Categorías principales (Ejemplo: Autenticación, Gestión de Mantenimiento, Finanzas, etc.).
- Funcionalidades dentro de cada categoría (Ejemplo: Registro, Inicio de sesión, Reservas de áreas comunes).
- Historias de usuario específicas organizadas por prioridad.
3.2 Backlog del Producto y Sprints Planning
El Backlog del producto ha sido documentado en nuestra plataforma de gestión de proyectos. Se han definido más de 20 historias de usuario, agrupadas en épicas según la funcionalidad principal del sistema.
🔗 Enlace al Backlog en la plataforma de gestión de proyectos: [Backlog]