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¶
macOS¶
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:
- requirements.txt: Lista completa con versiones
- Referencia de Dependencias: Descripción detallada de cada paquete
Este stack tecnológico es robusto, maduro y ampliamente usado en producción por miles de empresas.