Initial commit
This commit is contained in:
135
README.md
Normal file
135
README.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user