# RoadFY - Sistema de Gestión de Neumáticos

## Descripción

RoadFY es una aplicación web para la gestión y comparación de neumáticos, con funcionalidades para negocios y clientes.

## Características Principales

- ✅ **Gestión de Neumáticos**: Lista, búsqueda y detalles de neumáticos
- ✅ **Gestión de Negocios**: Lista y detalles de negocios de llantas
- ✅ **Autenticación**: Registro y login con username o email
- ✅ **Sistema de Favoritos**: Guardar neumáticos favoritos
- ✅ **Historial de Búsquedas**: Registro automático de búsquedas y visualizaciones
- ✅ **Alertas de Precio**: Notificaciones cuando cambian precios
- ✅ **Comparaciones Guardadas**: Guardar y compartir comparaciones
- ✅ **Solicitud de Negocios**: Sistema para que usuarios soliciten ser negocios

## Tecnologías

- **Backend**: Flask 3.0.0
- **Base de Datos**: MySQL (PyMySQL)
- **Autenticación**: Flask-JWT-Extended
- **Caching**: Flask-Caching
- **Rate Limiting**: Flask-Limiter
- **Python**: 3.12.x

## Instalación

### Requisitos

- Python 3.12.x
- MySQL 5.7+ o 8.0+
- pip

### Pasos

1. Clonar el repositorio
2. Instalar dependencias:
   ```bash
   py -3.12 -m pip install -r requirements.txt
   ```

3. Configurar base de datos:
   - Crear base de datos: `roadfy_db`
   - Ejecutar scripts SQL en `database/`:
     - `crear_tablas_prioridad_alta.sql`
     - `actualizar_tabla_usuarios.sql`
     - `optimizacion_indices.sql` (recomendado)

4. Configurar variables de entorno:
   ```bash
   cp config.local.example .env
   ```
   Editar `.env` con tus configuraciones.

5. Ejecutar servidor:
   ```bash
   py -3.12 run.py
   ```
   O usar:
   ```bash
   python run.py
   ```

## Uso

El servidor inicia en `http://localhost:8000`

### Endpoints Principales

- `GET /health` - Health check
- `GET /api` - Información de la API
- `POST /api/auth/register` - Registro de usuarios
- `POST /api/auth/login` - Login
- `GET /api/tires` - Lista de neumáticos
- `GET /api/businesses` - Lista de negocios
- `GET /api/favorites` - Favoritos (requiere autenticación)
- `GET /api/history` - Historial (requiere autenticación)

Ver documentación completa en `MEJORAS_RENDIMIENTO_Y_ESTABILIDAD.md`

## Pruebas

Ejecutar pruebas completas:
```bash
python test_all_endpoints.py
```

## Documentación

- `SETUP_LOCAL.md` - Configuración local detallada
- `MEJORAS_RENDIMIENTO_Y_ESTABILIDAD.md` - Mejoras de rendimiento implementadas
- `RESUMEN_PRUEBAS_FUNCIONALIDADES.md` - Resultados de pruebas

## Estructura del Proyecto

```
roadfy/
├── app/
│   ├── routers/       # Endpoints de la API
│   ├── utils/         # Utilidades (validators, serializers, logger)
│   ├── governance/    # Sistema de auditoría y versionado
│   └── static/        # Frontend (HTML, CSS, JS)
├── database/          # Scripts SQL
├── test_all_endpoints.py  # Script de pruebas
└── run.py            # Punto de entrada del servidor
```

## Licencia

Este proyecto es parte de un trabajo académico.
