Bez popisu

latapp 484693b6b4 structure db před 10 měsíci
auth 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
config 484693b6b4 structure db před 10 měsíci
data 2827c6c9d3 dev basic storage functions před 10 měsíci
fudo 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
impresora 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
logs 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
models 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
public 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
routes 484693b6b4 structure db před 10 měsíci
services 484693b6b4 structure db před 10 měsíci
.env 00cea4a677 mejoras varias - diseño, conexion fudo, id interna před 10 měsíci
.gitignore a1740506fc add token file to git ignore před 10 měsíci
README.md 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
app.py 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
main.py 7f4d9225f4 megarefactor and redis incoporation před 10 měsíci
requirements.txt a0fc3d992e fix compatibility před 10 měsíci
users.json 702859b2b0 add user for tests před 10 měsíci

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