2026-03-14 18:06:38 -05:00
2026-05-10 20:53:23 -05:00
2025-01-11 19:21:00 -05:00
2025-02-08 14:58:11 -05:00

Don Confiao Backend - Tienda Ilusion

Backend Django con Django REST Framework para el sistema de punto de venta Tienda Ilusion.

Características

  • 🔐 Autenticación JWT con djangorestframework-simplejwt
  • 🗄️ Soporte multi-ambiente (desarrollo/producción)
  • 🐘 PostgreSQL para producción, SQLite para desarrollo
  • 🔄 Integración con Tryton ERP
  • 📦 Docker Compose para fácil deployment
  • 🛡️ Configuración de seguridad completa para producción
  • 📊 API REST completa para gestión de ventas, productos y clientes

Requisitos Previos

  • Docker & Docker Compose
  • Python 3.11+ (para desarrollo local sin Docker)
  • Git

Inicio Rápido

Desarrollo Local

  1. Clonar el repositorio

    git clone <repository-url>
    cd don_confiao_backend
    
  2. Iniciar servicios de desarrollo

    docker-compose -f docker-compose.dev.yml up
    
  3. Aplicar migraciones

    docker-compose -f docker-compose.dev.yml run --rm django python manage.py migrate
    
  4. Crear superusuario

    docker-compose -f docker-compose.dev.yml run --rm django python manage.py createsuperuser
    
  5. Acceder a la aplicación

Producción

  1. Configurar variables de entorno

    cp .env.production.example .env.production
    # Editar .env.production con valores reales
    
  2. Generar SECRET_KEY segura

    python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
    
  3. Iniciar servicios

    docker-compose -f docker-compose.prod.yml up -d
    
  4. Las migraciones y collectstatic se ejecutan automáticamente

    • Si necesitas ejecutarlas manualmente:
    docker-compose -f docker-compose.prod.yml exec django python manage.py migrate
    docker-compose -f docker-compose.prod.yml exec django python manage.py collectstatic --noinput
    
  5. Crear superusuario

    docker-compose -f docker-compose.prod.yml exec django python manage.py createsuperuser
    

Estructura del Proyecto

don_confiao_backend/
├── tienda_ilusion/           # Proyecto Django
│   ├── config/               # Configuración principal
│   │   └── settings/         # Settings por ambiente
│   │       ├── base.py       # Configuración compartida
│   │       ├── development.py # Desarrollo
│   │       └── production.py # Producción
│   ├── don_confiao/          # App principal
│   └── users/                # App de usuarios
├── scripts/                  # Scripts de utilidad
│   ├── health-check.sh       # Verificación de salud
│   ├── backup-db.sh          # Backup de base de datos
│   └── restore-backup.sh     # Restore de backup
├── docker-compose.dev.yml    # Docker Compose desarrollo
├── docker-compose.prod.yml   # Docker Compose producción
└── requirements.txt          # Dependencias Python

Ambientes

Development

  • Base de datos: SQLite
  • Debug: Habilitado
  • CORS: Permisivo
  • Server: Django development server
  • Puerto: 7000

Production

  • Base de datos: PostgreSQL
  • Debug: Deshabilitado
  • CORS: Configurado por dominio
  • Server: Gunicorn (4 workers)
  • Puerto: 8000
  • Seguridad: HTTPS, HSTS, secure cookies

Comandos Útiles

Desarrollo

# Ejecutar tests
docker-compose -f docker-compose.dev.yml run --rm django python manage.py test

# Shell de Django
docker-compose -f docker-compose.dev.yml run --rm django python manage.py shell

# Crear migraciones
docker-compose -f docker-compose.dev.yml run --rm django python manage.py makemigrations

# Ver logs
docker-compose -f docker-compose.dev.yml logs -f

Producción

# Ver logs
docker-compose -f docker-compose.prod.yml logs -f django

# Backup de base de datos
./scripts/backup-db.sh

# Restore de backup
./scripts/restore-backup.sh backups/tienda_ilusion_backup_YYYYMMDD_HHMMSS.sql.gz

# Health check
./scripts/health-check.sh prod

# Reiniciar servicios
docker-compose -f docker-compose.prod.yml restart

# Detener servicios
docker-compose -f docker-compose.prod.yml down

API Endpoints

La API REST está disponible en /api/. Principales endpoints:

  • /api/token/ - Obtener token JWT
  • /api/token/refresh/ - Refrescar token JWT
  • /api/customers/ - Gestión de clientes
  • /api/products/ - Gestión de productos
  • /api/sales/ - Gestión de ventas
  • /admin/ - Panel de administración Django

Integración con Tryton ERP

El sistema se integra con Tryton ERP para sincronización de:

  • Clientes
  • Productos
  • Ventas

Configurar las variables de entorno de Tryton en .env.development o .env.production:

TRYTON_HOST=your-tryton-server
TRYTON_DATABASE=your-database
TRYTON_USERNAME=your-username
TRYTON_PASSWORD=your-password

Backup y Restore

Crear Backup

./scripts/backup-db.sh

Los backups se guardan en backups/ y se mantienen por 7 días.

Restaurar Backup

./scripts/restore-backup.sh backups/backup_file.sql.gz

Troubleshooting

Ver la sección de Troubleshooting en AGENTS.md para soluciones a problemas comunes.

Problemas Comunes

  1. Error de conexión a base de datos: Verificar que PostgreSQL esté corriendo
  2. CSRF errors: Verificar CSRF_TRUSTED_ORIGINS en .env.production
  3. Static files no cargan: Ejecutar collectstatic
  4. Errores de migración: Verificar estado con showmigrations

Seguridad

Checklist de Producción

Antes de desplegar a producción:

  • DEBUG=False en .env.production
  • SECRET_KEY única y segura generada
  • ALLOWED_HOSTS configurado correctamente
  • CORS_ALLOWED_ORIGINS limitado a dominios confiables
  • Contraseñas de base de datos seguras
  • HTTPS habilitado con certificados SSL/TLS válidos
  • Firewall configurado
  • Backups automáticos configurados
  • Monitoreo de logs configurado

Desarrollo

Agregar nuevas dependencias

# Agregar a requirements.txt
echo "nueva-dependencia==version" >> requirements.txt

# Reconstruir contenedor
docker-compose -f docker-compose.dev.yml build --no-cache

Tests

# Ejecutar todos los tests
docker-compose -f docker-compose.dev.yml run --rm django python manage.py test

# Ejecutar tests de una app específica
docker-compose -f docker-compose.dev.yml run --rm django python manage.py test don_confiao

# Con coverage
docker-compose -f docker-compose.dev.yml run --rm django coverage run --source='.' manage.py test
docker-compose -f docker-compose.dev.yml run --rm django coverage report

Contribuir

  1. Fork el proyecto
  2. Crear branch de feature (git checkout -b feature/AmazingFeature)
  3. Commit cambios (git commit -m 'Add some AmazingFeature')
  4. Push al branch (git push origin feature/AmazingFeature)
  5. Abrir Pull Request

Licencia

[Especificar licencia]

Contacto

[Información de contacto]

Documentación Adicional

Description
No description provided
Readme 1 MiB
Languages
Python 91.4%
JavaScript 3.5%
HTML 3.4%
Ruby 1.2%
CSS 0.4%