|
|
||
|---|---|---|
| css | ||
| images | ||
| sql | ||
| README.md | ||
| index.html | ||
README.md
🏠 AlquilerFácil (PropTech Platform)
Plataforma integral para la gestión simplificada de alquileres residenciales en España.
Automatiza contratos legalmente válidos, cobro de rentas, scoring de inquilinos, contabilidad fiscal (IRPF) y marketplace de profesionales del hogar.
📌 Visión del Proyecto
AlquilerFácil nace con el objetivo de digitalizar y desburocratizar el proceso de alquiler de viviendas. Conectamos a propietarios, inquilinos y profesionales del mantenimiento en un único ecosistema seguro, reduciendo impagos, optimizando la rentabilidad y simplificando las obligaciones fiscales en España.
✨ Características Principales
👤 Para Inquilinos
- Tenant Passport & Scoring Automated: Evaluación de solvencia basada en ratio de esfuerzo, estabilidad laboral y perfil (convivientes, mascotas).
- Firma Digital Directa: Firma de contratos de arrendamiento online con validez legal (eIDAS).
- Pagos Recurrentes: Suministro e historial de recibos de alquiler centralizados.
🏢 Para Propietarios
- Gestión Integrada de Inmuebles: Ficha completa con referencia catastral, suministros (CUPS Luz/Gas), IBI y gastos de comunidad.
- Cobros Automatizados & Split: Cobro mensual con retención automática de comisión mediante pasarela de pago.
- Módulo Fiscal (IRPF / Renta): Cálculo de rentabilidad neta (ROI) y exportación de datos anuales desglosados en casillas de la Agencia Tributaria (AEAT).
- Gestión de Incidencias: Solicitud directa de presupuestos y reparación a técnicos homologados.
🛠️ Para Profesionales y Manitas
- Marketplace de Reparaciones: Oferta de servicios (pintura, electricidad, fontanería, cerrajería).
- Facturación in-App: Emisión de presupuestos y facturas en la plataforma con división transparente de comisiones.
🛠️ Stack Tecnológico
| Capa | Tecnología | Descripción |
|---|---|---|
| Backend | PHP 8.x (Laravel / Custom MVC) | Lógica de negocio, autenticación, API REST y motores de cálculo. |
| Database | MySQL 8.0 | Modelo relacional para usuarios, inmuebles, finanzas y contratos. |
| Frontend | HTML5, CSS3 (Tailwind CSS / Bootstrap), JavaScript (ES6+) | Interfaces dinámicas, paneles de control y formularios de scoring. |
| Integraciones | Stripe Connect API | Procesamiento de pagos, suscripciones y split de comisiones. |
| Firma Digital | Signaturit / DocuSign API | Firma electrónica avanzada en conformidad con eIDAS. |
| Herramientas/Scripts | Python (BeautifulSoup / Scrapy) | Scripts auxiliares de análisis de mercado y agregación de datos. |
🗄️ Esquema Inicial de Base de Datos (MySQL)
-- 1. Usuarios y Perfiles
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
role ENUM('propietario', 'inquilino', 'profesional') NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE tenant_profiles (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
ingresos_mensuales DECIMAL(10,2) NOT NULL,
tipo_contrato ENUM('indefinido', 'temporal', 'autonomo') NOT NULL,
tiene_mascotas BOOLEAN DEFAULT FALSE,
num_convivientes INT DEFAULT 1,
score_calculado INT DEFAULT 0,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE
);
-- 2. Inmuebles y Contratos
CREATE TABLE properties (
id INT AUTO_INCREMENT PRIMARY KEY,
owner_id INT NOT NULL,
direccion VARCHAR(255) NOT NULL,
ref_catastral VARCHAR(20) UNIQUE,
cups_luz VARCHAR(22),
cups_gas VARCHAR(22),
ibi_anual DECIMAL(10,2) DEFAULT 0.00,
comunidad_mes DECIMAL(10,2) DEFAULT 0.00,
FOREIGN KEY (owner_id) REFERENCES users(id) ON DELETE CASCADE
);
CREATE TABLE leases (
id INT AUTO_INCREMENT PRIMARY KEY,
property_id INT NOT NULL,
tenant_id INT NOT NULL,
precio_alquiler DECIMAL(10,2) NOT NULL,
dia_cobro TINYINT DEFAULT 1,
fecha_inicio DATE NOT NULL,
fecha_fin DATE NOT NULL,
estado ENUM('borrador', 'firmado', 'activo', 'finalizado') DEFAULT 'borrador',
FOREIGN KEY (property_id) REFERENCES properties(id),
FOREIGN KEY (tenant_id) REFERENCES users(id)
);
-- 3. Transacciones y Finanzas
CREATE TABLE transactions (
id INT AUTO_INCREMENT PRIMARY KEY,
lease_id INT,
property_id INT NOT NULL,
tipo ENUM('alquiler', 'servicio_reparacion', 'gasto_deducible') NOT NULL,
concepto VARCHAR(255) NOT NULL,
monto_total DECIMAL(10,2) NOT NULL,
comision_plataforma DECIMAL(10,2) DEFAULT 0.00,
stripe_payment_id VARCHAR(100),
estado_pago ENUM('pendiente', 'completado', 'fallido') DEFAULT 'pendiente',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (property_id) REFERENCES properties(id)
);
-- 4. Marketplace de Servicios
CREATE TABLE service_requests (
id INT AUTO_INCREMENT PRIMARY KEY,
property_id INT NOT NULL,
professional_id INT,
descripcion TEXT NOT NULL,
monto_presupuesto DECIMAL(10,2),
estado ENUM('solicitado', 'aceptado', 'pagado', 'completado') DEFAULT 'solicitado',
FOREIGN KEY (property_id) REFERENCES properties(id),
FOREIGN KEY (professional_id) REFERENCES users(id)
);
🚀 Hoja de Ruta (Roadmap)
- Fase 0: Definición del alcance, modelo de negocio y arquitectura inicial.
- Fase 1 (MVP Inmuebles & Contratos):
- Sistema de autenticación de usuarios.
- Generador dinámico de contratos de arrendamiento según LAU en PDF.
- Integración con Stripe Connect para cobros automatizados.
- Fase 2 (Inquilino & Scoring):
- Algoritmo de scoring de solvencia para inquilinos.
- Integración de firma digital eIDAS (Signaturit API).
- Fase 3 (Fiscalidad & Propietario):
- Dashboard de rentabilidad neta (gastos, ingresos, IBI).
- Exportador de datos fiscales para la Declaración de la Renta (AEAT).
- Fase 4 (Marketplace de Mantenimiento):
- Módulo para técnicos y profesionales.
- Flujo de presupuestos, aprobación y facturación in-app.
⚙️ Instalación Local (Entorno de Desarrollo)
Requisitos previos
- PHP >= 8.1
- MySQL Server >= 8.0
- Composer
- Servidor web local (Apache/Nginx o XAMPP/MAMP)
Pasos de configuración
-
Clonar el repositorio:
git clone https://github.com/tu-usuario/alquiler-facil.git cd alquiler-facil -
Configurar la base de datos:
- Crea una base de datos local llamada
alquiler_facil_db. - Importa el esquema SQL provisto en
database/schema.sql.
- Crea una base de datos local llamada
-
Variables de Entorno (
.env):- Copia el archivo de ejemplo y ajusta las credenciales:
cp .env.example .env- Modifica los accesos a la base de datos y las claves API (Stripe, Signaturit).
-
Ejecutar el servidor local:
php -S localhost:8000 -t public/
⚖️ Aspectos Legales y Normativa en España
Este proyecto contempla el cumplimiento de:
- Ley de Arrendamientos Urbanos (LAU): Cláusulas contractuales estandarizadas.
- Reglamento General de Protección de Datos (RGPD): Encriptación de datos sensibles y cumplimiento normativo.
- Reglamento eIDAS: Firma electrónica avanzada para la validez legal de contratos.
- Depósito de Fianzas (Comunidad de Madrid / IVIMA): Guías y flujos integrados para la gestión de fianzas públicas.
📄 Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más información.