Init Commit

This commit is contained in:
2026-01-29 13:43:44 -03:00
commit b9aa8478db
126 changed files with 20649 additions and 0 deletions

111
README.md Normal file
View File

@@ -0,0 +1,111 @@
# 📄 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).