Không có mô tả

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

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