Saltar a contenido

Stack Tecnológico

Esta página detalla todas las tecnologías, frameworks y librerías utilizadas en el Sistema A3.

Backend

Framework Principal

Django 3.2 - Framework web de alto nivel en Python - ORM robusto para PostgreSQL - Sistema de admin incluido - Seguridad incorporada - Documentación

API REST

Django REST Framework 3.14.0 - Serialización de datos - ViewSets y Routers - Autenticación y permisos - Browsable API - Documentación

drf-yasg 1.21.7 - Generación automática de docs Swagger/OpenAPI - UI interactiva para probar endpoints - Documentación

Base de Datos

PostgreSQL 12.3+ - RDBMS robusto y escalable - Soporte para JSON fields - Índices avanzados - ACID compliant - Documentación

psycopg2 2.9.10 - Adaptador PostgreSQL para Python - Alto rendimiento - Thread-safe

Servidor de Aplicación

Gunicorn 20.0.4 - WSGI HTTP Server para Python - Pre-fork worker model - Usado en producción (Heroku) - Documentación

WhiteNoise 5.2.0 - Servir archivos estáticos eficientemente - Compresión automática (gzip, Brotli) - Caché headers - Documentación

Almacenamiento

django-storages 1.12.3 - Backends de almacenamiento - Integración con AWS S3 - Documentación

boto3 1.29.4 - AWS SDK para Python - Acceso a S3, EC2, etc. - Documentación

Procesamiento de Archivos

Pillow 9.3.0 - Procesamiento de imágenes - Redimensionamiento y compresión - Soporte para múltiples formatos - Documentación

pdf2image 1.17.0 - Conversión de PDF a imágenes - Basado en poppler

PyPDF2 3.0.1 - Manipulación de archivos PDF - Lectura y escritura

Generación de Reportes

ReportLab 3.6.9 - Generación de PDFs programáticamente - Documentación

WeasyPrint 53.3 - HTML/CSS a PDF - Útil para reportes complejos - Documentación

XlsxWriter 3.0.1 - Generación de archivos Excel - Soporte para gráficas y formatos - Documentación

openpyxl 3.1.5 - Lectura y escritura de Excel - Soporte para xlsx

Notificaciones

django-notifications-hq 1.6.0 - Sistema de notificaciones in-app - Modelo genérico para notificaciones - Documentación

pywebpush 1.14.0 - Web Push Notifications - Protocolo VAPID - Soporte para múltiples navegadores - Documentación

Extensiones de Django

django-model-utils 4.1.1 - Utilidades para modelos - TimeStampedModel, StatusModel - Documentación

django-better-admin-arrayfield 1.4.2 - Mejora campos ArrayField en admin - Documentación

django-filter 23.4 - Filtrado de querysets - Integración con DRF - Documentación

django-cors-headers 4.3.1 - Manejo de CORS - Documentación

django-taggit 2.0.0 - Sistema de etiquetas - Documentación

django-cache-memoize 0.1.10 - Memoización con Django cache - Documentación

Deployment

django-heroku 0.3.1 - Configuración automática para Heroku - Manejo de DATABASE_URL - Documentación

dj-database-url 0.5.0 - Parsing de DATABASE_URL - Documentación

Utilidades

python-dotenv 0.15.0 - Cargar variables de entorno desde .env - Documentación

requests 2.31.0 - Cliente HTTP para Python - Usado para SAP API - Documentación

python-dateutil 2.8.2 - Extensiones de fecha/hora - Parsing de fechas

pytz 2021.1 - Zonas horarias - Timezone aware datetimes

Procesamiento de Datos

numpy 2.2.1 - Computación numérica - Arrays multidimensionales - Documentación

pandas 2.2.3 - Análisis de datos - DataFrames - Documentación

Testing

pytest 7.0.1 - Framework de testing - Más potente que unittest - Documentación

pytest-django 4.5.2 - Plugin de pytest para Django - Fixtures para testing - Documentación

model-bakery 1.4.0 - Factory para crear modelos de prueba - Documentación

coverage 6.3.1 - Medición de cobertura de tests - Documentación

responses 0.18.0 - Mock de requests HTTP - Documentación

Code Quality

black 22.1.0 - Formateador de código Python - Estilo consistente - Documentación

isort 5.10.1 - Ordenador de imports - Documentación

Frontend

Framework/Librería Principal

jQuery - Manipulación del DOM - AJAX requests - Event handling - Documentación

UI Framework

Bootstrap - Framework CSS responsive - Componentes pre-construidos - Grid system - Documentación

Visualización de Datos

Chart.js - Gráficas y visualizaciones - Canvas-based - Documentación

Componentes UI

smooth-scrollbar - Scrollbar personalizado - Documentación

PDF.js (Mozilla) - Visualizador de PDFs en el navegador - Documentación

Fuentes

Google Fonts: Lato - Fuente principal del sistema - Google Fonts

Otros

HTML5 - Estructura semántica - APIs modernas

CSS3 - Estilos avanzados - Animaciones y transitions - Flexbox y Grid

JavaScript ES6+ - Sintaxis moderna - Promises y async/await

Infraestructura

Hosting

Heroku - Platform as a Service (PaaS) - Auto-scaling - Managed PostgreSQL - Documentación

Storage

AWS S3 - Object storage - CDN integration - 99.999999999% durabilidad - Documentación

Base de Datos

Heroku Postgres - PostgreSQL managed - Backups automáticos - High availability options - Documentación

Scheduler

Heroku Scheduler - Cron jobs - Tareas programadas - Documentación

Integraciones Externas

SAP HANA API

Tecnología: ASP.NET Web API 2 (C#) Protocolo: HTTP/REST Formato: JSON URL: http://atercerosb1.ddns.net

Web Push

Protocolo: Web Push Protocol Estándar: RFC 8030 Autenticación: VAPID (RFC 8292)

Herramientas de Desarrollo

Version Control

Git - Control de versiones - GitHub como repositorio remoto

IDE Recomendados

  • VS Code con extensiones Python
  • PyCharm Professional
  • Sublime Text

Herramientas CLI

  • Heroku CLI: Deployment y gestión
  • PostgreSQL CLI: psql para DB management
  • Python: pip, virtualenv

Versiones de Lenguajes

Python: 3.11.0 (mínimo 3.8) Node.js: No requerido (frontend es vanilla JS) PostgreSQL: 12.3+

Dependencias del Sistema (OS-level)

Linux

# Ubuntu/Debian
sudo apt-get install python3-dev libpq-dev libjpeg-dev zlib1g-dev

macOS

brew install postgresql python

Windows

  • Python 3.11+
  • PostgreSQL instalador oficial
  • Visual C++ Build Tools (para compilar algunas librerías)

Diagrama de Dependencias Principales

graph TB
    Django[Django 3.2] --> DRF[Django REST Framework]
    Django --> PostgreSQL[psycopg2]
    Django --> Templates[Django Templates]

    DRF --> Serializers
    DRF --> ViewSets

    Django --> Pillow[Image Processing]
    Django --> ReportLab[PDF Generation]
    Django --> Boto3[AWS SDK]

    Boto3 --> S3[AWS S3]
    Django --> Notifications[django-notifications]
    Django --> WebPush[pywebpush]

    PostgreSQL --> DB[(PostgreSQL 12.3+)]

    style Django fill:#092e20,color:#fff
    style DB fill:#336791,color:#fff
    style S3 fill:#FF9900,color:#fff

Recursos de Documentación

Para una referencia completa de todas las dependencias, consulta:


Este stack tecnológico es robusto, maduro y ampliamente usado en producción por miles de empresas.