232 lines
4.9 KiB
Markdown
232 lines
4.9 KiB
Markdown
# Guía de Instalación y Ejecución - Paso a Paso
|
|
|
|
## Requisitos Previos
|
|
|
|
1. **Python 3.8+** instalado
|
|
2. **Node.js y npm** instalados (para Prisma CLI)
|
|
3. **PostgreSQL** instalado y corriendo
|
|
4. **OpenAI API Key** (para OCR)
|
|
|
|
## Paso 1: Instalar Dependencias Node.js
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
Esto instalará Prisma CLI necesario para gestionar la base de datos.
|
|
|
|
## Paso 2: Instalar Dependencias Python
|
|
|
|
```bash
|
|
pip install -r requirements_prisma.txt
|
|
```
|
|
|
|
## Paso 3: Configurar Base de Datos PostgreSQL
|
|
|
|
### Opción A: PostgreSQL local
|
|
|
|
1. Crear base de datos:
|
|
```sql
|
|
CREATE DATABASE pedidos_clientes;
|
|
```
|
|
|
|
2. O usar el usuario por defecto `postgres`
|
|
|
|
### Opción B: Docker (Recomendado)
|
|
|
|
```bash
|
|
docker-compose up -d db
|
|
```
|
|
|
|
Esto iniciará PostgreSQL en un contenedor Docker.
|
|
|
|
## Paso 4: Configurar Variables de Entorno
|
|
|
|
Crear archivo `.env` en la raíz del proyecto:
|
|
|
|
```env
|
|
# Base de datos
|
|
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/pedidos_clientes
|
|
|
|
# OpenAI API Key
|
|
OPENAI_API_KEY=tu-openai-api-key-aqui
|
|
|
|
# Opcional
|
|
DEBUG=True
|
|
```
|
|
|
|
**Importante:** Reemplaza `postgres:postgres` con tu usuario y contraseña de PostgreSQL.
|
|
|
|
## Paso 5: Generar Cliente Prisma
|
|
|
|
```bash
|
|
prisma generate
|
|
```
|
|
|
|
Esto generará el cliente Prisma Python que se usará en la aplicación.
|
|
|
|
## Paso 6: Crear Migraciones de Base de Datos
|
|
|
|
```bash
|
|
prisma migrate dev --name init
|
|
```
|
|
|
|
Esto creará todas las tablas en la base de datos según el schema de Prisma.
|
|
|
|
**Nota:** Si ya tienes datos, puedes usar `prisma db push` en lugar de migrate.
|
|
|
|
## Paso 7: Verificar Base de Datos (Opcional)
|
|
|
|
```bash
|
|
prisma studio
|
|
```
|
|
|
|
Esto abrirá una interfaz web para ver y gestionar la base de datos.
|
|
|
|
## Paso 8: Ejecutar Backend
|
|
|
|
En una terminal:
|
|
|
|
```bash
|
|
python run.py
|
|
```
|
|
|
|
O con uvicorn directamente:
|
|
|
|
```bash
|
|
uvicorn app.main:app --reload
|
|
```
|
|
|
|
El backend estará disponible en:
|
|
- **API:** http://localhost:8000
|
|
- **Documentación:** http://localhost:8000/docs
|
|
- **Health Check:** http://localhost:8000/health
|
|
|
|
## Paso 9: Configurar Frontend
|
|
|
|
Editar `frontend/js/config.js` y verificar que la URL de la API sea correcta:
|
|
|
|
```javascript
|
|
const API_CONFIG = {
|
|
BASE_URL: 'http://localhost:8000/api',
|
|
};
|
|
```
|
|
|
|
## Paso 10: Ejecutar Frontend
|
|
|
|
En otra terminal:
|
|
|
|
```bash
|
|
cd frontend
|
|
python -m http.server 3000
|
|
```
|
|
|
|
O con Node.js:
|
|
|
|
```bash
|
|
cd frontend
|
|
npx http-server -p 3000
|
|
```
|
|
|
|
El frontend estará disponible en:
|
|
- **Aplicación:** http://localhost:3000
|
|
|
|
## Verificación
|
|
|
|
1. Abre http://localhost:3000 en tu navegador
|
|
2. Deberías ver el Kanban (aunque esté vacío si no hay datos)
|
|
3. Abre http://localhost:8000/docs para ver la documentación de la API
|
|
4. Prueba hacer una petición GET a http://localhost:8000/api/kanban/
|
|
|
|
## Solución de Problemas
|
|
|
|
### Error: "No module named 'prisma'"
|
|
```bash
|
|
pip install prisma
|
|
```
|
|
|
|
### Error: "DATABASE_URL not found"
|
|
Verifica que el archivo `.env` existe y tiene la variable `DATABASE_URL`
|
|
|
|
### Error: "Connection refused" (PostgreSQL)
|
|
- Verifica que PostgreSQL esté corriendo
|
|
- Verifica las credenciales en `.env`
|
|
- Verifica que el puerto 5432 esté disponible
|
|
|
|
### Error: "prisma: command not found"
|
|
```bash
|
|
npm install
|
|
# O instalar Prisma globalmente:
|
|
npm install -g prisma
|
|
```
|
|
|
|
### Error CORS en el navegador
|
|
- Verifica que el backend esté corriendo en el puerto 8000
|
|
- Verifica la URL en `frontend/js/config.js`
|
|
- Revisa la consola del navegador para más detalles
|
|
|
|
### Frontend no carga
|
|
- Verifica que el servidor HTTP esté corriendo
|
|
- Abre la consola del navegador (F12) para ver errores
|
|
- Verifica que los archivos estén en `frontend/`
|
|
|
|
## Comandos Útiles
|
|
|
|
```bash
|
|
# Ver logs del backend
|
|
python run.py
|
|
|
|
# Regenerar cliente Prisma (si cambias el schema)
|
|
prisma generate
|
|
|
|
# Crear nueva migración
|
|
prisma migrate dev --name nombre_migracion
|
|
|
|
# Ver estado de migraciones
|
|
prisma migrate status
|
|
|
|
# Abrir Prisma Studio (GUI para BD)
|
|
prisma studio
|
|
|
|
# Verificar sintaxis del schema
|
|
prisma validate
|
|
```
|
|
|
|
## Estructura de Carpetas Importante
|
|
|
|
```
|
|
pedidosClientesAyutec/
|
|
├── .env # ⚠️ Crear este archivo con tus credenciales
|
|
├── app/ # Backend FastAPI
|
|
├── frontend/ # Frontend HTML/JS
|
|
├── prisma/
|
|
│ └── schema.prisma # Schema de base de datos
|
|
└── requirements_prisma.txt # Dependencias Python
|
|
```
|
|
|
|
## Próximos Pasos
|
|
|
|
1. **Crear datos de prueba:**
|
|
- Usa Prisma Studio para crear clientes y proveedores
|
|
- O crea un script de seeding
|
|
|
|
2. **Probar funcionalidades:**
|
|
- Subir un albarán desde el frontend
|
|
- Crear un pedido de cliente
|
|
- Ver el Kanban actualizarse
|
|
|
|
3. **Configurar producción:**
|
|
- Cambiar CORS a dominios específicos
|
|
- Configurar variables de entorno seguras
|
|
- Usar Gunicorn para el backend
|
|
- Servir frontend con Nginx
|
|
|
|
## ¿Necesitas Ayuda?
|
|
|
|
Si encuentras algún error, verifica:
|
|
1. Que todas las dependencias estén instaladas
|
|
2. Que PostgreSQL esté corriendo
|
|
3. Que el archivo `.env` esté configurado correctamente
|
|
4. Que los puertos 8000 y 3000 estén disponibles
|
|
|