136 lines
3.2 KiB
Markdown
136 lines
3.2 KiB
Markdown
# Sistema de Gestión de Pedidos de Recambios
|
|
|
|
Sistema Kanban visual para gestionar pedidos de recambios desde presupuesto hasta recepción, con procesamiento automático de documentos mediante OCR y seguimiento en tiempo real del estado de cada pedido.
|
|
|
|
**Arquitectura:** Backend FastAPI + Prisma ORM | Frontend HTML/CSS/JS separado
|
|
|
|
## Estructura del Proyecto
|
|
|
|
```
|
|
pedidosClientesAyutec/
|
|
├── app/ # Backend FastAPI
|
|
│ ├── main.py # Aplicación principal
|
|
│ ├── config.py # Configuración
|
|
│ ├── prisma_client.py # Cliente Prisma
|
|
│ ├── api/ # Endpoints API
|
|
│ ├── models/ # Modelos Pydantic
|
|
│ └── services/ # Lógica de negocio
|
|
├── frontend/ # Frontend separado
|
|
│ ├── index.html
|
|
│ ├── css/
|
|
│ └── js/
|
|
├── prisma/ # Schema Prisma
|
|
│ └── schema.prisma
|
|
└── requirements_prisma.txt
|
|
```
|
|
|
|
## Instalación
|
|
|
|
### Backend
|
|
|
|
1. **Instalar dependencias:**
|
|
```bash
|
|
npm install
|
|
pip install -r requirements_prisma.txt
|
|
```
|
|
|
|
2. **Configurar `.env`:**
|
|
```env
|
|
DATABASE_URL=postgresql://usuario:password@localhost:5432/pedidos_clientes
|
|
OPENAI_API_KEY=tu-api-key
|
|
```
|
|
|
|
3. **Generar cliente Prisma:**
|
|
```bash
|
|
prisma generate
|
|
```
|
|
|
|
4. **Crear migraciones:**
|
|
```bash
|
|
prisma migrate dev --name init
|
|
```
|
|
|
|
5. **Ejecutar backend:**
|
|
```bash
|
|
python run.py
|
|
# O
|
|
uvicorn app.main:app --reload
|
|
```
|
|
|
|
Backend disponible en: http://localhost:8000
|
|
API Docs: http://localhost:8000/docs
|
|
|
|
### Frontend
|
|
|
|
1. **Configurar API URL en `frontend/js/config.js`:**
|
|
```javascript
|
|
const API_CONFIG = {
|
|
BASE_URL: 'http://localhost:8000/api',
|
|
};
|
|
```
|
|
|
|
2. **Ejecutar servidor HTTP:**
|
|
```bash
|
|
cd frontend
|
|
python -m http.server 3000
|
|
```
|
|
|
|
Frontend disponible en: http://localhost:3000
|
|
|
|
## Características
|
|
|
|
- ✅ **Vista Kanban**: Visualización de pedidos por estados
|
|
- ✅ **Procesamiento OCR**: Extracción automática de datos con GPT-4 Vision
|
|
- ✅ **Gestión de Stock**: Marcado manual de referencias en stock
|
|
- ✅ **Pedidos a Proveedor**: Creación manual y automática
|
|
- ✅ **Vista por Proveedor**: Referencias pendientes por proveedor
|
|
- ✅ **Gestión de Devoluciones**: Registro y seguimiento
|
|
- ✅ **Alertas**: Notificaciones para pedidos urgentes
|
|
- ✅ **Upload Móvil**: Interfaz para subir albaranes
|
|
|
|
## API Endpoints
|
|
|
|
- `GET /api/clientes` - Listar clientes
|
|
- `GET /api/pedidos-cliente` - Listar pedidos
|
|
- `GET /api/kanban` - Datos del Kanban
|
|
- `GET /api/alertas` - Alertas de pedidos urgentes
|
|
- `POST /api/albaranes/upload` - Subir albarán
|
|
- `GET /docs` - Documentación Swagger
|
|
|
|
## Desarrollo
|
|
|
|
### Backend
|
|
```bash
|
|
# Ver logs
|
|
uvicorn app.main:app --reload --log-level debug
|
|
|
|
# Prisma Studio (GUI para BD)
|
|
prisma studio
|
|
```
|
|
|
|
### Frontend
|
|
```bash
|
|
# Servidor de desarrollo
|
|
cd frontend
|
|
python -m http.server 3000
|
|
```
|
|
|
|
## Producción
|
|
|
|
### Backend
|
|
- Usar Gunicorn o similar
|
|
- Configurar Nginx como reverse proxy
|
|
- Configurar CORS para dominios específicos
|
|
- Variables de entorno seguras
|
|
|
|
### Frontend
|
|
- Servir con Nginx
|
|
- O usar un CDN
|
|
- Configurar CORS en backend
|
|
|
|
## Documentación
|
|
|
|
- `README_PRISMA.md` - Documentación de Prisma
|
|
- `MIGRATION_GUIDE.md` - Guía de migración
|
|
- `frontend/README.md` - Documentación del frontend
|