4.0 KiB
4.0 KiB
Don Confiao Backend - Contexto del Proyecto
Tipo de Proyecto
Backend Django con Django REST Framework
Estructura del Proyecto
don_confiao_backend/
├── requirements.txt # Dependencias Python
├── docker-compose.yml # Configuración Docker
├── django.Dockerfile # Dockerfile Django
├── .env # Variables de entorno
├── .env_example # Ejemplo de variables de entorno
├── README.rst # Documentación básica
├── Rakefile # Tareas rake
├── doc/ # Documentación adicional
│ └── requests.org
└── tienda_ilusion/ # Proyecto Django
├── manage.py
├── db.sqlite3 # Base de datos SQLite
├── don_confiao/ # App principal
│ ├── models.py # Modelos: Customer, Product, Sale, SaleLine, Payment, ReconciliationJar, AdminCode
│ ├── views.py
│ ├── api_views.py
│ ├── serializers.py
│ ├── forms.py
│ ├── admin.py
│ ├── urls.py
│ ├── export_csv.py
│ ├── tests/ # Tests
│ └── migrations/
├── users/ # App de usuarios
│ ├── models.py
│ ├── views.py
│ ├── serializers.py
│ ├── urls.py
│ └── tests/
└── tienda_ilusion/ # Configuración Django
├── settings.py
├── urls.py
├── wsgi.py
└── asgi.py
Dependencias Principales
- Django==5.0.6
- djangorestframework
- django-cors-headers
- djangorestframework-simplejwt
- sabatron-tryton-rpc-client==7.4.0 (integración con Tryton ERP)
Modelos Principales (don_confiao/models.py)
- Customer: Clientes (name, address, email, phone, external_id)
- Product: Productos (name, price, measuring_unit, categories)
- ProductCategory: Categorías de productos
- Sale: Ventas (customer, date, phone, description, payment_method, reconciliation)
- SaleLine: Líneas de venta (sale, product, quantity, unit_price, description)
- Payment: Pagos (date_time, type_payment, amount, reconciliation_jar)
- PaymentSale: Relación muchos a muchos entre Payment y Sale
- ReconciliationJar: Arqueo de caja (is_valid, date_time, reconcilier, cash_taken, cash_discrepancy)
- AdminCode: Códigos de administrador
Autenticación
- JWT con djangorestframework-simplejwt
- ACCESS_TOKEN_LIFETIME: 30 minutos
- REFRESH_TOKEN_LIFETIME: 1 día
API Endpoints
- REST API en don_confiao/api_views.py y users/
- URLs en don_confiao/urls.py y users/urls.py
Ejecución con Docker Compose
El proyecto se ejecuta con docker-compose. Todos los comandos manage.py deben ejecutarse dentro del contenedor:
# Ejecutar tests
docker-compose run --rm django python manage.py test
# Migraciones
docker-compose run --rm django python manage.py makemigrations
docker-compose run --rm django python manage.py migrate
# Servidor desarrollo
docker-compose up
# Shell Django
docker-compose run --rm django python manage.py shell
# Crear superuser
docker-compose run --rm django python manage.py createsuperuser
Nota: El volumen monta tienda_ilusion/ en /app/, por lo que el path correcto es python manage.py (no python tienda_ilusion/manage.py).
Tests
- Framework: Django unittest
- Directorio: don_confiao/tests/
- Ejecutar:
docker-compose run --rm django python manage.py test
Comandos Útiles (dentro del contenedor)
- Migraciones:
docker-compose run --rm django python manage.py makemigrations && docker-compose run --rm django python manage.py migrate - Servidor desarrollo:
docker-compose up - Shell Django:
docker-compose run --rm django python manage.py shell - Superuser:
docker-compose run --rm django python manage.py createsuperuser
Integraciones
- Tryton ERP: Integración mediante sabatron-tryton-rpc-client para sincronización de clientes, productos y ventas