# 🏠 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) ```sql -- 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) - [x] **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 1. **Clonar el repositorio:** ```bash git clone https://github.com/tu-usuario/alquiler-facil.git cd alquiler-facil ``` 2. **Configurar la base de datos:** * Crea una base de datos local llamada `alquiler_facil_db`. * Importa el esquema SQL provisto en `database/schema.sql`. 3. **Variables de Entorno (`.env`):** * Copia el archivo de ejemplo y ajusta las credenciales: ```bash cp .env.example .env ``` * Modifica los accesos a la base de datos y las claves API (Stripe, Signaturit). 4. **Ejecutar el servidor local:** ```bash 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.