Saltar al contenido
AppProyecto de estudio2025

Condoview

App de condominio en Flutter: el residente pide desde el celular, la administradora aprueba en la misma app

FlutterDartProviderNode.jsExpress
Funciona enAndroidAPI REST
paneles en la misma app: residente y administradora
2
módulos en el menú del residente
8
eventos que disparan notificación push
5
de validez de la invitación de visitante
24 h

01

Visión General

Condoview fue el Trabajo de Conclusión de Curso (TCC) de un equipo de 5 personas. La idea es que cada solicitud del condominio tenga responsable y estado: el residente reserva el salón, pide un mantenimiento o reporta un incidente desde la app, y la administradora lo recibe, abre la solicitud y la aprueba o la rechaza. La misma app Flutter muestra dos paneles — el rol viene del perfil del usuario al iniciar sesión — y se comunica con una API Node.js/Express sobre MongoDB, que dispara notificaciones push mediante Firebase cuando llega un aviso, una asamblea, una encomienda, un mensaje en el chat o un incidente.

Mi rol

Desarrollador Mobile y Front-End — interfaz Flutter, flujos de residente y administradora, integración con la API. Proyecto en equipo de 5: Lucas (mobile), Adryan Alexander (back end + diseño), Nicholas Balbino (back end), Edkarllos Fernando y Pedro Henrique Lopes (documentación).


Categoría

App

Año

2025

Estado

Proyecto de estudio

Plataformas

AndroidAPI REST

La app Flutter se comunica con una API Express que guarda todo en MongoDB. Cuando alguien publica un aviso, registra una encomienda o envía un mensaje, la API usa Firebase para avisar a los celulares correctos.

App Flutter

residente y administradora

Providerflutter_secure_storageqr_fluttermobile_scanner

API Node.js + Express

REST em /api/users

JWTexpress-validatorMulter (fotos)Nodemailer

MongoDB + Mongoose

10 colecciones

Usuarios y condominiosReservas y mantenimientosAvisos y asambleasEncomiendas y chat

Firebase Cloud Messaging

push en el celular

firebase-admin en la APIfirebase_messaging en la appToken guardado en el perfil

Sincronización: La validación de la invitación de visitante no depende de la API: la fecha y la hora van dentro del propio código QR y el lector decide en la portería.


02

El Problema

En muchos condominios la gestión ocurre en un grupo de WhatsApp, en la cartelera del ascensor y en el cuaderno de la portería. La reserva de un área común depende de un mensaje a la administradora, la solicitud de mantenimiento se pierde en la conversación, nadie sabe si el incidente fue visto y la autorización de visitantes se hace por el citófono.

03 — La Solución

Una app con dos paneles sobre la misma base: el residente tiene el menú del día a día (avisos, encomiendas, asambleas, reservas, mantenimiento, incidentes, chat y visitantes) y la administradora tiene la gestión (publicar un aviso, registrar una encomienda, crear una asamblea, aprobar reservas y mantenimientos, validar la entrada de visitantes con el código QR y gestionar residentes). Cada solicitud guarda un estado — pendiente, aprobada o rechazada — y el residente lo sigue desde su propio celular.


04

Por dentro del producto

La app de verdad funcionando con datos ficticios, grabada en dos celulares al mismo tiempo: a la izquierda el residente, a la derecha la administradora — ninguna pantalla es un mockup.

01

Reservas

El residente pide, la administradora aprueba — y los dos ven el estado

Bruno elige el salón de fiestas, describe el evento y marca fecha y horario. La solicitud entra como pendiente. Del otro lado, Carla abre Reservas Pendientes, confirma quién la pidió y la aprueba. Cuando Bruno vuelve a la lista, la reserva ya aparece como aprobada.

  • Salón de fiestas, zona de parrilla, cancha y piscina
  • Estado con color: aprobada, pendiente o rechazada
  • Aprobar y rechazar directo desde el detalle de la solicitud
02

Portería

Una invitación con código QR, validada en la entrada

El residente completa fecha, hora, nombre del visitante y unidad, y la app arma la tarjeta de invitación con el código QR para enviársela al visitante. En la portería, la administradora abre Aprobar Entrada, apunta la cámara a la invitación y la app responde al instante: aprobado, dentro de las 24 horas.

  • Tarjeta dibujada por la propia app a partir de una plantilla
  • QR con los datos de la visita, compartido como imagen
  • Lectura con mobile_scanner y validez de 24 horas
03

Avisos

El aviso sale del celular de la administradora y llega a la cartelera de todos

Carla escribe el aviso, elige un ícono y publica. En el celular de Bruno, el aviso entra al historial de comunicados — y la búsqueda por título lo encuentra al instante. Con Firebase configurado, cada residente del condominio además recibe la notificación push.

  • Ocho íconos para identificar el tipo de aviso
  • Historial con búsqueda por título
  • Push para los residentes del mismo condominio
04

Mantenimiento

Solicitud de mantenimiento con tipo, fecha y aprobación

El residente elige el tipo — pintura, limpieza, reparación, inspección —, describe el problema y sugiere la fecha. La administradora ve la solicitud en Mantenimientos Pendientes, la abre y la aprueba. El residente sigue todo desde la misma lista.

  • Foto opcional adjunta a la solicitud
  • Aprobar o rechazar con un toque
  • Historial de solicitudes con estado
05

Comunidad

Incidentes y chat en lugar del grupo de WhatsApp

¿Se dañó el citófono? El residente reporta el incidente con motivo, descripción y fecha, y aparece en la lista de la administradora. Para todo lo demás — dudas, recados, acuerdos —, un chat general del condominio, con los mensajes de cada persona identificados por su nombre.

  • Incidente con imagen opcional
  • Push a la administración con cada nuevo incidente
  • Chat general con notificación para los participantes

05

6 flujos en video

Cada video muestra una tarea completa, de principio a fin. Haz clic para verlo con controles.


06

Funcionalidades Principales

01

Dos paneles en la misma app

El perfil cargado al iniciar sesión define lo que aparece: el residente ve el Menú Completo con ocho módulos; la administradora ve además la Administración — Agregar, Aprobar y Visualizar.

02

Reservas con aprobación

El residente elige el área (salón de fiestas, zona de parrilla, cancha o piscina), la fecha y el horario; la administradora abre la solicitud y la aprueba o la rechaza, y el estado aparece en la lista del residente.

03

Mantenimientos e incidentes

Solicitud de mantenimiento por tipo (pintura, limpieza, reparación, inspección), con foto opcional y aprobación de la administradora; los incidentes con motivo, descripción, fecha e imagen llegan a la lista de la administración.

04

Invitación de visitante con código QR

El residente completa fecha, hora, nombre del visitante y unidad, y la app dibuja una tarjeta de invitación con código QR para compartir. En la portería, el lector de la app valida el código dentro de las 24 horas.

05

Avisos, encomiendas y asambleas

La administradora publica avisos con ícono, registra encomiendas con foto para el residente correcto y crea asambleas; el residente las sigue, busca los comunicados por título y da de baja la encomienda.

06

Chat general y notificaciones push

Un chat de todo el condominio y notificaciones mediante Firebase Cloud Messaging cuando llega un aviso, una asamblea, una encomienda, un mensaje o un incidente.


07

Pantallas del sistema

Capturas reales del producto, organizadas por módulo. Haz clic en cualquier pantalla para ampliarla.

La misma home: el residente ve el Menú Completo, la administradora gana la Administración
Solicitud de reserva, fila de pendientes y la pantalla de aprobación
Lista de mantenimientos con estado y la decisión de la administradora
Reporte del residente, lista de la administración y el detalle
Datos de la invitación, tarjeta con código QR y la entrada aprobada en la portería
La tarjeta que la app dibuja y comparte — el QR lleva los datos de la visita
Nuevo aviso con ícono, cartelera del residente y búsqueda por título
Chat general, asambleas y los datos del condominio
Encomiendas que llegaron a la portería y el detalle con la baja
Login, registro y el menú del perfil

08

En el celular

Las pantallas de la app de los dos lados: primero el residente, después la administradora. Los datos son ficticios — el Condominio Atlas, el residente Bruno y la administradora Carla se crearon solo para la demostración.

Residente · Iniciar sesión
Residente · Crear cuenta
Residente · Inicio
Residente · Avisos
Residente · Aviso
Residente · Búsqueda
Residente · Reservas
Residente · Nueva reserva
Residente · Mantenimientos
Residente · Encomiendas
Residente · Encomienda
Residente · Asambleas
Residente · Chat general
Residente · Visitante
Residente · Invitación
Residente · Incidente
Residente · Condominio
Residente · Perfil
Administradora · Administración
Administradora · Reservas
Administradora · Aprobar reserva
Administradora · Aprobar mantenimiento
Administradora · Incidentes
Administradora · Residentes
Administradora · Nuevo aviso
Administradora · Entrada aprobada

09

Tecnologías

Front-end

FlutterDartProvider

Back-end

Node.jsExpress

Base de datos

MongoDBMongoose

Integraciones

Firebase Cloud MessagingJWTNodemailer

Bibliotecas

qr_fluttermobile_scannerflutter_secure_storageshare_plusMulterexpress-validator

10

Decisiones de Diseño

La app tiene dos capas de navegación en la misma pantalla de inicio. Para el residente, un Menú Completo en cuadrícula con ocho accesos directos grandes — la app es de consulta y solicitud rápida. Para la administradora, la misma home gana arriba la Administración, dividida en tres verbos: Agregar (aviso, encomienda, asamblea), Aprobar (reserva, mantenimiento, entrada) y Visualizar (incidentes, residentes). Morado de la marca en barras y botones, rojo solo en los accesos de administración, y verde/naranja/rojo para el estado de las solicitudes.

11

Desafíos Técnicos

La invitación de visitante fue el flujo más interesante: la app dibuja la tarjeta en un Canvas a partir de una plantilla, escribe los datos de la invitación y pinta encima un código QR con el JSON de la visita (fecha, hora, visitante, unidad, anfitrión), genera un PNG y abre el menú de compartir del sistema. En la portería, el lector de mobile_scanner decodifica el QR, lee fecha y hora y aprueba la entrada si todavía está dentro de las 24 horas — sin necesidad de consultar el servidor.


12

Resultados

  • TCC aprobado, con el sistema funcionando demostrado en un video de presentación
  • Una app Flutter con dos paneles — residente y administradora — sobre una API Node.js/MongoDB propia
  • Solicitud, aprobación y seguimiento en el mismo lugar: reservas y mantenimientos con estado visible para el residente
  • Repositorios públicos de la app y de la API

13

Aprendizajes

  • Desarrollo en equipo con Git: front end móvil y back end avanzando en paralelo, con el contrato de la API acordado de antemano
  • Una app, dos productos: la misma base Flutter sirviendo a quien pide (residente) y a quien decide (administradora), separados por el rol del perfil
  • El ciclo de una solicitud tiene que ser visible desde ambos lados — por eso cada reserva y mantenimiento guarda un estado, y la lista del residente muestra pendiente, aprobada o rechazada
  • La notificación push es parte del flujo, no un adorno: el token de Firebase queda guardado en el perfil y la API dispara el aviso en el momento en que ocurre el evento
  • Revisando el código hoy, llevaría la verificación de rol también a la API: en el TCC, la separación entre residente y administradora quedó solo en la interfaz