0% encontró este documento útil (0 votos)
12 vistas65 páginas

Sistema Web de Facturación para Panadería

El documento detalla el desarrollo de un sistema web de facturación e inventario para la panadería 'El Carmen', con el objetivo de mejorar la gestión financiera y operativa del negocio. Se incluye un análisis de requerimientos, pruebas de software, y la justificación de la implementación de tecnologías como SQL Server y Django. Además, se abordan aspectos de factibilidad técnica, económica y operativa, así como los beneficios esperados del nuevo sistema.

Cargado por

Eduardo Zeledón
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas65 páginas

Sistema Web de Facturación para Panadería

El documento detalla el desarrollo de un sistema web de facturación e inventario para la panadería 'El Carmen', con el objetivo de mejorar la gestión financiera y operativa del negocio. Se incluye un análisis de requerimientos, pruebas de software, y la justificación de la implementación de tecnologías como SQL Server y Django. Además, se abordan aspectos de factibilidad técnica, económica y operativa, así como los beneficios esperados del nuevo sistema.

Cargado por

Eduardo Zeledón
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Área de Conocimiento de Tecnología de la

Informacion y Comunicacion DÁCTIC

Desarrollo de Sistema Web de


Facturación e Inventario para la
Panadería “El Carmen”

Parcial I de la asignatura Ingeniería de Software II

Elaborado por: Profesor:

Eduardo Domingo Jesús Abraham Docente:


Zeledón Mercado Silva Ampié [Link] C. Alfaro
Arriola
Carnet: 2021-0083U Carnet: 2021-0155U

Mayo 2025
Managua, Nicaragua
Contenido
Introducción ............................................................................................................ 1

Marco Teórico ..................................................................................................... 2

Antecedentes ........................................................................................................... 9

Justificación........................................................................................................... 10

Objetivos ................................................................................................................11

Objetivo General ................................................................................................11

Objetivos Específicos .........................................................................................11

Desarrollo .............................................................................................................. 12

Pruebas de Software .......................................................................................... 12

Pruebas unitarias: ClienteService .................................................................. 12

Ejemplo de prueba unitaria para agregar_cliente: ................................. 12

Pruebas de integración: Validación con la base de datos .............................. 13

Herramientas utilizadas ................................................................................. 14

Total, de líneas de prueba .................................................................................. 14

Pruebas unitarias de autenticación con pytest (test_auth.py).............. 14

Total, de líneas de prueba .................................................................................. 18

Pruebas unitarias para test_proveedores: .......................................................... 18

Total, de líneas de prueba .................................................................................. 21

Conteo de líneas del sistema ............................................................................. 22

Resultado del Análisis: .................................................................................. 22

Riesgos del Proyecto ............................................................................................. 24

Análisis de Requerimientos del Sistema ............................................................... 25

Requerimientos Funcionales ............................................................................. 25

Requerimientos No Funcionales ....................................................................... 26


Beneficios del Sistema .......................................................................................... 28

Beneficios Cuantificables.................................................................................. 28

Beneficios No Cuantificables ............................................................................ 28

Factibilidad............................................................................................................ 30

Factibilidad Técnica .......................................................................................... 30

Factibilidad Económica ..................................................................................... 31

1. Identificación de costos ............................................................................. 31

Costos iniciales: ............................................................................................ 31

Costos operativos (anuales): ......................................................................... 31

2. Proyección de beneficios económicos ...................................................... 32

Ahorros: ........................................................................................................ 32

Ingresos adicionales: ..................................................................................... 32

3. Análisis costo-beneficio ............................................................................ 32

Costo total anual: .......................................................................................... 32

Beneficios totales anuales: ............................................................................ 32

Relación costo-beneficio: .............................................................................. 32

Factibilidad Operativa ....................................................................................... 33

1. Análisis de Recursos Humanos ................................................................. 33

2. Evaluación de los Procesos Actuales ........................................................ 33

3. Aceptación del Sistema ............................................................................. 34

4. Compatibilidad Organizacional ................................................................ 34

5. Evaluación de Riesgos Operativos ............................................................ 34

Diagramas ............................................................................................................. 35

Casos de Usos ................................................................................................... 35

Apertura de Caja ............................................................................................... 35


Cierre de Caja .................................................................................................... 36

Registro de Ventas ............................................................................................. 37

Gestión de Inventarios....................................................................................... 38

Cronograma de Trabajo ......................................................................................... 39

Conclusión ............................................................................................................ 40

Bibliografía ........................................................................................................... 42

Anexo .................................................................................................................... 44

Dashboard ......................................................................................................... 44

Nueva Factura ................................................................................................... 46

Registro de facturas ........................................................................................... 48

Mostrar Productos ............................................................................................. 49

Mostrar clientes ................................................................................................. 51

Mostrar Empleados. .......................................................................................... 52

Cambiar Foto de perfil ...................................................................................... 54

Usuarios ............................................................................................................ 56

Entorno de trabajo para la creación del sistema de la panadería....................... 57

Tests: ................................................................................................................. 57

Aplicación de Principios de Diseño: ................................................................. 58

Ejemplo de interfaces con clientes: ............................................................... 58

Ejemplo de repositorio con clientes: ............................................................. 59

Lógica de Negocio en clientes: ..................................................................... 59

Vista para clientes: ........................................................................................ 60


Introducción

En el vibrante y competitivo mercado del sector panadero de Masatepe, donde la


variedad y calidad son fundamentales, las empresas se esfuerzan por mantenerse altamente
competitivas, en donde la eficaz implementación de sistemas informáticos se ha erigido
como factor determinante para el éxito y la competitividad de cualquier empresa. En este
contexto, La panadería “El Carmen” se presenta como un claro ejemplo de cómo la
integración de tecnologías puede potenciar su eficiencia y mejor posicionamiento en el
actual sector panadero de Masatepe. La panadería “El Carmen” destaca por ofrecer una
amplia gama de productos, desde pan fresco y deliciosos pasteles, hasta refrescos populares
como Pepsi y Coca-Cola. Además de su compromiso con la calidad y la innovación, se
distingue por su excepcional atención al cliente. Con un equipo dedicado y amable, la
panadería se esfuerza por brindar un servicio personalizado y una experiencia acogedora a
cada visitante que cruza sus puertas.

Es por ello que, a petición del administrador del local, se requiere implementar
soluciones tecnológicas por sobre las ya existentes, para que se agilice y mejore la gestión
de inventario y facturación, pues a pesar que existe un sistema de uso, este no les
proporciona beneficios considerables. Por tanto, lo que se logra con esta “actualización”
de su gestión financiera es una mejor y fluida labor por partes de sus operandos. Con esto
en cuenta, se realiza un estudio, desde cero, para analizar las diversas actividades que se
implementan en el negocio, esto nos permitirá tener una visión más clara del enfoque que
se implementa en el local. Con esto logramos identificar las características de estas
actividades que se llevan a cabo en el negocio y poder desarrollar un nuevo sistema web
que se adapte a las necesidades del local.

Además, como parte fundamental del desarrollo del sistema, se implementaron


pruebas de software orientadas a garantizar su correcto funcionamiento. Se aplicaron
pruebas unitarias para validar el comportamiento de componentes individuales del sistema,
y pruebas de integración para asegurar la correcta interacción entre los distintos módulos
desarrollados. Estas pruebas permitieron detectar y corregir errores durante las diferentes

1
etapas del desarrollo, contribuyendo así a una mayor fiabilidad, estabilidad y calidad del
sistema final.

Marco Teórico
El ámbito comercial de los negocios, siempre es de gran impacto, que las gestiones
de su cuentas y cuestiones financieras han de ser manejadas de la manera más eficiente,
precisa y sencilla, puesto que, su razón económica encuentra un pilar fundamental acá.
Pues si no se gestiona bien las finanzas, los riesgos de pérdidas son impredecibles. En la
actualidad, con el avance de la tecnología es de conocimiento cotidiano que esta, se ha
involucrado en cada parte de nuestra vida y en las finanzas de los negocios, no era
excepción. Es decir, la gestión de inventarios y finanzas y de todo ámbito de gestión en el
pasado, se llevaba a cabo en grandes archivos físicos cada uno hechos a “papel y lápiz” y
sin procesos de circulación instantánea de estos. Por tanto, mientras las herramientas
tecnológicas fueron avanzando, también lo hicieron los negocios haciendo uso, justamente,
de estas tecnologías ya computarizadas. Entonces, es a partir de estos avances, que ahora
toda gestión de documentos, fuere de lo que fuere, en absoluto, se hace a través de sistemas
computarizados, pues es casi obligatorio o recomendable hacerlo así, si es que tal negocio
quiere persistir y crecer.

En este caso, el negocio escogido para el cual se le llevará a cabo la creación de un


sistema de facturación e inventario, será para un local de panadería y repostería. Por ello,
la creación de un sistema web para este local, sin lugar a dudas, aumentará la eficiencia de
gestión económica del negocio para un mayor desempeño.

La razón principal que se pretende en este proyecto es la de desarrollar un sistema


web de facturación e inventario personalizado y robusto para una panadería, analizando las
áreas de trabajo del local para posteriori, el diseño del sistema y la base de datos a emplear
y, teniendo esto, mostrar las funcionalidades del sistema en cuestión.

Para llevar a cabo cada uno de estos objetivos es necesario, por obviedad, el uso de
herramientas tecnológicas de desarrollo, que se describen a continuación:

• Base de Datos:

2
I. Gestor de Base de Datos, SQL Server: “Un Sistema Gestor de Base

de Datos (SGBD) o DGBA (Data Base Management System) es un

conjunto de programas no visibles que administran y gestionan la

información que contiene una base de datos” (PowerData, 2019). Este,

tendrá por objeto, la base de datos de nuestro sistema y esta, albergará

toda nuestra información.

SQL Server garantiza fiabilidad, consistencia y durabilidad de los datos, lo cual es


crucial en procesos como registrar ventas, actualizar inventario o bien, generar facturas y
recibos. Además, este SGBD nos puede asegurar que una operación completa (como una
venta con múltiples productos) se ejecute totalmente o no por medio de soporte para
transacciones que evitan errores como cobrar sin actualizar el stock.

Otra característica que respalda a SQL Server es que nos proporciona escalabilidad,
puesto que puede y tiene la capacidad de manejar desde pequeñas tiendas (MIPYMES)
hasta empresas con gran fuente de información y registros que acceden simultáneamente
sin afectar el rendimiento.

• Herramienta de Codificación

I. Visual Studio Code:

Visual Studio Code, comúnmente conocido como VS Code, es un editor de


código gratuito y liviano que ha surgido rápidamente como una de las herramientas
más populares para desarrolladores de todos los niveles en una variedad de
lenguajes de programación.

Su simplicidad, versatilidad y funciones avanzadas le han valido un puesto


destacado en las encuestas de desarrolladores y una adopción generalizada en todos
los sectores. Con su rico ecosistema de extensiones, su interfaz de usuario intuitiva
y sus potentes funciones integradas, VS Code busca optimizar el proceso de
programación y mejorar la productividad. (Dominykas, 2025)

3
Ciertamente este editor de código es sumamente simple y versátil puesto que nos
permite escribir código Python(django), JavaScript, HTML, CSS y demás tipos de
codificación, además de aplicar diversos temas de colores y contrastes según el
gusto. Cuenta también con extensiones que se pueden instalar para mejorar algunos
parámetros o características que lo requieren, lo que hace de este editor ser fiable,
viable, profesional y adaptable a la necesidad de cada uno de los proyectos, razones
por las cuales se ha elegido VS Code.

• Lenguaje de Programación y Backend

I. Framework Django:

“Django es un framework de desarrollo para Python que se emplea para la creación


de páginas web” (Fernández E. C., 2022).

Django proporciona un desarrollo rápido y un panel de administración automático,


es decir, con muy poco código se puede obtener una interfaz de administración para
gestionar productos, facturas, clientes, etc.

Presenta alta seguridad que incluye protección contra inyecciones SQL, CSRF y
más. Es un framework escalable, por tanto, se puede usar para proyectos pequeños o
grandes y escalar conforme crece el sistema. Además, django prosee una gran comunidad
y documentación que otorga soporte, tutoriales y paquetes adicionales de manera constante,
lo que hacen de este framework una gran opción para implementar y desarrollar nuestro
sistema.

• Herramientas de Estilo, Componentes y lógica Frontend

II. HTML:

La definición de HTML es Lenguaje de Marcado de Hipertexto. Es un


lenguaje de marcado estándar para la creación de páginas web. Permite construir y
estructurar secciones, párrafos y enlaces utilizando elementos HTML (los bloques
de construcción de una página web) como etiquetas y atributos. (Gustavo,
Hostinger, 2025).

4
Para todo sitio web, utilizamos este lenguaje de marcado, que a través de
una estructura nos permite “moldear” nuestro sistema que luego se estilizan
mediante herramientas de estilo como SASS y CSS.

III. CSS:

“Se trata de una tecnología utilizada para dotar de cualidades visuales y estéticas
a una página web”. ([Link], s.f.).

Las siglas CSS (Cascading Style Sheets) significan «Hojas de estilo en


cascada» y parten de un concepto simple pero muy potente: aplicar estilos (colores,
formas, márgenes, etc..) a uno o varios documentos (generalmente documentos
HTML, páginas webs) de forma automática y masiva. ([Link], s.f.).

CSS es un lenguaje de estilos, para darle estéticas a los componentes HTML. En


nuestro contexto de la panadería, se implementa para el frontend, diseñando y “dando
color” a cada parte de sistema de modo que posea criterios de usabilidad y accesibilidad,
además de características que cumplan con los requerimientos visuales del usuario.

IV. SASS:

Es un procesador CSS. Un preprocesador CSS es una herramienta que nos permite


generar, de manera automática, hojas de estilo, añadiéndoles características que no tiene
CSS, y que son propias de los lenguajes de programación, como pueden ser variables,
funciones, selectores anidados, herencia, etcétera (Jiménez, 2019).

Se usa SASS con el fin de adicionar mayor flexibilidad en el proceso de aplicación


de estilos al sistema para que, a través de esto, se complemente la calidad de software que
satisfaga los requerimientos funcionales de los usuarios.

V. Java Script:

“JavaScript es un lenguaje de programación ligero que los desarrolladores web


suelen utilizar para crear interacciones más dinámicas al desarrollar páginas web,
aplicaciones, servidores e incluso juegos”. (Gustavo, Hostinger, 2023).

5
Se utiliza este lenguaje de programación para la manipulación y
dinamización de páginas web en nuestro sistema, además de la conexión
con el backend.

Las gestiones empresariales de la panadería, como ya hemos mencionado, giran


torno a palabras claves como facturación, inventario, sistema web etc. Son estos conceptos
claves para nuestro proyecto pues conociendo con claridad el entorno, podremos avanzar
de modo correcto.

• Facturación: “la factura es un documento de carácter mercantil que refleja la

compraventa de un bien o la prestación de un servicio determinado” (Fernández

E. , 2020).

A través del proceso de facturación podemos llevar control de ventas pues nos
permite llevar el registro claro y ordenado de cada operación que realiza el negocio.
Además de que facilita la contabilidad puesto que cada factura se asocia a un ingreso o
egreso. El facturar es ofrecer transparencia con el cliente ya que el cliente recibe un
comprobante claro de lo que ha comprado, cuánto pagó y cuándo lo hizo y, a través de esto
tener una base para los reportes donde se detallan las ventas diarias, mensuales o anuales
basados en las facturas emitidas.

Y cada una de estas operaciones el sistema de información puede llevarlo a cabo y


de forma agilizada.

• Inventario:

Se refiere a la lista detallada y organizada de los bienes, productos o


materiales que una empresa posee en un momento determinado. Este registro
incluye información como la cantidad disponible, el valor monetario y la ubicación
física de cada artículo. (Amazon, 2024).

Es a través del control de inventario que tenemos el control de existencias de un


producto o bien ya que nos permite saber cuántos productos se tienen disponible para
vender, etc. Ayuda a detectar productos faltantes, vendidos o dañados.

6
Con base al inventario se elabora el soporte de ventas, puesto que la integración con
el sistema de facturación, el inventario se actualiza automáticamente cuando se realiza una
venta. Ayuda a saber cuánto dinero tienes invertido en productos almacenados (importante
para la contabilidad y toma de decisiones).

Es decir, el inventario es clave para cualquier negocio y/o sistema que maneje
productos. Sin un buen control de inventario, puedes perder ventas, dinero o clientes.

Sistema Web:

“un sistema web es una estructura más compleja, compuesta por aplicaciones y
componentes interconectados que crean una experiencia de usuario más dinámica e
interactiva.” (Careaga, 2024).

Por tanto, un sistema web se usa desde cualquier lugar con internet. Se centra en
solo servidor o base de datos. Además, al estar guardado en un servidor, varios usuarios
pueden trabajar al mismo tiempo puesto que es compatibles con múltiples dispositivos. Un
sistema web te permite digitalizar y automatizar procesos de forma eficiente y accesible
desde cualquier parte.

También implementamos diferentes pruebas de software para que el sistema pueda


ser robusto y fiable:

• Pruebas de Software

Las pruebas de software son el proceso de evaluar y verificar que un producto o


aplicación de software hace lo que se supone que debe hacer. Entre los beneficios
de unas buenas pruebas se incluyen la prevención de errores y la mejora del
rendimiento. (IBM, s.f.).

Es importante destacar que existen diferentes tipos de pruebas, más, sin embargo,
en nuestro caso interesan dos:

• Pruebas Unitarias

7
“Las pruebas unitarias son el proceso en el que se prueba la unidad funcional de
código más pequeña. Las pruebas de software ayudan a garantizar la calidad del código y
son una parte integral del desarrollo de software.” (AWS, s.f.).

• Pruebas de Integración

Las pruebas de integración son un tipo de prueba de software en la que los módulos
o componentes individuales de una aplicación se combinan y se prueban en
conjunto para identificar defectos en sus interacciones. El objetivo es garantizar que
los componentes integrados funcionen juntos según lo previsto y que los datos
fluyan correctamente entre ellos. (Testlio, 2024).

Se espera que el nuevo sistema mejore la eficiencia del negocio, brinde una mejor
experiencia al cliente y mantenga a la panadería competitiva en el mercado local. El
proyecto contribuirá al mejoramiento de la gestión empresarial de la panadería.

8
Antecedentes

La panadería “El Carmen” ubicada del Colegio María Auxiliadora 10 Vrs Al Norte
Masatepe-Masaya, nace en el año 1980 y como un proyecto familiar cotidiano. Más, sin
embargo, luego de unos pocos años, esta comenzó a ser muy popular en el municipio,
principalmente por la exquisitez de sus productos. Por cuanto fue popular, la panadería
creció en su clientela y con ello, su innovación, pues implementó un sistema que le permite
la gestión empresarial de sus ventas. A pesar de esto, los beneficios de esta actualización
de su gestión, no ha sido del todo muy buena. La panadería "El Carmen" actualmente
enfrenta varios desafíos con su sistema de facturación. El sistema actual está alojado en un
servidor ubicado en un país extranjero y es compartido con otros negocios, lo que resulta
en un rendimiento lento durante las horas de mayor afluencia. Además, la dependencia de
un servidor en la nube implica que cualquier interrupción en el servicio de Internet podría
dejar al local sin acceso al sistema.

9
Justificación

Por lo expuesto anteriormente, se ha tomado la decisión de desarrollar un sistema


de facturación personalizado para la panadería El Carmen. Este nuevo sistema estará
alojado en un servidor local, lo que garantizará un rendimiento óptimo y una mayor
estabilidad operativa. Además, al evitar la dependencia de la conectividad a Internet, se
asegura que el funcionamiento del sistema no se vea afectado por posibles fallos en el
servicio de red.

Para la recolección de información justa y específica, se visitó el local con el fin de


analizar el contexto del negocio y observar, lo que se mencionaba antes, la organización
del local y el sistema actual, obteniendo información con el propietario, que dio a conocer
a detalles los requisitos que aspira con el proyecto en cuestión, y que cumpla con el
mejoramiento del establecimiento. A partir de aquí, se puede entonces, construir ciertos
objetivos.

10
Objetivos

Objetivo General
Desarrollar un Sistema Web para la Facturación e Inventario de la Panadería “El
Carmen”.

Objetivos Específicos
• Analizar el nivel de alcance y los requerimientos del sistema web de facturación e

inventario para la Panadería “El Carmen”.

• Diseñar el modelo del sistema que cumpla con los requerimientos obtenidos, con la

herramienta [Link] para el sistema web de facturación e inventario para la Panadería

“El Carmen”.

• Codificar el sistema web utilizando el lenguaje de programación Python, Framework

Django y la Herramienta de Gestor de Base de Datos SQL Server.

• Realizar pruebas y depuraciones al sistema para posteriori, corregir posibles errores

o fallos identificados durante este proceso.

• Implementar y capacitar el personal a través de la instalación de dicho sistema en los

equipos del local, además, de la capacitación a los laborando del local.

• Aplicar pruebas unitarias e integración al sistema desarrollado, con el fin de evaluar

su funcionamiento, detectar fallos y garantizar su calidad y confiabilidad.

11
Desarrollo

Pruebas de Software
Durante el desarrollo del sistema web de facturación e inventario para la panadería
“El Carmen”, se implementaron pruebas unitarias y pruebas de integración utilizando la
herramienta pytest, elegida por su sintaxis simple, su integración con fixtures, y su
facilidad para trabajar con mocks, especialmente al momento de aislar dependencias como
bases de datos o servicios externos.

El propósito principal de estas pruebas fue garantizar la fiabilidad, mantenibilidad


y correcto funcionamiento del sistema, asegurando que tanto los módulos individuales
como su interacción entre ellos funcionaran como se esperaba. Se siguieron principios del
diseño limpio, específicamente el principio de Inversión de Dependencias (D - SOLID),
desacoplando la lógica de negocio (servicio) del acceso a datos (repositorio), permitiendo
así inyectar dependencias simuladas durante las pruebas.

Pruebas unitarias: ClienteService


Una de las principales áreas sometidas a pruebas unitarias fue el archivo
clientes_service.py, el cual contiene la lógica de negocio relacionada con los clientes.
Para ello, se creó el archivo test_services.py, donde se utilizó un repositorio simulado
(mock) para evitar el acceso a la base de datos y centrarse únicamente en la lógica de
negocio.

Ejemplo de prueba unitaria para agregar_cliente:

En este ejemplo, se valida que el método agregar_cliente funcione


correctamente cuando todos los campos requeridos están presentes. Además, se verifica
que se haya llamado al método agregar del repositorio con los parámetros correctos.

12
Se aplicó el mismo enfoque para los métodos eliminar_cliente y
activar_cliente, verificando que se invoquen correctamente las funciones del
repositorio correspondiente:

Estas pruebas son rápidas, no requieren conexión a la base de datos, y permiten


validar el flujo de ejecución y la interacción entre capas.

Pruebas de integración: Validación con la base de datos


En el caso de las pruebas que involucran el acceso real a la base de datos, se
consideraron pruebas de integración, cuyo objetivo fue verificar que el ClienteService
interactúe correctamente con el ClienteRepository, que a su vez ejecuta procedimientos
almacenados en la base de datos SQL Server.

Estas pruebas no fueron aisladas, y se diseñaron para ejecutarse en un entorno de


prueba con datos controlados. Se validaron funciones como:

• Listar clientes según su tipo.

• Insertar, actualizar y eliminar registros reales.

13
Herramientas utilizadas
• Pytest: herramienta principal para la ejecución de pruebas.

• Mock de unittest: para simular dependencias como el repositorio y el

objeto request.

• Fixtures de Pytest: para reutilizar configuraciones de prueba como el

request simulado.

• SQL Server: como base de datos para las pruebas de integración.

Total, de líneas de prueba


En total, el archivo test_services.py contiene aproximadamente 40 líneas de
código de prueba, enfocadas en validar los servicios relacionados con los clientes. Las
pruebas están diseñadas para ser escalables y permitir su extensión a medida que se agregan
nuevas funcionalidades.

Pruebas unitarias de autenticación con pytest (test_auth.py)


Para validar el correcto funcionamiento del sistema de autenticación, se
desarrollaron pruebas automatizadas utilizando pytest junto con la funcionalidad Client
que proporciona Django para simular peticiones HTTP.

Las pruebas se centraron en los siguientes aspectos:

• Inicio de sesión exitoso

• Verificación de existencia de usuarios

• Eliminación de usuarios

• Cierre de sesión

El siguiente fragmento muestra una prueba para verificar un login exitoso. Se crea
un usuario de prueba con create_user, luego se simula una solicitud POST al endpoint de
login y se espera una redirección (302), lo cual indica que la autenticación fue exitosa:

14
• En otra prueba, se comprueba que el usuario efectivamente ha sido creado en la base

de datos:

• También se incluye una prueba que simula la eliminación de un usuario:

• Finalmente, se incluye una prueba sencilla para comprobar que el logout devuelve una

respuesta exitosa (200 OK):

15
A continuación, veremos el procedimiento que se llevó a cabo para la correcta validación
de autenticación

Errores encontrados:

Encontramos, al realizar las pruebas en login, tenemos que los valores que no se ingresan
o se ingresan nulos estos no son manejados correctamente. Se advierte de estos datos nulos
como se muestra en la imagen que no se agrega el campo username y la prueba falla.

16
¿Cómo estaba el proyecto antes de los tests?

En este panorama vemos que se presenta una validación pobre donde no se advierte
de valores nulos.

¿Cómo está el proyecto después de los tests?

Ya aquí se muestra la validación pertinente gracias al test realizado que permite que
se validen los campos si es que vienen vacíos.

17
Estas pruebas permiten asegurar que el sistema de autenticación cumple con los
flujos básicos requeridos en cualquier aplicación web: inicio de sesión, validación,
eliminación y cierre de sesión.

Total, de líneas de prueba


En total, el archivo test_auth.py contiene aproximadamente 41 líneas de código
de prueba, enfocadas en la validación de autenticación del usuario y su correcto
funcionamiento.

Pruebas unitarias para test_proveedores:


Este archivo se enfoca en probar las operaciones CRUD del modelo Proveedores.
Se utiliza una fixture para crear la tabla directamente con SQL al iniciar cada test,
asegurando así independencia de migraciones. Las pruebas incluyen:

• test_create_proveedor: Verifica que un proveedor puede ser creado

correctamente y se guarda en la base de datos con los valores esperados.

• test_delete_proveedor: Crea un proveedor, luego lo elimina, y finalmente

verifica que ya no exista en la base de datos.

• test_update_proveedor: Crea un proveedor y luego actualiza su nombre. Se

comprueba que el cambio se refleje correctamente en la base de datos.

En la vista agregar proveedores se prueba que los datos no lleguen en modo nulo, sino que
se validen antes:

18
Ahora validamos en el crud de proveedores:

Ahora se muestra un ejemplo de los pasos que se tomaron para el test correcto en
el proveedor:

Errores encontrados

En esta parte se observa algo parecido a la anterior prueba y que se repite en muchos crud’s.
Los valores nulos no son manejados correctamente y es por ello que nos muestra un fallo.

19
¿Cómo estaba el proyecto antes de los tests?

Se valida la llegada, pero no cómo llegan esos datos, no se validan si se reciben


correctamente o no y eso es lo que se tiene que mejorar. Y la prueba nos ayudó a predecir
esa anomalía de codificación:

20
¿Cómo está el proyecto luego de los tests?

Se puede observar que ya se validan los campos de nombre, dirección, teléfono que
antes solo llegaban sin predecirse si eran nulos o no.

Estas comprobaciones garantizan que todos los campos requeridos estén presentes
antes de intentar ejecutar el procedimiento almacenado, lo que fortalece la robustez del
sistema y evita llamadas inválidas al backend.

Total, de líneas de prueba


En total, el archivo test_proveedores.py contiene aproximadamente 63 líneas
de código de prueba, que validan cada operación crud de los proveedores de igual manera
que se aplican a los demás módulos del sistema.

21
Conteo de líneas del sistema
Para estimar el tamaño del sistema de facturación e inventario desarrollado con
Django, se utilizó “una herramienta sencilla pero potente llamada “cloc – contar líneas de
código” que le permite contar la totalidad de su código y excluir comentarios y líneas en
blanco al mismo tiempo.” (Torodov, 2023).

Gracias a cloc se realizó el análisis y conteo de cada una de las líneas de nuestro
proyecto en cuestión para estimar, además, la calidad de código.

Durante el análisis, se excluyeron directorios no relevantes para obtener un


resultado más representativo del trabajo de desarrollo. Entre ellos:

• Entornos virtuales (env, venv)

• Cachés y migraciones automáticas de Django (__pycache__, migrations)

• Archivos estáticos o dependencias externas (static, node_modules)

Resultado del Análisis:


LANGUAGE FILES BLANK COMMENT CODE
HTML 47 1120 133 7725
PYTHON 35 697 386 2374
SQL 2 193 76 852
TOTAL 84 2010 595 10951

22
TOTAL (solo 3, 226
backend)

El sistema tiene 10,951 líneas de código propias, distribuidas principalmente en


HTML, Python y SQL. Pero, excluyendo el código HTML se tienen 3, 226 líneas de
código de backend(Python y SQL). Estas cifras reflejan un sistema de tamaño medio-
alto, con múltiples funcionalidades implementadas como la gestión de productos,
facturación, usuarios, reportes, e interacción con base de datos.

Este tipo de análisis permite:

• Medir el esfuerzo de desarrollo realizado.

• Estimar la complejidad del sistema.

• Servir como referencia para futuras tareas de mantenimiento o

documentación técnica.

23
Riesgos del Proyecto

La gestión de riesgos de los proyectos, también conocida como risk


management, es la práctica de identificar, analizar y responder de manera proactiva
a diferentes tipos de riesgos potenciales de un proyecto. Un riesgo de un proyecto
es todo aquello que pueda afectar al éxito del proyecto, puede ser algo que cause
retrasos en el cronograma del proyecto que haga que se exceda el presupuesto
previsto o cualquier cosa que derive en la disminución del rendimiento del equipo
de un modo u otro. (Julia, 2025).

Durante el desarrollo del sistema de facturación e inventario, se ha considerado la


gestión de riesgos como un aspecto fundamental para garantizar el éxito del proyecto. Esta
práctica consiste, como se expresó anteriormente, en identificar, analizar y responder
proactivamente a eventos que puedan afectar negativamente al cumplimiento de los
objetivos establecidos dentro del proyecto del sistema de la panadería. Y, en consecuencia,
tenemos los siguientes potenciales riesgos que podrían llegar a suceder desde inicio a fin
el sistema:

• Fallas de hardware en los equipos de cómputo.

• Que los usuarios del sistema no se presenten en días de capacitación.

• Entregables del proyecto no cumplen expectativas de clientes.

• Daños en el software por mala manipulación.

24
Análisis de Requerimientos del Sistema

El aspecto más significativo de cualquier proyecto es su documento de


requisitos. Los conceptos erróneos, las incorrecciones o los excesos en los criterios
redundarán necesariamente en retrasos en el cronograma, pérdida de recursos e
insatisfacción del consumidor.

El análisis de requisitos debe comenzar con las necesidades del negocio o de la


organización y convertirlas en necesidades del proyecto. Si cumplir con los estándares
establecidos sería excesivamente costoso o llevaría una cantidad de tiempo excesiva, es
posible que los requisitos del proyecto deban comprometerse, reducirse o reducirse en las
negociaciones con los clientes o patrocinadores. (visuresolutions, s.f.)

Los requisitos de un proyecto de software son las funciones, características


y restricciones que debe cumplir el producto final. En otras palabras, los requisitos
definen qué debe hacer el software, cómo debe verse y las condiciones que deben
cumplirse para que se considere exitoso. (visuresolutions, s.f.).

Para lograr esto, es necesario tener en cuenta los tipos de requerimientos


que existen de los cuales daremos paso. Por tanto, a continuación, hacemos el
análisis de los requerimientos del sistema tanto funcionales como no funcionales.

Requerimientos Funcionales
Requisitos funcionales, como su nombre indica, describen las funciones del
sistema a diseñar. Es una descripción de lo que será el sistema y cómo funcionará
para satisfacer las necesidades del usuario. Proporcionan una descripción clara de
cómo se supone que el sistema debe responder a un comando en particular, las
características y lo que esperan los usuarios. (visuresolutions, s.f.).

En este contexto, la panadería “El Carmen” apela a ciertos requerimientos


funcionales que se espera que cumpla y satisfaga a el usuario final y dueño del
establecimiento:

o Registro mensual semanal y diario de ventas del CARMEN.

25
o Mostrar información pertinente sobre ventas individuales y colectivas mediante

un dashboard.

o Facilitar el proceso de venta y facturación a los empleados del CARMEN.

o Conocer los mejores clientes y los mejores Empleados del CARMEN mediante

gráficos en el dashboard.

o Ofrecer la impresión de facturas en tiempo real y de facturas registradas.

o Contar con inventario de productos, materia prima por categorías, llevando un

orden en cada una de ellas.

o Debe gestionar el ciclo de vida de una caja, desde su apertura hasta su cierre,

registrando los datos relevantes de cada operación.

Requerimientos No Funcionales
“Requerimientos no funcionales Explicar las limitaciones y restricciones del
sistema a diseñar. Estos requisitos no tienen ningún impacto en la funcionalidad de la
aplicación. Además, existe una práctica común de subclasificar los requisitos no
funcionales en varias categorías.” (visuresolutions, s.f.).

Una vez habiendo logrado los requerimientos pedidos por el usuario, entonces es
de índole principal también cumplir con los estándares de usabilidad y accesibilidad del
sistema tales como interfaz de usuario, fiabilidad del sistema, seguridad, mantenimiento,
entre otros requisitos no funcionales:

o Validar cada uno de los datos antes de ser ingresados a la base de datos en

el servidor local.

o Mantener un diseño similar al anterior para la mejor adaptación de los

empleados.

o Almacenar la base de datos en un disco de buena calidad para asegurar la

seguridad de los datos y hacer copias de seguridad en la nube.

26
o Usar arquitectura clara de organización en cada uno de los módulos del

sistema

o Separar la lógica de archivos en los templates a través de archivos estáticos

de diseño y validación.

27
Beneficios del Sistema

Beneficios Cuantificables
Automatización del cálculo de las ventas y el inventario: El sistema automatiza
el cálculo de las ventas diarias y el control del inventario, permitiendo una gestión más
precisa y eficiente de los productos vendidos y disponibles en la panadería.

Optimización de las operaciones de venta y almacenamiento: Esto permite al


personal encargado realizar un número mayor de tareas en menos tiempo, ya que no tendrán
que realizar cálculos manuales, no tendrán que llevar la cantidad precisa de productos
manualmente, y tampoco tendrán que llevar un registro físico del inventario. Así, pueden
enfocarse en atender rápido y mejor a los clientes

Ahorro de tiempo en la generación de informes: El sistema genera


automáticamente informes detallados sobre las ventas, el inventario y otros aspectos
relevantes para la gestión del negocio. Esto reduce significativamente el esfuerzo humano
necesario para recopilar y analizar esta información, dando una mejor eficiencia y calidad
al negocio, permitiendo que el personal de administración lleve un mejor control de los
informes contables e inventario del negocio.

Mejora en la toma de decisiones: La gerencia general de la panadería puede


acceder fácilmente a datos actualizados sobre el comportamiento de las ventas y los gastos
del negocio. Esto les permite tomar decisiones informadas y oportunas para optimizar la
operación, como ajustar el inventario según la demanda. Estos beneficios ayudaran a
mejorar la eficiencia operativa y la rentabilidad de la panadería, al simplificar las tareas
administrativas y proporcionar una visión más clara del desempeño del negocio

Beneficios No Cuantificables
Mayor comodidad en la gestión y visualización de datos: El personal del sistema
experimentarán una mayor comodidad al acceder y registrar información relacionada con
las ventas, el inventario de la panadería. La interfaz intuitiva del sistema facilitara la
navegación y el acceso a la información relevante, lo que mejora la eficiencia en general
de los empleados de la panadería y aumenta la eficiencia en la gestión de datos.

28
Seguridad y control de datos: La implementación de roles del personal garantiza
que solo las personas autorizadas puedan acceder y modificar información en el sistema.
Esto proporciona un mayor nivel de seguridad y control sobre los datos financieros de la
panadería, evitando posibles alteraciones no autorizadas y asegurando la integridad de la
información.

29
Factibilidad

Al realizar un estudio de factibilidad se determina si el proyecto es viable o


no y en caso de ser viable, bajo qué condiciones, recursos, tiempo y presupuesto
debe desarrollarse para que el proyecto resulte exitoso. Como resultado del estudio
de factibilidad pueden surgir nuevas ideas que posiblemente cambien el curso de la
idea o del proyecto original. (vqingenieria, s.f.).

A través de estudio se comprueba la viabilidad y fiabilidad del sistema de


facturación e inventario a implementarse en la panadería. Se detallan factibilidad
técnica, económica y operativa:

Factibilidad Técnica
“La factibilidad técnica determina si se dispone de los conocimientos, habilidades,
equipos o herramientas necesarios para llevar a cabo los procedimientos, funciones o
métodos involucrados en un proyecto.” (Enrique, 2020).

Por tanto, a través de la factibilidad técnica compramos qué tan eficiente es la


implementación del sistema y los costos que este conlleva. Además, se debe tener en cuenta
los aspectos técnicos para la implementación de dicho sistema, tales como el hardware,
software y recursos humanos.

El sistema que se va a realizar debe poseer la capacidad técnica de manejar una


basta cantidad de datos, por lo que se requiere de una computadora que realice el papel de
servidor que soporte el almacenamiento de base de datos con todos los registros de la
panadería y, a la cual estarán conectadas dos computadoras clientes más.

Recursos Disponibles

- Recursos Humanos

Cantidad Cargo Funciones

3 Programador • Recopilación de Información,


• Diseño de la Base de Datos e Interfaces
• Codificación de Base de Datos y Sistema

30
- Recurso Hardware

Memoria RAM 32GB


Discos 1TB SSD
SO Windows 11
Procesador i5 11va generación
Impresora Impresora Térmica USB

- Recurso de Software

SO Windows MacOS o Linux

Factibilidad Económica
“La factibilidad financiera evalúa si, desde un punto de vista económico y
financiero, un proyecto puede llevarse a cabo, mantenerse en marcha y generar valor.”
(Enrique, 2020)

Este análisis evalúa la factibilidad económica del sistema de facturación e


inventario, considerando los costos iniciales y operativos, así como los beneficios
económicos esperados. A continuación, se presenta el detalle de los cálculos.

1. Identificación de costos
Costos iniciales:
- Desarrollo del sistema/software: $400.

- Hardware: Ya disponible, no se incluye en los costos iniciales.

Total, costos iniciales: $400.

Costos operativos (anuales):


- Mantenimiento: 800 córdobas cada 6 meses = 1,600 córdobas/año.

- Tipo de cambio: 1 USD = 37 córdobas.

- Costo en dólares: 1,600 córdobas ÷ 37 = $43.24 USD.

31
Total, costos operativos: $43.24 anuales.

2. Proyección de beneficios económicos


Ahorros:
- Optimización de tiempo: El sistema reduce un 20% del tiempo dedicado a
procesos manuales, equivalente a un ahorro estimado de $50 mensuales.
- Ahorros anuales: $50 × 12 meses = $600.

Ingresos adicionales:
- Aumento en ventas: Con la optimización del sistema y la atracción de más clientes,
se estima un incremento de $100 mensuales en ingresos.
- Ingresos adicionales anuales: $100 × 12 meses = $1,200.

3. Análisis costo-beneficio
Costo total anual:
- Costos iniciales (prorrateados en un año): $400.

- Costos operativos: $43.24.

- Costo total en el primer año: $400 + $43.24 = $443.24.

Beneficios totales anuales:


- Ahorros por optimización: $600.

- Ingresos adicionales: $1,200.

- Beneficios totales: $600 + $1,200 = $1,800.

Relación costo-beneficio:
La relación costo-beneficio se calcula como:
Relación = Beneficios ÷ Costos = $1,800 ÷ $443.24 = 4.06
Por cada dólar invertido, el sistema genera $4.06 en beneficios.

El análisis demuestra que el sistema es económicamente viable, ya que los


beneficios ($1,800) superan ampliamente los costos ($443.24) en el primer año, con un

32
retorno de inversión significativo. En el segundo año, los costos iniciales ya no se
consideran, lo que aumentará aún más la rentabilidad.

Factibilidad Operativa
“La factibilidad operativa consiste en el análisis de los recursos productivos,
incluidos los humanos, necesarios para la realización de un proyecto económico.”
(Enrique, 2020)

Es decir, este análisis evalúa la factibilidad operativa del sistema de facturación e


inventario, considerando recursos humanos, procesos, aceptación, compatibilidad
organizacional y riesgos operativos. A continuación, se presenta el detalle de los aspectos
evaluados.

1. Análisis de Recursos Humanos


Habilidades del personal: El personal actual tiene la capacidad de usar
computadoras, lo que facilita la transición al nuevo sistema. Además, se proporcionará
capacitación específica para garantizar que los usuarios se adapten al sistema rápidamente
y puedan aprovechar todas sus funcionalidades.

Necesidad de capacitación: Se considera fundamental, y ya está prevista dentro


del proyecto. La capacitación asegurará que los usuarios entiendan las nuevas
características del sistema y puedan emplearlas eficazmente.

2. Evaluación de los Procesos Actuales


Compatibilidad con los flujos de trabajo existentes: El sistema ha sido diseñado
para alinearse con los procesos actuales. De hecho, se inspira en un sistema similar que los
usuarios ya manejan, pero con la ventaja de ser completamente personalizado y de su
propiedad.

Cambios en los procesos operativos: Aunque no se requieren modificaciones


significativas, se han añadido apartados y optimizaciones para que el sistema sea más
rápido y eficiente en tareas como la facturación y la gestión de ventas.

33
3. Aceptación del Sistema
Disposición de los usuarios: Los usuarios están motivados y dispuestos a adoptar
el nuevo sistema, lo que asegura una transición fluida.

Resistencia al cambio: No se prevé resistencia, ya que los usuarios están


familiarizados con un sistema similar, lo que reduce el impacto del cambio.

4. Compatibilidad Organizacional
Alineación con los objetivos de la empresa: El sistema respalda los objetivos de
la panadería, respetando su identidad, tradiciones y enfoque personalizado. Esto es clave
para mantener la esencia de un negocio familiar que ha operado desde los años 70.

Cumplimiento de políticas internas: El sistema cumple con todas las normativas


internas y se ajusta a las preferencias y prácticas del local, asegurando su aceptación y
funcionalidad dentro de la organización.

5. Evaluación de Riesgos Operativos


Posibles interrupciones: Se realizó un análisis de riesgos para identificar y mitigar
posibles problemas, como resistencia del personal (aunque no se espera), interrupciones en
la transición o inconvenientes en la integración del sistema con los procesos actuales.

Plan de contingencia: La capacitación y el soporte técnico están diseñados para


minimizar cualquier percance y garantizar que el sistema funcione de manera óptima desde
su implementación.

El análisis demuestra que el sistema es operativamente viable. Cuenta con el


respaldo del personal, se alinea con los procesos y objetivos organizacionales, y no enfrenta
barreras significativas de adopción. Los riesgos identificados se han abordado
adecuadamente, lo que asegura una implementación exitosa y una integración eficiente en
las operaciones diarias.

34
Diagramas

Casos de Usos
Un caso de uso es un concepto utilizado en el desarrollo de software, el
diseño de productos y otros ámbitos para describir la utilidad de un sistema para
realizar tareas concretas o conseguir objetivos específicos. Incluye una descripción
de las interacciones de los usuarios o agentes con el sistema para conseguir un
resultado determinado. (Wrike Team, 2025)

En el sistema abordamos los requerimientos principales de cada uno de los


módulos describiendo sus características y funcionamiento.

Apertura de Caja
Autores Administrador/Cajero (Empledo)
Descripción Permite al usuario autorizado
registrar la apertura de la caja al inicio de
la jornada.
Precondiciones El usuario debe haber iniciado
sesión y tener permisos para realizar esta
acción.
Flujo Normal 1. El sistema muestra la pantalla de
inicio de caja.
2. El usuario selecciona la opción 'Abrir
caja'.
3. Se solicita al usuario ingresar el monto
inicial en caja.
4. El usuario ingresa el monto inicial y
confirma la apertura.
5. El sistema valida la información e inicia
el registro de transacciones asociadas a la
caja abierta.
6. Se muestra una notificación
confirmando la apertura exitosa de la caja.

35
Flujo Alternativo Monto no ingresado o inválido:
4.1 El sistema muestra un mensaje de error
indicando que el monto es obligatorio o no
válido.
4.2 El usuario corrige el dato y confirma
nuevamente.
4.3 El sistema valida los datos ingresados
y procede a registrar la apertura de caja.
Post Condición Se registra en el sistema que la caja
fue abierta junto con el monto inicial
ingresado.

Cierre de Caja
Autores Administrador/Cajero
Descripción Permite registrar el cierre de caja y
generar un reporte de las transacciones del
día.
Precondiciones La caja debe estar abierta.
Flujo Normal 1. El usuario selecciona la opción
'Cerrar caja'.
2. El sistema solicita el monto total en
efectivo al usuario.
3. El usuario ingresa el monto y confirma
el cierre.
4. El sistema valida los datos e imprime un
reporte de cierre de caja.
Flujo Alternativo Monto incorrecto:
3.1 El sistema muestra un mensaje de error
si el monto ingresado no coincide con las
transacciones registradas.

36
3.2 El usuario verifica y corrige el monto
antes de confirmar.
Post Condición El sistema registra el cierre de caja
y genera un reporte de las transacciones.

Registro de Ventas
Autores Cajero
Descripción Permite al usuario registrar una
venta, actualizar el inventario y generar un
ticket de compra.
Precondiciones La caja debe estar abierta.
Flujo Normal 1. El usuario selecciona los
productos desde el catálogo.
2. El sistema calcula el total de la venta.
3. El usuario confirma la venta.
4. El sistema actualiza el inventario y
genera un ticket.
Flujo Alternativo Producto no disponible:
2.1 El sistema muestra un mensaje
indicando que el producto no tiene stock.
2.2 El usuario comunica al cliente o
selecciona otro producto.
Post Condición El sistema registra la venta, genera
el ticket y actualiza el inventario.

37
Gestión de Inventarios
Autores Administrador
Descripción Permite al administrador visualizar,
actualizar o eliminar productos del
inventario.
Precondiciones El usuario debe tener permisos de
administrador.
Flujo Normal 1. El usuario accede al módulo de
inventarios.
2. El sistema muestra una lista de
productos.
3. El usuario selecciona un producto para
modificar o eliminar.
4. El sistema guarda los cambios
realizados.
Flujo Alternativo Error al guardar cambios:
4.1 El sistema muestra un mensaje de error
si no se pueden guardar los cambios.
4.2 El usuario verifica los datos e intenta
nuevamente.
Post Condición El sistema actualiza el inventario
según los cambios realizados.

38
Cronograma de Trabajo

Nombre de la Tarea Mes


Marzo
Análisis de la administración del negocio Marzo
Reuniones con el dueño para recoger requisitos Marzo
Abril
Diseño del diagrama de la base de datos Abril
Planificación del diseño frontend Abril
Predicción de lógica de negocio Abril
Mayo
Desarrollo del menú principal (frontend/backend) Mayo
Desarrollo del módulo de Empleados Mayo
Desarrollo del módulo de Clientes Mayo
Desarrollo del módulo de Productos (Inventarios) Mayo
Desarrollo del módulo de Facturación Mayo
Implementación del sistema de login Mayo
Junio
Desarrollo del módulo de Materia Prima Junio
Desarrollo del módulo de Proveedores Junio
Desarrollo del módulo de Categorías Junio
Implementación del Dashboard Junio
Implementación de la funcionalidad de copia de respaldo Junio

39
Conclusión

La modernización de la gestión empresarial es esencial para mantener la


competitividad y eficiencia en cualquier sector, y la panadería "El Carmen" no es la
excepción. A lo largo de este proyecto, hemos demostrado cómo la implementación de un
sistema web personalizado para facturación e inventario puede transformar la operatividad
de un negocio tradicional.

La Panadería "El Carmen" enfrentaba desafíos significativos con su antiguo


sistema, que limitaba su capacidad de respuesta y la eficiencia durante las horas pico. Al
desarrollar un sistema adaptado a sus necesidades específicas, hemos asegurado un
rendimiento óptimo y una mayor estabilidad operativa, reduciendo la dependencia de la
conectividad a Internet y eliminando cuellos de botella en los momentos críticos.

Este proyecto no solo mejora la gestión de inventarios y facturación, sino que


también proporciona una herramienta poderosa para la toma de decisiones, basándose en
datos precisos y actualizados. La capacitación del personal en el uso del nuevo sistema
garantiza que estos beneficios se mantengan a largo plazo, permitiendo que "El Carmen"
continúe ofreciendo productos de alta calidad y un servicio excepcional a sus clientes.

Por otro lado, las pruebas implementadas en el sistema permiten verificar con
precisión los comportamientos de los modelos del sistema, asegurando que las operaciones
fundamentales como crear, actualizar, eliminar registros, etc. funcionen correctamente.
Esto proporciona confianza en la integridad de los datos y facilita el mantenimiento del
sistema.

Las mejoras introducidas en las vistas como por ejemplo agregarProveedor,


mediante validaciones explícitas para evitar campos nulos, fortalecen el control de calidad
en el ingreso de datos y evitan errores en la ejecución de procedimientos almacenados.
Asimismo, los mensajes de retroalimentación al usuario mejoran la usabilidad del sistema
y permiten una interacción más clara y efectiva.

De manera general, estas prácticas elevan la calidad del sistema al hacerlo más
robusto, predecible y seguro, lo que se traduce en una menor tasa de errores, una mayor
facilidad para depurar fallos y una base sólida para futuras ampliaciones. La incorporación

40
de pruebas automatizadas también impulsa un desarrollo más ágil y confiable,
especialmente útil en entornos de producción o cuando se trabaja en equipo.

En conclusión, la actualización tecnológica, segura y fuerte, implementada no solo


resuelve problemas inmediatos, sino que también prepara a la Panadería "El Carmen" para
un futuro más eficiente y competitivo robustecida con pruebas del software, demostrando
que la integración de soluciones tecnológicas es una inversión clave para el éxito y la
sostenibilidad en el mercado actual.

41
Bibliografía

Amazon. (24 de Octubre de 2024). Qué es un inventario: concepto, tipos y ejemplos.


Obtenido de Amazon: [Link]
inventario-

AWS. (s.f. de s.f. de s.f.). ¿Qué son las pruebas unitarias? . Obtenido de ¿Qué son las
pruebas unitarias? : [Link]

Careaga, J. (22 de Noviembre de 2024). ¿Qué diferencias existen entre un sistema web y
un sitio web? . Obtenido de aeurus: [Link]
existen-entre-un-sistema-web-y-un-sitio-web/

Dominykas, J. (23 de Abril de 2025). ¿Qué es VS Code? Una descripción general del
popular editor de código y sus características. Obtenido de Hostinger:
[Link]
code?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=tc

Fernández, E. (2 de 11 de 2020). anfix. Obtenido de ¿Qué es una factura y para qué sirve?:
[Link]
sirve

Fernández, E. C. (06 de 06 de 2022). Tokio School. Obtenido de ¿Qué es Django y para


qué se utiliza?: [Link]

Gustavo, B. (8 de Marzo de 2023). Hostinger. Obtenido de ¿Qué es JavaScript?


Introducción básica a JS para principiantes:
[Link]

Gustavo, B. (15 de Abril de 2025). ¿Qué es HTML y para qué sirve? Guía completa con
elementos y funciones básicas. Obtenido de Hostinger:
[Link]

IBM. (s.f. de s.f. de s.f.). ¿Qué son las pruebas de software? Obtenido de ¿Qué son las
pruebas de software?: [Link]

42
Jiménez, J. D. (20 de 11 de 2019). OpenWebinars. Obtenido de Qué es Sass: ventajas,
desventajas y ejemplos de desarrollo: [Link]
ventajas-desventajas-y-ejemplos-de-desarrollo/

Julia, M. (20 de Febrero de 2025). Qué es la gestión de riesgos y cómo aplicarla a tu


proyecto en solo 6 pasos. Obtenido de asana:
[Link]

[Link]. (s.f. de s.f. de s.f.). ¿Qué es CSS? Lenguaje de estilos para dotar de aspecto
visual. Obtenido de Qué es CSS? Lenguaje de estilos para dotar de aspecto visual:
[Link]

PowerData. (09 de 05 de 2019). ¿Qué es un gestor de datos y para qué sirve? Obtenido de
¿Qué es un gestor de datos y para qué sirve?: [Link]
la-gestion-de-datos/que-es-un-gestor-de-datos-y-para-que-sirve

Testlio. (13 de Septiembre de 2024). Pruebas de integración: tipos, procesos, ejemplos y


más. Obtenido de Pruebas de integración: tipos, procesos, ejemplos y más:
[Link]
testing/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=wa

Torodov, M. (14 de Julio de 2023). cloc – Contar líneas de código en muchos lenguajes de
programación. Obtenido de Tecmint: [Link]
[Link]/cloc-count-lines-of-code-in-
linux/?_x_tr_sl=en&_x_tr_tl=es&_x_tr_hl=es&_x_tr_pto=tc

43
Anexo

Teniendo en cuenta el marco teórico, las herramientas de programación y gestión de


información, cada una de ellas son utilizadas.

Además, como extra de las herramientas, hacemos uso de la librería de estilo Sweetaltert2.
“SweetAlert2, es una librería javascript que permite crear ventanas emergentes con un
diseño profesional y fácil de personalizar e implementar, es compatible con la mayoría de
los navegadores web como: Edge, Chrome, Firefox, Safari, entre otros más”Fuente
especificada no válida..

Además, para el diseño de nuestras pantallas para el sistema, hacemos uso de la herramienta
de diseño figma, teniendo cada una de las partes que ha de tener el sistema en cuestión para
hacer muestra, anterior al desarrollo del diseño del sistema.

Dashboard

44
El Dashboard del sistema de facturación e inventario de la panadería "El Carmen"
está diseñado para proporcionar una visión rápida y clara del rendimiento de las ventas y
los productos. En esta vista, se encuentran dos tarjetas principales que permiten al usuario
obtener información detallada basada en fechas específicas.

[Link] de Productos Más Vendidos

• Selector de Fecha: Esta tarjeta incluye un selector de fecha que permite al

usuario elegir un día específico.

• Visualización de Datos: Al seleccionar una fecha, la tarjeta muestra los

productos más vendidos durante ese período. Esto ayuda a identificar los

artículos más populares y ajustar el inventario según la demanda.

[Link] de Ventas por Empleado

• Selector de Fecha: Similar a la primera tarjeta, esta también cuenta con un

selector de fecha que permite filtrar los datos de ventas por día.

• Visualización Gráfica: La tarjeta muestra gráficamente las ventas realizadas

por cada empleado en la fecha seleccionada. Utiliza gráficos de barras para

45
representar claramente los datos, facilitando el análisis del rendimiento

individual de los empleados.

Nueva Factura

La vista de Nueva Factura en el sistema de facturación e inventario de la panadería


"El Carmen" está diseñada para facilitar el proceso de venta y facturación de los productos.
Esta vista incluye los siguientes elementos y funcionalidades:

1. Teclado Numérico

• Funcionalidad: Le permite al empleado ingresar la cantidad de productos que el

cliente desea comprar. Es una herramienta esencial para agilizar la entrada de

datos durante el proceso de venta.

2. Buscador de Productos

• Funcionalidad: Permite buscar y seleccionar los productos que el cliente desea

comprar. Al ingresar el nombre o parte del nombre del producto, el buscador

filtra y muestra las opciones disponibles.

3. Tabla de Detalles de la Factura

46
• Columnas:

o Nombre de Producto: Muestra el nombre del producto seleccionado.

o Cantidad: Indica la cantidad de unidades del producto que el cliente

desea comprar.

o Precio de Venta: Muestra el precio unitario del producto.

o Subtotal: Calcula y muestra el subtotal para cada producto, basado en la

cantidad y el precio unitario.

4. Buscador de Cliente

Funcionalidad: Permite buscar y seleccionar un cliente que ya ha comprado


anteriormente en la panadería. Esto es útil para mantener un registro de las ventas a clientes
frecuentes y agilizar el proceso de facturación.

5. Botón de Guardar Factura

Funcionalidad: Al hacer clic en este botón, se genera un nuevo registro de venta y


un ticket de factura que incluye todos los detalles de la venta. El ticket contiene la lista de
productos, cantidades, precios y el total de la venta y el empleado que realizo la venta,
proporcionando al cliente un comprobante detallado de su compra.

Esta vista de Nueva Factura asegura un proceso de venta eficiente y organizado,


permitiendo a los empleados de la panadería "El Carmen" atender a los clientes de manera
rápida y precisa, mejorando así la experiencia de compra.

47
Registro de facturas

La vista de Registro de Facturas en el sistema de facturación e inventario de la


panadería "El Carmen" permite a los empleados revisar y gestionar todas las facturas
emitidas. Esta vista incluye varias funcionalidades clave para facilitar la búsqueda y
revisión de facturas:

1. Seleccionadores de Fechas

• Funcionalidad: Dos seleccionadores de fechas permiten especificar un rango de

fechas. Al seleccionar un rango de fechas específico, se muestran todas las

facturas emitidas dentro de ese periodo. Esto facilita la búsqueda de facturas

basadas en la fecha de emisión.

2. Selector de Orden de Facturas

• Opciones:

o Más Recientes: Muestra las facturas más recientes.

o Más Antiguas: Muestra las facturas más antiguas.

o Funcionalidad: Permite ordenar las facturas según la preferencia, ya sea

por las más recientes o por las más antiguas.

48
3. Tabla de Facturas

Columnas:

• ID de Factura: Muestra el identificador único de cada factura.

• Vendedor: Indica el nombre del empleado que realizó la venta.

• Cliente: Muestra el nombre del cliente asociado con la factura.

• Fecha: Indica la fecha en que se emitió la factura.

• Hora: Muestra la hora exacta de la emisión de la factura.

• Total: Muestra el monto total de la factura.

• Detalles: Incluye un icono de ojo. Al hacer clic en este icono, se muestra una

ventana emergente o una nueva vista con los detalles completos de la factura,

proporcionando una visión detallada de los productos y precios incluidos en esa

factura

Esta vista de Registro de Facturas permite una gestión eficiente y detallada de


todas las facturas emitidas, facilitando la búsqueda, revisión y análisis de las ventas
realizadas en la panadería "El Carmen".

Mostrar Productos

49
La vista de Mostrar Productos en el sistema de facturación e inventario de la
panadería "El Carmen" está diseñada para proporcionar una visión completa y detallada
del inventario de productos. Esta vista incluye las siguientes funcionalidades y elementos:

1. Tabla de Productos

o Columnas:

o Nombre del Producto: Muestra el nombre de cada producto.

o Categoría: Indica la categoría a la que pertenece el producto, facilitando

la organización y búsqueda por tipo de producto.

o Existencia: Muestra la cantidad disponible de cada producto en la

panadería, permitiendo un seguimiento preciso del inventario.

o Precio de Venta: Indica el precio al que se vende el producto.

o Acciones: Incluye dos botones:

▪ Detalles de Productos: agrega fecha de registro y caducidad,

además de la cantidad específica del producto.

▪ Eliminar: Permite eliminar el producto del inventario.

▪ Actualizar: Permite editar la información del producto, como su

nombre, categoría, cantidad en existencia y precio de venta.

2. Buscador de Productos

o Funcionalidad: Este buscador permite encontrar rápidamente un producto

específico al ingresar su nombre o parte del mismo. Facilita la navegación y

gestión del inventario, especialmente cuando hay muchos productos.

3. Botón de Agregar Producto

50
o Funcionalidad: Permite agregar nuevos productos al inventario. Al hacer clic en

este botón, se abre un formulario donde se puede ingresar toda la información

necesaria del nuevo producto, como nombre, categoría, cantidad y precio de

venta.

Esta vista de Mostrar Productos ofrece una manera eficiente y organizada de


gestionar el inventario de la panadería "El Carmen", asegurando que los productos se
mantengan actualizados y que el personal pueda acceder fácilmente a la información
necesaria para la gestión diaria.

Mostrar clientes

La vista de Mostrar Clientes en el sistema de facturación e inventario de la


panadería "El Carmen" está diseñada para proporcionar una visión completa y detallada de
los clientes registrados. Esta vista incluye las siguientes funcionalidades y elementos:

1. Tabla de Clientes

• Columnas:

o Nombre: Muestra el nombre de cada cliente.

o Apellido: Indica el apellido del cliente, facilitando la identificación

completa del mismo.

51
o Teléfono: Muestra el número de teléfono del cliente, permitiendo una

rápida comunicación si es necesario.

o Acciones: Incluye dos botones:

▪ Eliminar: Permite eliminar al cliente del registro.

▪ Actualizar: Permite editar la información del cliente, como su

nombre, apellido y número de teléfono.

2. Botón de Agregar Cliente

o Funcionalidad: Permite agregar nuevos clientes al sistema. Al hacer clic en este

botón, se abre un formulario donde se puede ingresar toda la información

necesaria del nuevo cliente, como nombre, apellido y número de teléfono del

cliente.

Mostrar Empleados.

52
La vista de Mostrar Empleados en el sistema de facturación e inventario de la
panadería "El Carmen" está diseñada para proporcionar una visión completa y detallada de
los empleados registrados. Esta vista incluye las siguientes funcionalidades y elementos:

1. Tabla de Empleados

o Columnas:

o Nombre del Empleado: Muestra el nombre de cada empleado.

o Apellido: Indica el apellido del empleado, facilitando la identificación

completa del mismo.

o Teléfono: Muestra el número de teléfono del empleado, permitiendo una

rápida comunicación si es necesario.

o Rol: Indica el rol o puesto del empleado dentro de la panadería, como

vendedor o administrador, etc.

o Acciones: Incluye dos botones:

▪ Eliminar: Permite eliminar o dar de baja al empleado.

▪ Actualizar: Permite editar la información del empleado, como

su nombre, apellido, número de teléfono y rol.

2. Buscador de Empleados

Funcionalidad: Este buscador permite encontrar rápidamente un empleado


específico al ingresar su nombre. Facilita la navegación y gestión de los registros de
empleados, especialmente cuando hay una gran cantidad de registros.

3. Botón de Agregar Empleado

Funcionalidad: Permite agregar nuevos empleados al sistema. Al hacer clic en este


botón, se abre un formulario donde se puede ingresar toda la información necesaria del

53
nuevo empleado, como nombre, apellido, número de teléfono y rol del nuevo empleado
que se desea agregar.

Cambiar Foto de perfil

La vista de Cambiar Foto de Perfil en el sistema de facturación e inventario de la


panadería "El Carmen" está diseñada para que los empleados puedan actualizar su foto de
perfil y sus credenciales de acceso si lo desean. Esta vista incluye las siguientes
funcionalidades y elementos:

1. Botones para la Gestión de la Imagen de Perfil

o Elegir Imagen: Permite al empleado seleccionar una nueva imagen desde su

dispositivo. Al hacer clic en este botón, se abre un explorador de archivos para

elegir la imagen deseada.

o Actualizar Imagen del Perfil: Una vez seleccionada la nueva imagen, este botón

permite subir y actualizar la imagen de perfil del empleado.

2. Actualizar Credenciales del Perfil

54
o Formulario de Actualización de Credenciales: Situado en la parte inferior

derecha, permite al empleado actualizar su nombre de usuario y contraseña. El

formulario incluye los siguientes campos:

▪ Nombre de Usuario: Campo para indicar su nombre de usuario

actual

▪ Contraseña Actual: Campo para ingresar la contraseña actual del

empleado, necesaria para verificar la identidad.

▪ Nueva Contraseña: Campo para ingresar la nueva contraseña.

▪ Confirmar Contraseña: Campo para confirmar la nueva

contraseña, asegurando que se ingresó correctamente.

o Botón de Actualizar Credenciales: Una vez completados todos los campos, este

botón permite actualizar las credenciales del empleado en ese perfil.

Esta vista de Cambiar Foto de Perfil proporciona una manera sencilla y segura
para que los empleados de la panadería "El Carmen" mantengan su perfil y credenciales
actualizados, mejorando así la seguridad y personalización de su experiencia en el sistema.

55
Usuarios

56
Entorno de trabajo para la creación del sistema de la panadería

Tests:

57
Aplicación de Principios de Diseño:

Ejemplo de interfaces con clientes:


Se elaborara esta interfaz con el fin de cualquier archivo o clase lo implemente se
apegue al contrato que ella trae.

58
Ejemplo de repositorio con clientes:
La fuente de datos en nuestro sistema se aisla para cumplir con el principio de
inversión de dependencias y separación de responsabilidades teniendo una arquitectura
limpia.

Lógica de Negocio en clientes:


Ahora esta clase solo se encarga de validar cada uno de los atributos
correspondientes sin importarle de dónde vienen los datos, esos es separación de
responsabilidades:

59
Vista para clientes:
Y al final un archivo de [Link] solo renderiza las vistas listas para el front:

60
61

También podría gustarte