← Volver a Mis Proyectos

Habitly (v1.1.5): Gestión Inmobiliaria & Compliance

JavaSE CleanArchitecture LegalTech PropTech SwingGUI
📢 Nota informativa: Este proyecto de desarrollo está completado y en producción, pero sigue sujeto a actualizaciones y mejoras continuas (ver hoja de ruta).
Ver en GitHub Ver Tests JUnit
💡

¿De dónde sale el nombre «Habitly»?

El nombre Habitly nace de la fusión entre la raíz "Habitar" (el núcleo del sector residencial e inmobiliario) y el sufijo anglosajón "-ly" (característico de soluciones SaaS como Calendly o Grammarly). Conceptualmente significa "Habitar de forma inteligente y automatizada", transformando la compleja gestión legal y fiscal de fincas en un proceso intuitivo, riguroso y eficiente.

Habitly.java (MVP original en consola)
Cargando simulación de consola Java..._

💡 Simulación de consola interactiva: Esta recreación representa el MVP original del proyecto. La versión actual v1.1.5 se ejecuta con una interfaz gráfica completa (GUI).
Opciones 1-4 · 0. Salir — Interactúa con el MVP utilizando los controles inferiores.

🖥️ Evolución Visual: Interfaz de Escritorio Java Swing (Dark Mode - v1.1.5)

La versión v1.1.5 introduce una interfaz de escritorio premium en Java Swing totalmente interactiva basada en una paleta moderna Slate-Dark. Cuenta con navegación lateral, tablas responsivas con anchos optimizados, resaltados de foco en tiempo real y una completa automatización de regulaciones de vivienda de conformidad con la LAU y la Ley 12/2023 de España.

🎨

Interfaz Gráfica Premium

UI interactiva en Modo Oscuro con barra de navegación lateral, realce visual de foco de campos y tablas de datos auto-ajustables.

📦

Asistente Windows Setup

Instalador ejecutable (wizardSetUp.exe) autónomo. Empaqueta un entorno Java Runtime Environment (JRE) reducido, omitiendo instalaciones previas.

⚖️

Cumplimiento Ley 12/2023

Motor legal que bloquea de forma automática la formalización de alquileres que excedan el límite mensual del índice oficial IRAV.

📅

Ciclo de Vida LAU

Valida prórrogas tácitas anuales automáticas (tope de 3 años - Art. 10 LAU), rescisión unilateral de inquilino (mín. 6 meses) y duración legal (5 o 7 años).

🇮🇨

Optimización Fiscal IGIC

Aplica automáticamente la exención de impuestos indirectos canarios (IGIC 0%) para arrendamientos residenciales y calcula tasas vacacionales.

🏦

Fianzas y Depósitos ICAVI

Validación estricta de fianza de 1 mes (Art. 36 LAU) y garantías adicionales (máx. 2 meses), con registro fiscal de depósitos del Instituto Canario de la Vivienda.

🔒

Seguridad AES-GCM

Cifrado local simétrico AES-256 en modo GCM con derivación de clave PBKDF2 y manejo de credenciales mediante arrays de tipo char[].

📈

Márgenes de Rentabilidad

Dashboard financiero integrado con cálculo en tiempo real de ingresos por rentas y liquidaciones restando los gastos de comunidad.

Arquitectura del Sistema (Capas Desacopladas POO)

Estructura modular dividida en capas independientes que garantiza la separación de responsabilidades, extensibilidad y testabilidad unitaria aislada con JUnit 5:

1. Capa Presentación

Java Swing GUI / CLI

Vistas interactivas, renderizado de tablas, control de foco y formularios con validación reactiva.

2. Lógica de Negocio

Core Services & Rules

Motores de validación legal (LAU / IRAV), cálculo de rentas y algoritmos de balance financiero.

3. Seguridad & Datos

Crypto & Storage

Cifrado simétrico AES-256-GCM, derivación PBKDF2 y persistencia atómica estructurada.

4. Suite de Calidad

JUnit 5 Test Engine

Batería de pruebas automatizadas para asegurar cobertura de contratos, fechas y liquidaciones.

S

Situación

La administración de carteras inmobiliarias y el cumplimiento de leyes como la LAU o la Ley de Vivienda (Ley 12/2023) resultan muy complejos para propietarios y gestores. La falta de herramientas centralizadas intuitivas para visualizar balances de rentabilidad netos y gestionar la liquidación de suministros se suma a la dificultad de asegurar de manera estricta los límites del IRAV y las obligaciones fiscales y de depósitos del ICAVI.

T

Tarea

Desarrollar un MVP de consola en Java que automatizara el ciclo completo de gestión inmobiliaria: registro de propiedades, cálculo de liquidaciones mensuales, control de vencimientos de contrato y validación estricta de la normativa legal vigente (LAU, IRAV, ICAVI), aplicando Programación Orientada a Objetos (POO) y buenas prácticas de modularidad.

A

Acción

Para construir este proyecto apliqué los siguientes pilares de arquitectura:
1. Diseño Orientado a Objetos: Estructuré el sistema en clases especializadas (Propiedad, Contrato, Inquilino, Liquidación) con responsabilidades bien definidas, aprovechando herencia, encapsulamiento y polimorfismo.
2. Motor de Cumplimiento Legal: Implementé el ciclo de vida del contrato de alquiler bajo la LAU y Ley 12/2023 (duración, prórrogas automáticas, aviso de preaviso de vencimiento, límites IRAV por zonas tensionadas).
3. Fiscalidad y Finanzas: Integré un motor financiero con exención del IGIC (0%) para viviendas de alquiler habitual, alertas de depósitos en el ICAVI y cálculo de rentabilidad neta.
4. Flujo de Control Robusto: Diseñé la consola interactiva con validación de entradas, manejo de excepciones y estructuras de datos para garantizar la integridad del estado de la aplicación.
5. Control de Versiones: Gestioné el desarrollo con flujos estructurados en Git / GitHub con commits atómicos y mensajes descriptivos.

R

Resultado

Mitigué al 100% las desviaciones legales (LAU/IRAV/ICAVI) y reduje a 0 los errores críticos financieros mediante la refactorización y el diseño de una arquitectura modular basada en patrones de diseño orientados a objetos en Java, respaldada por pruebas automatizadas con JUnit 5 y control de versiones en Git.

🧪 Calidad de Código & Automatización (JUnit 5)

Para garantizar la estabilidad absoluta del núcleo financiero e inmobiliario, implementé una suite completa de pruebas unitarias automatizadas con JUnit 5. Esto me permite validar los flujos críticos del negocio en bloque con un solo clic:

  • Lógica Legal Dinámica: Verificación automática de la duración mínima estricta de contratos según el tipo de arrendador (5 años para personas físicas y 7 años para personas jurídicas bajo la LAU).
  • Flujos de Estado: Validación automatizada del ciclo de vida de los depósitos bancarios y estados de registro de fianzas.
  • Integridad de Datos: Control del formato algorítmico estricto en la asignación de identificadores únicos de contratos (formato CON-A-).

🤖 Aprendizaje & Uso Profesional de IA

Para la generación del instalador ejecutable (.exe) nativo para Windows y el armazón de configuración inicial del entorno de pruebas unitarias en JUnit 5, decidí apoyarme en herramientas de Inteligencia Artificial. En lugar de copiar código a ciegas, utilicé la IA como un tutor técnico para analizar la lógica de empaquetado con jpackage y el ciclo de vida de las aserciones de prueba (Assertions). Esto me ha permitido asentar bases metodológicas avanzadas de segundo año de DAM, utilizando la tecnología para acelerar el autoaprendizaje y optimizar el flujo de trabajo técnico.

🗺️ Estado y Hoja de Ruta del Proyecto

Planificación de la evolución incremental de este desarrollo.

Iteración 1: Lógica Inmobiliaria & CLI Completado (MVP Consola)

Desarrollo del MVP de consola con motor de validaciones LAU, cálculo de liquidaciones mensuales, gestión de contratos y consola interactiva aplicando POO y estructuras de datos.

Iteración 2: Interfaz Gráfica (GUI) & Despliegue Completado (v1.1.5 GUI)

Evolución hacia una interfaz de escritorio en Java Swing con tema visual Slate-Dark, motor de cumplimiento legal IRAV/ICAVI, adaptación fiscal canaria (IGIC) y distribución mediante instalador nativo para Windows (asistido por IA para el empaquetado con jpackage).

Iteración 3: Control de Calidad con JUnit 5 Completado

Diseño e implementación de una batería de pruebas unitarias automatizadas para asegurar la integridad de las reglas lógicas del negocio inmobiliario y mitigar regresiones en el código fuente.

Iteración 4: Persistencia SQL con SQLite Planteado

Migración de la serialización binaria de objetos hacia una base de datos local SQLite utilizando JDBC para un almacenamiento relacional robusto e histórico. Objetivo vinculado al temario de 2º de DAM.

¿Quieres desarrollar una solución robusta similar?

Me especializo en diseñar lógica limpia, modular y persistencia local eficiente. Cuéntame tu idea y garanticemos una entrega puntual.

Hablemos de tu proyecto