Sen descrición

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

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