111 lines
4.6 KiB
Markdown
111 lines
4.6 KiB
Markdown
# 📄 Motores Argentinos V2 - Plataforma de Clasificados de Vehículos
|
|
|
|

|
|

|
|

|
|

|
|
|
|
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). |