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):

sticker-logo sticker-logo2 sticker-icon

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)
  • Comprobante

    • Campos: e_o_s, conceptos, observaciones, concepto_movimiento, numero_movimiento, grupo, subgrupo
  • Unidad

    • Campos: nombreUnidad, comandante, ubicacion, telefono
    • Relación: articulos ManyToMany con Articulo a través de ArticuloUnidad
  • ArticuloUnidad (tabla intermedia)

    • Campos: FK a Articulo y Unidad, FK a Comprobante (nullable), marca, modelo, serial, movimiento, description, unidad_medida, fecha_salida, cantidad, precio
    • Métodos: __str__, total()
  • 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)

  1. Abrir PowerShell en la carpeta raíz del proyecto (e:/PROYECTOS/ProyectoServing/sistema).

  2. Crear y activar entorno virtual:

python -m venv .venv; .\.venv\Scripts\Activate.ps1
  1. Instalar dependencias:
python -m pip install --upgrade pip; pip install -r requirements.txt
  1. Configurar variables de entorno (recomendado):
  • DJANGO_SECRET_KEY — clave secreta.
  • DJANGO_DEBUGFalse en producción.
  • DATABASE_URL o editar sistema/settings.py para ajustar DATABASES.

Puedes exportar variables en PowerShell así (temporalmente):

$env:DJANGO_SECRET_KEY = "tu_secret_key"
$env:DJANGO_DEBUG = "True"
  1. Migraciones y superusuario:
python ..\manage.py migrate; python ..\manage.py createsuperuser
  1. 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 serving podrás:
    • Crear/editar Articulo.
    • Registrar Comprobante y asignar movimientos.
    • Crear Unidad y vincular artículos mediante ArticuloUnidad.
    • Generar reportes o comprobantes (algunas dependencias dan soporte a PDF/QR).

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 (ver templates/ y subcarpetas).
  • static/ y staticfiles/ — assets: CSS, JS y imagenes/ (logos y stickers).

Seguridad

  • No dejar DEBUG = True en producción.
  • Guardar SECRET_KEY en variables de entorno, no en el repositorio.
  • Configurar ALLOWED_HOSTS en sistema/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.ps1 que automatice los pasos de instalación.
Description
No description provided
Readme 27 MiB
Languages
JavaScript 63.8%
CSS 23.9%
Python 5.6%
HTML 5.5%
SCSS 1.2%