Brak opisu

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

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