Nincs leírás

latapp 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
auth 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
config 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
data 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
fudo 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
impresora 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
logs 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
models 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
public 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
routes 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
services 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
.env 00cea4a677 mejoras varias - diseño, conexion fudo, id interna 10 hónapja
.gitignore a1740506fc add token file to git ignore 10 hónapja
README.md 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
app.py 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
main.py 7f4d9225f4 megarefactor and redis incoporation 10 hónapja
requirements.txt a0fc3d992e fix compatibility 10 hónapja
users.json 702859b2b0 add user for tests 10 hónapja

README.md

Web Pedidos Klein - Backend

Estructura del Proyecto

El backend ha sido reorganizado para mejorar la mantenibilidad y seguir buenas prácticas de desarrollo. La nueva estructura es:

pedidos_express/
├── main.py                    # Punto de entrada principal
├── app.py                     # Configuración de la aplicación FastAPI
├── requirements.txt           # Dependencias
├── .env                       # Variables de entorno
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuración y variables de entorno
├── models/
│   ├── __init__.py
│   └── schemas.py            # Modelos Pydantic
├── auth/
│   ├── __init__.py
│   └── security.py           # Autenticación y seguridad
├── services/
│   ├── __init__.py
│   ├── data_service.py       # Manejo de datos (productos, usuarios)
│   ├── openai_service.py     # Servicio de OpenAI/ChatGPT
│   ├── email_service.py      # Servicio de envío de emails
│   ├── fudo_service.py       # Integración con Fudo
│   └── logging_service.py    # Logging de pedidos y respuestas
├── routes/
│   ├── __init__.py
│   ├── chat.py              # Endpoints del chat
│   ├── users.py             # Endpoints de usuarios
│   ├── products.py          # Endpoints de productos
│   ├── orders.py            # Endpoints de pedidos
│   └── static.py            # Archivos estáticos
├── impresora/               # Módulo de impresión (existente)
├── fudo/                    # Módulo Fudo (existente)
└── public/                  # Archivos estáticos frontend

Módulos

config/settings.py

  • Configuración de la aplicación
  • Variables de entorno
  • Validación de configuración

models/schemas.py

  • Modelos Pydantic para request/response
  • Validación de datos

auth/security.py

  • Middleware de autenticación
  • Generación de tokens anti-abuse
  • Protección de endpoints

services/

  • data_service.py: Carga y manejo de datos (productos, usuarios, datos del menú)
  • openai_service.py: Integración con OpenAI para el chatbot
  • email_service.py: Envío de notificaciones por email
  • fudo_service.py: Integración con el sistema Fudo
  • logging_service.py: Logging de pedidos y respuestas del LLM

routes/

  • chat.py: Endpoints relacionados con el chat (/api/chat/*)
  • users.py: Endpoints de usuarios (/api/existsUser)
  • products.py: Endpoints de productos (/api/get_products)
  • orders.py: Endpoints de pedidos (/api/printer/order)
  • static.py: Servir archivos estáticos

Ventajas de la Nueva Estructura

  1. Separación de responsabilidades: Cada módulo tiene una función específica
  2. Mantenibilidad: Código más fácil de mantener y modificar
  3. Testabilidad: Cada módulo puede ser probado independientemente
  4. Escalabilidad: Fácil agregar nuevas funcionalidades
  5. Legibilidad: Código más organizado y fácil de entender

Cómo Ejecutar

python main.py

Variables de Entorno Requeridas

OPENAI_API_KEY=tu_api_key_aqui
SECRET_KEY=tu_secret_key_para_sessions
PORT=6001

FUDO_API_KEY=tu_api_key_fudo
FUDO_API_SECRET=tu_api_secret_fudo