# 📄 Motores Argentinos V2 - Plataforma de Clasificados de Vehículos ![Build Status](https://img.shields.io/badge/Build-Passing-brightgreen) ![Platform](https://img.shields.io/badge/Platform-Docker-blue) ![Backend](https://img.shields.io/badge/.NET-10.0-purple) ![Frontend](https://img.shields.io/badge/React-19-cyan) Ecosistema digital completo para la publicación, búsqueda y gestión de avisos de compra-venta de autos y motos. Este proyecto representa la **modernización integral** del sistema legacy, optimizado para alto rendimiento, responsividad móvil y una experiencia de usuario premium con arquitectura orientada a servicios y contenedores. --- ## 🚀 Características Principales * **Exploración Inteligente:** Motor de búsqueda avanzado con filtros dinámicos por marca, modelo, versión, año, precio, combustible y ubicación. * **Panel de Moderación Unificado:** Interfaz para administradores que permite moderar avisos, chatear en tiempo real con vendedores y corregir datos técnicos desde una sola vista. * **Gestión Multimedia Optimizada:** Sistema de carga de imágenes con generación automática de thumbnails y visualización adaptada (aspect ratio 4:3) para evitar recortes en dispositivos móviles. * **Pagos Integrados:** Integración completa con **Mercado Pago** para la activación de avisos. * **Soporte Multivehículo:** Lógica diferenciada para Automóviles y Motocicletas (segmentos, transmisiones y atributos específicos). * **Seguridad y SEO:** Autenticación robusta via JWT, rutas protegidas, y estructura HTML semántica optimizada para motores de búsqueda. --- ## 🛠️ Stack Tecnológico ### Backend (`/Backend`) * **Framework:** .NET 10.0 (C#) * **Arquitectura:** Web API con Inyección de Dependencias. * **Base de Datos:** SQL Server - Soporte multi-db (MotoresV2, Legacy Internet). * **Seguridad:** Autenticación JWT y políticas de CORS dinámicas. ### Frontend (`/Frontend`) * **Framework:** React 19 + TypeScript. * **Build Tool:** Vite. * **Estilos:** Tailwind CSS (Diseño Glassmorphism & Dark Mode). * **Iconografía:** React Icons (FontAwesome). ### Infraestructura * **Docker:** Orquestación completa con Docker Compose. * **Gateway Unificado:** Nginx configurado como Reverse Proxy interno para centralizar Web, API y carga de imágenes en un solo puerto seguro. --- ## 📦 Instalación y Despliegue ### Prerrequisitos * Docker y Docker Compose. * Instancia de SQL Server accesible desde la red de Docker. ### 1. Clonar el Repositorio ```bash git clone https://repo.eldiaservicios.com/dmolinari/MotoresArgentinosV2.git cd MotoresArgentinosV2 ``` ### 2. Configuración de Entorno (.env) El sistema utiliza archivos `.env` en las carpetas de Backend y Frontend para configuración local, pero el despliegue principal se controla desde `docker-compose.yml`. **Variables Críticas:** * `ConnectionStrings__MotoresV2`: Base de datos principal. * `AppSettings__FrontendUrl`: URL(s) permitidas para acceso (soporta IP y dominio). * `VITE_MP_PUBLIC_KEY`: Clave pública de Mercado Pago para el frontend. ### 3. Ejecutar con Docker Compose ```bash docker-compose up -d --build ``` El sistema estará disponible en el puerto **8086** (configurado para no colisionar con otros servicios del stack). --- ## ⚙️ Arquitectura de Red (Gateway) Para simplificar el despliegue y mejorar la seguridad, el sistema utiliza un **Proxy Inverso interno**: | Ruta Externa | Destino Interno | Función | | :--- | :--- | :--- | | `/` | `motores-frontend:80` | Aplicación React (SPA) | | `/api/` | `motores-backend:8080/api/` | Endpoints de la API .NET | | `/uploads/` | `motores-backend:8080/uploads/` | Imágenes de vehículos | --- ## 📂 Estructura del Proyecto * **`/Backend`**: Solución .NET con proyectos de Core (Dominio), Infrastructure (Datos/Servicios) y API (Endpoints). * **`/Frontend`**: Código fuente de la interfaz React, componentes reutilizables y estilos. * **`/MigrationTool`**: Herramientas para la sincronización de datos con el sistema legacy. --- ## 👨‍💻 Desarrollo Local **Backend:** ```bash cd Backend/MotoresArgentinosV2.API dotnet run ``` **Frontend:** ```bash cd Frontend npm install npm run dev ``` --- ## 🛠️ Notas Técnicas y Fixes Recientes * **Responsive Images:** Se implementó `object-contain` sobre fondo oscuro para asegurar que unidades como motos se vean completas en móviles. * **Doble Mundo:** El sistema soporta simultáneamente acceso por IP de pruebas y dominio de producción mediante configuración flexible de CORS. * **0 KM Support:** Se habilitó la validación y visualización específica para vehículos sin rodaje (0 KM / Año 0).