Título
Sistema de Gestión de Artículos y Unidades (ProyectoServing)
Descripción
Proyecto Django para el registro, asignación y control de artículos por unidades, con comprobantes de movimiento y un módulo de inventario básico.
Stickers
Usa estas imágenes como "stickers" en la documentación o UI (ya incluidas en el repo):
Si quieres añadir más stickers, añádelos en static/imagenes/stickers/ y referencia la ruta relativa desde la raíz del proyecto.
Stack tecnológico
- Python (se recomienda 3.11+; los .pyc en el repo sugieren 3.12/3.13)
- Django 5.0.3
- Base de datos: configurable (MySQL, PostgreSQL o SQLite), dependencias:
mysqlclient,psycopg2,PyMySQL - Bibliotecas notables (ver
sistema/requirements.txt):django-adminlte3,django-select2,Pillow,reportlab,qrcode,django-wkhtmltopdf
Modelos de datos (resumen)
Las clases principales están en serving/models.py:
-
Articulo
- Campos:
articulo,description,marca,modelo,serial,unidad_medida,fecha,fecha_registro,cantidad,precio - Métodos:
__str__,total()(cantidad * precio)
- Campos:
-
Comprobante
- Campos:
e_o_s,conceptos,observaciones,concepto_movimiento,numero_movimiento,grupo,subgrupo
- Campos:
-
Unidad
- Campos:
nombreUnidad,comandante,ubicacion,telefono - Relación:
articulosManyToMany conArticuloa través deArticuloUnidad
- Campos:
-
ArticuloUnidad (tabla intermedia)
- Campos: FK a
ArticuloyUnidad, FK aComprobante(nullable),marca,modelo,serial,movimiento,description,unidad_medida,fecha_salida,cantidad,precio - Métodos:
__str__,total()
- Campos: FK a
-
PruebaUnidad (registro de prueba similar a ArticuloUnidad)
Ejemplo de forma de datos (JSON) para un Articulo:
{ "articulo": "Proyector X", "marca": "MarcaA", "modelo": "MX-100", "serial": "SN12345", "unidad_medida": "unidad", "cantidad": 2, "precio": "350.00" }
Requisitos previos
- Tener Python 3.11+ instalado.
- Git (opcional).
- En Windows PowerShell: crear y activar un entorno virtual.
- Archivo de dependencias:
sistema/requirements.txt(contiene todas las librerías necesarias).
Instalación y configuración (Windows PowerShell)
-
Abrir PowerShell en la carpeta raíz del proyecto (
e:/PROYECTOS/ProyectoServing/sistema). -
Crear y activar entorno virtual:
python -m venv .venv; .\.venv\Scripts\Activate.ps1
- Instalar dependencias:
python -m pip install --upgrade pip; pip install -r requirements.txt
- Configurar variables de entorno (recomendado):
DJANGO_SECRET_KEY— clave secreta.DJANGO_DEBUG—Falseen producción.DATABASE_URLo editarsistema/settings.pypara ajustarDATABASES.
Puedes exportar variables en PowerShell así (temporalmente):
$env:DJANGO_SECRET_KEY = "tu_secret_key"
$env:DJANGO_DEBUG = "True"
- Migraciones y superusuario:
python ..\manage.py migrate; python ..\manage.py createsuperuser
- Ejecutar servidor local:
python ..\manage.py runserver
Uso del sistema
- Iniciar sesión en
http://127.0.0.1:8000/con el superusuario. - Desde el panel admin o las vistas públicas del app
servingpodrás:- Crear/editar
Articulo. - Registrar
Comprobantey asignar movimientos. - Crear
Unidady vincular artículos medianteArticuloUnidad. - Generar reportes o comprobantes (algunas dependencias dan soporte a PDF/QR).
- Crear/editar
Módulos del sistema
serving/— app principal con modelos, vistas, formularios y templates.sistema/— configuración del proyecto Django (settings.py,urls.py,wsgi/asgi).templates/— plantillas base y por módulo (vertemplates/y subcarpetas).static/ystaticfiles/— assets: CSS, JS yimagenes/(logos y stickers).
Seguridad
- No dejar
DEBUG = Trueen producción. - Guardar
SECRET_KEYen variables de entorno, no en el repositorio. - Configurar
ALLOWED_HOSTSensistema/settings.py. - Usar conexión segura (HTTPS) y marcar cookies seguras (
SESSION_COOKIE_SECURE,CSRF_COOKIE_SECURE). - Restringir accesos en el admin y usar contraseñas fuertes.
- Revisar dependencias y mantenerlas actualizadas; ejecutar escáneres de seguridad sobre el entorno.
Posibles mejoras
- Añadir API REST (Django REST Framework) para integraciones.
- Implementar tests unitarios y de integración automatizados.
- Añadir control de permisos más fino (roles/GRANT) para módulos.
- Mejorar la interfaz con componentes JS modernos o SPA.
- Soporte de importación/exportación (CSV/Excel) robusto.
- Auditoría de cambios (historial de movimientos por artículo).
Mapa rápido de archivos relevantes
serving/models.py— modelos del dominio.serving/views.py,serving/forms.py,serving/urls.py— lógica y rutas.sistema/settings.py— configuración del proyecto.sistema/requirements.txt— dependencias (ruta:sistema/requirements.txt).
Estado de requisitos del usuario
- Título — Hecho
- Descripción — Hecho
- Stack tecnológico — Hecho
- Modelos de datos — Hecho (resumen a partir de
serving/models.py) - Requisitos previos — Hecho (referencia a
sistema/requirements.txt) - Uso del sistema — Hecho
- Módulos del sistema — Hecho
- Seguridad — Hecho
- Instalación y configuración — Hecho (instrucciones PowerShell)
- Posibles mejoras — Hecho
Si quieres, puedo:
- Añadir badges (build, dependabot) o más imágenes-stickers específicas.
- Generar un pequeño script
setup.ps1que automatice los pasos de instalación.

