Documento de Proyecto Alejandro Salas Casanova Terminado 4
Documento de Proyecto Alejandro Salas Casanova Terminado 4
Documento de Proyecto Alejandro Salas Casanova Terminado 4
Escuela de informática
Anteproyecto de bachillerato
Sustentante:
Marzo, 2024
2
Tabla de Contenido
Índice de Tablas.................................................................................................... 5
Índice de Figuras...................................................................................................6
Índice de Anexos.................................................................................................10
Introducción..................................................................................................... 11
1.2.1. Problemática......................................................................................15
2.3 Resultados.................................................................................................30
2.3.1.1 Hardware..........................................................................................31
2.3.1.2 Software...........................................................................................31
2.3.1.3 Redes...............................................................................................31
2.3.3 Procesos............................................................................................. 32
3.2 Desarrollo.................................................................................................. 35
3.2.2.1 Entidades.........................................................................................37
3.2.2.2 Atributos........................................................................................... 38
3.2.2.3 Relaciones....................................................................................... 41
3.2.4.1 Actores............................................................................................. 58
3.2.4.3 Diagrama..........................................................................................59
3.3 Resultados.................................................................................................77
4.4 Resultados...............................................................................................122
5. Capítulo 5: Implementación...........................................................................122
5.1 Procedimiento..........................................................................................122
6. Capítulo 6: Conclusión.................................................................................128
5
Bibliografía........................................................................................................ 131
Anexos.............................................................................................................. 132
Índice de Tablas
Índice de Figuras
6
eliminación).................................................................................................................. 114
"appsettings.json".........................................................................................................127
"SuperAlfoliDbContext.cs"............................................................................................127
Índice de Anexos
Introducción
desarrollar, brindando una base sólida del ámbito que envuelve la propuesta. Se
su impacto en la empresa.
del proyecto, para ello, se aplicarán diversas técnicas de análisis para encontrar
el problema principal.
meta final del proyecto y los objetivos específicos que muestran el paso a paso
Costa Rica, este fue fundado por su actual dueño Jose Luis Porras Solís en el
año 1991; esta empresa cuenta con la cédula jurídica 502440240 y el número de
El mercado objetivo de este negocio son las personas que viven en las
cercanías del lugar, que buscan realizar sus compras diarias, igualmente, se
contra el Super Alfolí, los más cercanos suelen ser pequeños negocios los
suelen tener inventarios reducidos y poca variedad; en las partes más alejadas
productos y clientes fijos, además de que cuentan con sistemas digitales (como
páginas web con información del local y los artículos en venta) que les permiten
Como menciona (GuellCom., 2023), que un super cuente con una página
profesional, por eso, muchas tiendas buscan establecer su propio entorno digital
para competir con las otras empresas; El Super Alfolí es carente de un sistema
leales, este carece de presencia en línea, esto podría reducir el crecimiento del
negocio. Con el aumento de los establecimientos que han aplicado por sistemas
características como:
Servicio:
la página, sin tener que preocuparse por los horarios del local, permitiéndoles
Posicionamiento y alcance:
sin la necesidad de que acudan al local, esto es perfecto para los clientes que
Reducción de costos:
este, lo que llevaría a una mejor eficiencia operativa y una reducción de costos
Incremento en ventas:
elevado en ventas mediante su sitio web al implementar este servicio, este caso
demuestra que aplicar este sistema puede ser una estrategia efectiva para
1.2.1. Problemática
presencia en línea y opciones de compra más convenientes, esto hace que los
alternativas
retener clientes
Super Alfolí plantea una serie de desafíos que afectan tanto su capacidad para
satisfacer las necesidades de los clientes como su eficiencia interna. Con esta
hay que realizar una investigación del estado actual de la empresa para
la manera más eficiente para completar los objetivos, este enfoque permitirá
flujo de clientes.
para aumentar la presencia en línea del Super Alfolí y así mejorar el alcance y la
este propósito se dividirá en objetivos específicos los cuales detallarán las tareas
específicos, estos detallarán las tareas a realizar a lo largo del proyecto; también
de estos objetivos.
actual de la empresa, saber las fortalezas y las debilidades del negocio nos
ayudará a decidir cuál es el mejor camino para solucionar este problema, lo que
negocio.
siguiente objetivo:
desarrollo.
20
buscará desarrollar el sistema intentando que sea fácil de usar, con una
planificadas para cumplir con los requisitos del aplicativo expuestos por la
empresa.
alojamiento en la nube con el fin de que esté disponible para los clientes.
sistema.
sistema el cual permita a los clientes visualizar los productos vendidos por la
21
tienda y permitirles realizar pedido tipo recoger en el local o “Pick up” (es
acudir a la tienda para recoger sus productos y cancelar el monto); del lado del
recolección en el local.
la aplicación web de la manera más eficiente que cumpla con los requisitos
Tercer entregable:
costos lo más bajo posible, por eso se debe buscar utilizar los servicios
22
página.
cuales tres serán para el primer entregable, tres para el segundo y seis para el
Primer entregable:
Crear una entrevista para realizar al dueño del Super Alfolí, buscando las
negocio.
empresa.
Segundo entregable:
del proyecto.
23
existentes.
Tercer entregable:
Tabla 1
negocio.
diagnóstico. preguntas.
la encuesta.
tecnologías y herramientas
a utilizar.
facilitar la creación de la
base de datos y el
5
diagrama de flujo para que
comprensión de los
procesos
entender la interacción de
seleccionada.
de información en donde
local.
los productos.
productos.
pedidos realizados
recientemente.
Realizar pruebas al
27
detalles pendientes.
elegidas.
2. Capítulo 2: Objetivo 1
saber sus fortalezas y debilidades, además, es necesario saber algunos datos extra
para recopilar datos a la hora de realizar un proyecto, aprovechando el fácil acceso que
se tiene con el dueño del local, se utilizará este método para obtener información
valiosa.
Igualmente hay que tener distintas cosas en mente como: realizar preguntas
estructurar la entrevista.
obtener las respuestas, las cuales serán analizadas y utilizadas para facilitar el diseño
Esta entrevista buscará recaudar datos con un enfoque mixto para utilizar esta
información de cómo trabajan de momentos algunos temas como los inventarios y sus
expectativas de la aplicación, para ello, se realizará las entrevistas al dueño del Super
Se acudirá al local con las preguntas y se escribirán las respuestas que el brinde
esperada de ellas:
actualmente?
RAM, almacenamiento)?
29
componentes.
administración?
de software.
personal?
sus necesidades.
aplicación web?
funcionalidades solicitadas.
11- ¿Tiene alguna sugerencia específica sobre cómo debería ser el proceso de
Nos permite ver la perspectiva del dueño y como se espera que sea la
2.3 Resultados
del local Jose Luis Porras Solís, se realizaron las preguntas y se apuntaron las
2.3.1.1 Hardware
Mencionan que en el local cuentan con dos computadoras, una se suele utilizar
para un software de cobro y cajas y el otro equipo se utiliza para gestiones del banco
componentes del equipo creen que son gama media y que funcionan de manera
óptima.
2.3.1.2 Software
Tienen un programa que habían comprado hace unos años el cual registra los
productos por códigos de barra y permite realizar facturas de manera más sencilla, se
2.3.1.3 Redes
Cuentan con un internet de fibra óptica con una velocidad de 50Mbs, en el local
se conectan mediante wifi y una infraestructura cableada para las dos computadoras,
afirman que el servicio suele ser estable y que pocas veces tienen problemas de
conectividad.
Actualmente cuentan con seis empleados los cuales son, un encargado de caja,
una persona de limpieza, un panadero, dos abarroteros y él, que, aunque es el jefe,
realiza las funciones que se necesiten en el día, menciona que tres de sus empleados y
32
2.3.3 Procesos
Muchos clientes han mencionado que les gustaría poder revisar los productos
recolección al local, se reciben comentarios positivos sobre lo útil que podría llegar a
ser.
El señor Jose nos comenta que le gustaría que él pudiera ver que productos
están agotados para poder realizar un nuevo pedido, además, de que la aplicación se
Las respuestas obtenidas nos dejan claro ciertos puntos, el local cuenta con la
tecnología suficiente para poder implementar la aplicación web, los dos equipos son
capaces de ejecutar sin problemas un navegador web con un sistema como el que se
espera diseñar, además, cuenta con un sistema de redes suficientemente estable para
Los empleados son capaces de utilizar aplicativos en las computadoras con una
Los clientes esperan la página web ya que facilita algunos de los procesos a la
hora de realizar una compra, según el cronograma propuesto la aplicación estaría lista
para el tercer cuatrimestre del año 2024, lo que encaja con el deseo del dueño de
3. Capítulo 3: Objetivo 2
programa, esto nos ayuda a identificar las funciones necesarias y como interactúan
entre ellas.
flujo y un diagrama de casos de uso, cada uno con su función e importancia, además,
brindar una especificación clara de las tecnologías que se planean utilizar a lo largo del
proyecto.
identificar como las entidades se relacionan entre ellos, esto se hace mediante
Las relaciones muestran la conexión entre las entidades, suelen ser verbos
círculo, siempre debe existir uno que funcione como identificador único.
relación.
cada entidad representa una tabla, los atributos son sus columnas y la relaciones y la
Identificar los pasos de una tarea para poder completarla, de esta manera
podemos diseñar un proceso, corroborar que se están cumpliendo las tareas y mejorar
Según escribió (Etecé, 2024) el diagrama está formado por símbolos y líneas,
los rectángulos con esquinas redondeadas marcan el inicio y el final de la tarea, los
rectángulos con esquinas normales son los procesos, los rombos son decisiones las
proceso requiere entradas de datos o genera salidas de datos, las líneas sirven para
Y por último el diagrama de casos de uso, es un tipo de diagrama UML que nos
permite ver cuáles son los roles de un sistema y como interactúan con la aplicación,
un esqueleto.
El caso de uso es una acción dentro del sistema se dibuja con un óvalo con
Todas estas herramientas nos ayudarán a crear un diseño del sistema que se
programación.
3.2 Desarrollo
estos nos ayudan a que el proyecto siga un camino claro y se comprenda que se
funcionales, juntos representan qué debe realizar la aplicación para que sea
satisfactoria.
teléfono o la contraseña.
atención.
cantidad actual.
6. El usuario debe poder buscar un producto utilizando una parte del nombre.
listo.
10. El sistema debe notificar mediante correo electrónico en caso de que pedido
sea cancelado.
11. Permitir a los administradores crear, leer, actualizar y eliminar los datos en la
tabla de usuarios.
12. Permitir a los administradores crear, leer, actualizar y eliminar los datos en la
tabla de productos.
un pedido.
disponibilidad.
Con esta lista creada se pueden empezar a diseñar los diagramas asegurando que
3.2.2.1 Entidades
Pedidos: guarda la información de los pedidos realizados por los usuarios como
usuario y su cantidad.
Sesión: posee datos necesarios para manejar la sesión del usuario como la
3.2.2.2 Atributos
Usuarios:
Correo: correo electrónico del usuario, se utiliza para iniciar sesión y para
administrador.
Productos:
Categoría: categoría del producto, sirve para poder organizar los productos
por categorías.
visualización de productos.
Pedidos:
Estado: estado actual del pedido, este puede ser Pendiente - Completado -
Cancelado.
Detalles de pedidos:
IDDetalle (PK): sirve como identificador único para cada detalle de pedido.
Carritos:
Fecha: fecha en la que se creó el carrito, sirve para saber cuándo eliminar el
Objetos de carrito:
IDObjetos (PK): sirve como identificador único para cada objeto en carrito.
IDProducto (FK): sirve para identificar cuál producto fue agregado al carrito.
Sesión:
3.2.2.3 Relaciones
Usuarios a Pedidos: un usuario puede hacer varios pedidos, pero un pedido solo
Usuarios a Sesión: un usuario solo puede tener una sesión y una sesión solo
Una vez definidas estas partes se puede crear el siguiente diagrama para
resumir lo mencionado:
obtenida en el paso anterior mediante una visión general y abstracta, es perfecta para
columnas y las relaciones en uniones de llaves foráneas y muestra el tipo de dato que
datos.
El diagrama de flujo es una herramienta que nos permite ver cómo se desarrolla
un proceso, esto nos permite entender cómo avanza un algoritmo sin la necesidad de
leer largos textos y ayuda a los programadores a definir la estructura del código antes
de iniciar a programar.
45
El primer paso para crear los diagramas es definir los procesos principales los
cuales se quieren representar, para ayudarnos con esto podemos ver los
requerimientos anteriormente redactados para tener una idea de que algoritmos debe
realizar la aplicación.
utilizan figuras para representar los procesos, las decisiones, las salidas e ingresos de
ingresa sus datos personales, luego el sistema confirma que los datos sean válidos
(en caso de no serlos se notifica para que el usuario los modifique) y después
2. Inicio de sesión
credenciales (correo electrónico y contraseña), el sistema valida que los datos sean
3. Recuperación de contraseña
4. Visualización de productos
despliegan en una lista en donde se puede ver sus atributos y si el producto está
actualmente disponible.
existe algún carrito (si no existe uno se crea) y se agrega el identificador del producto al
carrito.
6. Realización de pedidos
pedido, en caso de ser aceptada se procede a crear el registro del pedido en la base de
de que hubiera una confusión con la cantidad en bodega, después de eso puede
actualizar el estado del pedido a listo cuando este pueda ser recogido o a cancelado en
caso de que algo salga mal, independiente de la nueva condición el cliente recibe una
notifica al usuario.
visualizarlo.
mercancía y el usuario puede cambiar los datos necesarios y, una vez confirmado,
notifica al usuario.
57
visualizar.
y el usuario puede cambiar los datos necesarios y, una vez confirmado, estos de
Se solicita los pedidos registrados y estos se despliegan como una lista con los
Se muestra la información actual del usuario para que él decida que desea
El diagrama de caso de uso nos ayuda a tener una referencia clara de cómo
Para crear un diagrama se deben definir los actores y los casos de uso, después
mostrar de manera grafica como interactúan estos mediante figuras para que sea
sencillo de entender, además, se debe explicar cada caso de uso. Esta exposición
debe mostrar datos como: el nombre del proceso, el nombre del autor, la fecha de
postcondiciones.
3.2.4.1 Actores
de administrador, ya sea que haya iniciado sesión o no. Crear una cuenta e
2. Administrador: son los usuarios que hayan iniciado sesión con una cuenta tipo
interactúa con el sistema, cada actor suele tener sus propios casos.
3.2.4.3 Diagrama
Al unir a los actores con los casos de uso podemos formar el siguiente diagrama
Fecha: 15/07/2024
Descripción: permite a los clientes ver una listo de productos en venta y su
disponibilidad.
62
Actores: cliente
Flujo normal:
1. El cliente entra a la pestaña de productos.
2. El sistema muestra una lista de productos y su disponibilidad.
Nombre: Registrarse
Fecha: 15/07/2024
Descripción:
Permite a los clientes poder registrar un usuario en la base de datos.
Actores:
Cliente
Precondiciones:
El cliente no debe tener una cuenta, el cliente debe estar en la pestaña de registro
Flujo normal:
1. El cliente ingresa su nombre, apellidos, correo electrónico, contraseña y teléfono.
2. El sistema verifica los datos y crea una nueva cuenta si son válidos.
3. El sistema notifica al cliente que la cuenta ha sido creada
Flujo alternativo:
2. Los datos ingresados no válidos, el sistema muestra un mensaje de error.
Postcondiciones:
Se agrega un nuevo usuario a la base de datos.
Fecha: 15/07/2024
Descripción:
Permite a los clientes iniciar sesión.
Actores:
Cliente.
Precondiciones:
El cliente debe tener una cuenta y saber sus credenciales.
Flujo normal:
1. El cliente accede a la página de inicio de sesión.
2. El cliente ingresa su correo electrónico y su contraseña.
3. El sistema verifica las credenciales y permite el acceso si son correctas.
Flujo alternativo:
3. Las credenciales son incorrectas, el sistema muestra un mensaje de error.
Postcondiciones:
Se crea una nueva sesión en la base de datos.
65
Fecha: 15/07/2024
Descripción:
Permite a los clientes agregar productos al carrito de compras.
Actores:
Cliente.
Precondiciones:
El cliente debe haber iniciado sesión.
Flujo normal:
1. El cliente selecciona un producto.
2. El cliente selecciona agregar a el carrito.
3. El sistema actualiza el carrito del cliente.
Flujo alternativo:
No hay flujo alternativo.
Postcondiciones:
Se agrega un nuevo registro de carrito a la base de datos.
66
Fecha: 15/07/2024
Descripción:
Permite al cliente realizar un pedido para recoger en la tienda.
Actores:
Cliente.
Precondiciones:
El cliente debe haber iniciado sesión.
El cliente debe tener al menos un artículo en el carrito.
Flujo normal:
1. El cliente revisa su carrito.
2. El sistema actualiza los productos en carrito según la disponibilidad actual.
3. El cliente confirma el pedido.
4. El sistema envía un correo de confirmación con el resumen del pedido al cliente.
5. El sistema notifica al administrador sobre un nuevo pedido.
Flujo alternativo:
2. No hay ningún artículo disponible y el sistema no puede realizar el pedido.
Postcondiciones:
Se crea un nuevo pedido en la base de datos.
67
Fecha: 15/07/2024
Descripción:
Permite a los clientes actualizar su información personal en su perfil.
Actores:
Cliente.
Precondiciones:
El cliente debe haber iniciado sesión.
Flujo normal:
1. El cliente accede a la página de perfil.
2. El cliente selecciona editar perfil.
3. El cliente actualiza su información (nombre, apellidos, teléfono, contraseña).
4. El cliente guarda los cambios.
5. El sistema verifica y actualiza la información del perfil en la base de datos.
6. El sistema notifica al cliente que los cambios se han realizado exitosamente.
Flujo alternativo:
3. Si los datos ingresados no son válidos, el sistema muestra un mensaje de error y no
guarda los cambios.
Postcondiciones:
68
Fecha: 15/07/2024
Descripción:
Permite a los clientes recuperar su contraseña en caso de olvido.
Actores:
Cliente.
Precondiciones:
El cliente debe tener una cuenta registrada en el sistema.
Flujo normal:
1. El cliente accede a la página de inicio de sesión y selecciona la opción de “Olvidé mi
contraseña”.
2. El cliente ingresa a su correo electrónico registrado.
3. El sistema verifica la existencia de una cuenta con ese correo electrónico.
4. El sistema enviar un correo electrónico con un enlace para reestablecer la
contraseña.
5. El cliente abre el enlace.
6. El cliente es redirigido a una página para ingresar una nueva contraseña.
7. El cliente ingresa y confirma la contraseña.
69
Fecha: 15/07/2024
Descripción:
Permite al administrador realizar un CRUD en la tabla de productos.
Actores:
Administrador.
Precondiciones:
El administrador debe haber iniciado sesión.
Flujo normal:
1. El administrador accede a la página de gestión de productos.
2. El administrador puede crear un nuevo producto.
3. El administrador selecciona el producto con el que desea trabajar.
70
Flujo alternativo:
2. Los datos ingresados no son válidos, el sistema muestra un mensaje de error.
Postcondiciones:
La base de datos de productos se ve actualizada.
Fecha: 15/07/2024
Descripción:
Permite al administrador realizar un CRUD en la tabla de usuarios.
Actores:
Administrador.
Precondiciones:
El administrador debe haber iniciado sesión.
71
Flujo normal:
1. El administrador accede a la página de gestión de usuarios.
2. El administrador puede crear un nuevo usuario.
3. El administrador selecciona el usuario con el que desea trabajar.
4. El administrador puede editar o eliminar el usuario.
5. El sistema actualiza la lista de usuarios en consecuencia.
Flujo alternativo:
2. Los datos ingresados no son válidos, el sistema muestra un mensaje de error.
Postcondiciones:
La base de datos de usuarios se ve actualizada.
Fecha: 15/07/2024
Descripción:
Permite al administrador ver una lista de pedidos realizados.
Actores:
Administrador.
72
Precondiciones:
El administrador debe haber iniciado sesión.
Debe haber al menos un pedido.
Flujo normal:
1. El administrador accede a la página de pedidos.
2. El sistema muestra la lista de pedidos con sus estados teniendo como prioridad los
pedidos en curso.
Flujo alternativo:
No hay flujo alternativo.
Postcondiciones:
No hay postcondiciones.
Fecha: 15/07/2024
73
Descripción:
Permite al administrador actualizar el estado del pedido.
Actores:
Administrador.
Precondiciones:
El administrador debe haber iniciado sesión.
Debe haber al menos un pedido.
Flujo normal:
1. El administrador accede a la página de pedidos.
2. El sistema muestra la lista de pedidos con sus estados teniendo como prioridad los
pedidos en curso.
3. El administrador selecciona un pedido.
4. El administrador actualiza el estado del pedido (pendiente, listo, cancelado).
5. El sistema notifica al cliente sobre el cambio de estado.
Flujo alternativo:
4. Si el pedido no puede ser actualizado, el sistema muestra un mensaje de error.
Postcondiciones:
Se actualiza el registro del pedido en la base de datos.
aplicación, hay que buscar que estas cumplan con los requerimientos del sistema y que
faciliten la programación.
ASP.NET Core Web App MVC .NET 8.0: moderno el cual se utiliza para construir
completamente modular, lo que significa que se pueden incluir solo los componentes
NET 8.0 representa la versión del marco de trabajo siendo una de las últimas
versiones lanzadas, este vino con mayor rendimiento, posibilidad de utilizar Blazor,
modular y más ligero, además cuenta con integraciones a ciertas tecnologías, se puede
utilizar código tipo Razor y es una de las plataformas más rápidas de desarrollo web.
desarrollo de software, divide la aplicación en tres partes las cuales cumplen distintas
con la base de datos donde interactúan con las entidades y manejan la persistencia de
datos, esto se logra mediante clases de C# las cuales representan las tablas.
View: gestiona la presentación y las interfaces del usuario, suelen utilizar Razor
el cual es un motor de vista que permite combinar código C# con HTML de manera
información al usuario.
Controller: procesa las solicitudes del usuario e interactúa con las vistas y el
modelo, gestiona la lógica de la página, al recibir una petición interactúa con el modelo
75
para obtener los datos necesarios y luego selecciona la vista para presentarla al
usuario.
Se eligió esta tecnología debido a que cumple con las necesidades para la
bien tecnologías como NodeJS ofrecen mayor velocidad, esta opción ofrece más
Ventajas:
mantenimiento.
investigación.
Desventajas:
una herramienta de administración de SQL Server que proporciona una interfaz gráfica
Ventajas:
Desventajas:
correcta.
Bootstrap v5.1.0:
modular, ligero, ayuda a crear diseños responsivos, lo cual es importante para este
proyecto, posee clases utilitarias como “mt-{n}” las cuales permiten aplicar estilos
directamente en HTML sin tener que crear un CCS adicional e incluye una amplia
las pantallas de distintos tamaños y como los componentes son estilizados por defecto
navegación, además se utilizarán las clases utilitarias, lo cual lo hace una excelente
opción.
Ventajas:
1. Acelera el desarrollo evitando tener que crear estilos desde cero para
cada componente
código limpio.
Desventajas:
78
1. Las interfases creadas con Bootstrap pueden tener un estilo similar dando
adecuada.
Google Fonts:
Google Fonts, se aplicará en toda la página brindando una mejor calidad grafica.
ser un recurso optimizado para la web. Las fuentes de Google Fonts son de código
Ventajas:
sitio web.
Desventajas:
Con estas tecnologías se espera cumplir con todas las necesidades, ahorrar
calidad.
Para poder implementar el servicio para que todos los usuarios puedan acceder
Mediante esta herramienta podremos migrar la base de datos local creada para
Ventajas:
Desventajas:
pago.
3.3 Resultados
Con todos estos componentes listos podemos comenzar con la creación del
sistema, todos los elementos guiaran el desarrollo de la página web, esto ayudara a
módulos y alinear las expectativas del proyecto para que todas las partes estén en la
misma página.
la mayoría del diseño creado para respetar la concordancia, pero el proyecto aún
se logrará que el desarrollo avance sin inconvenientes y en caso de que hubiera uno,
4. Capítulo 4: Objetivo 3
Para comenzar a trabajar debemos descargar una aplicación que nos sirva
como ambiente de desarrollo, se utilizará Visual Studio 2022, este cuenta con
81
nuestro programa, con SQL Server Management Studio 19 podemos realizar consultas
para poder crear las tablas; basándonos en el diagrama de entidad relación, podemos
utilizar el “create table” para estructurar cada una de las tablas necesarias, hay que
incluir los campos requeridos y su tipo de dato a almacenar, es importante que los
campos identificadores sean “identity (1,1)” (1,1 representa que el campo incrementa
de 1 en 1) y que sea “primary key”, además, los campos de llaves foráneas deben
utilizar el “foreign key references Tabla(Campo)” para especificar a que tabla hacen
Ahora en Visual Studio debemos crear un proyecto, este debe ser con la plantilla
de “ASP.NET Core Web App (Model – View - Controller)” y le ponemos como nombre
“SuperAlfoliWebApp”.
la base de datos, para ello debemos enviar como parámetro el objeto json creado
anteriormente.
crear los modelos utilizando nuestra base de datos como apoyo, debemos escribir en la
los modelos que hacen referencia a cada tabla en nuestra base de datos.
Con esto listo tenemos el proyecto con una conexión a la base de datos
mediante el DbContext y una carpeta con los modelos que hacen referencia a cada
tabla.
87
importa los archivos requeridos para que funcione la página (hojas de estilo, fuentes de
archivo “site.css” ubicado en la carpeta css en la raíz del proyecto, aquí se añadirán
usuarios clientes y otra para administradores, los botones del administrador son
realizados.
La página se divide en dos partes, una en donde los clientes podrán ver una lista
de productos e información del local y al iniciar sesión poder crear pedidos de tipo
las mencionadas anteriormente, para verificar el tipo de cuenta actual se lleva registro
almacenados.
entienda el contexto de la empresa, hay un marco donde se puede ver la ubicación del
disponibles con un botón de “Agregar al carrito”, se puede filtrar los resultados por
categorías, o buscar por nombre, al intentar agregar al carrito solicita al cliente iniciar
sesión para poder continuar; los clientes autentificados podrán agregar artículos a su
una instancia del contexto de la base de datos, esta se utiliza para interactuar con ella
correspondientes a la consulta generada y los ejecuta, esto nos facilita las tareas de
CRUD (Crear, Leer, Actualizar y Eliminar) y nos ayuda a manejar la gestión de cambios;
esta clase será muy usada a lo largo del proyecto cada vez que necesitemos realizar
Con lo anterior en mente solo debemos solicitar todos los registros de los
productos y enviarlos al “view” para darles un formato; pero, debido a que en la página
se puede filtrar por categoría o por búsqueda, hay que agregar otros procesos en caso
de que se haya optado por una de estas opciones. Se crea una variable que almacena
la consulta que se vaya a realizar y se pasa por un grupo de consultas, si existe una
donde el nombre contenga la cadena escrita; se crea una función llamada “GetImage”
Figura 33 Método para desplegar lista de productos verificando si existe algún filtro por
categoría o nombre
93
recuperación para poder cambiar la clave. O en caso de que no se posea una cuenta
pueda crear una con unos simples pasos. Al ingresar al sistema se puede acceder al
94
consulta.
Para iniciar sesión busca un usuario con el cual concuerde el correo y después
Para registrar muestra una nueva vista formulario donde se deben agregar datos
registró, luego se envía un enlace de recuperación el cual se crea mediante una ficha
aleatoria; si el usuario entra en el enlace del correo su clave será cambiada a una
nueva generada por un método el cual selecciona aleatoriamente seis caracteres entre
cual permite enviar estos mensajes mediante el protocolo SMTP (Simple Mail Transfer
106
Protocol), para ello debemos brindar las credenciales y configurar ciertas opciones para
lograr el objetivo.
utilizar como: el host, el puerto, el nombre, el email y la contraseña, para este sistema
Con esto listo solo debemos crear un método que envié los correos los cuales
después crear el correo, agregar los destinatarios e intentar enviar el correo de manera
asincrónica, esta clase será usada cada vez que se necesite enviar un correo a un
registra un cliente).
107
restringir el acceso a las acciones que solo debería realizar los super usuarios, esta
109
verifica el rol del usuario y en caso de no tener rol (no ha iniciado sesión) o ser cliente
ver detalles de los ya existentes, se utiliza de nuevo el “DbContext” para interactuar con
la base de datos, primero se hace una solicitud para desplegar todos los productos en
una lista.
Para crear un nuevo registro, se solicita la información del artículo y una imagen
Y por último para editar se solicitan los datos actuales para desplegarlos, cuando
(Create, Read, Update, Delete) con las cuentas de las personas registradas,
si su rol, nombre, apellidos, teléfono y estado de la cuenta (En caso de que desee
suspenderla por algún motivo especial), el proceso es el mismo que con la tabla de
productos con algunas variaciones como, al crear un usuario se envía al correo una
contraseña temporal.
organizada en colores según su estado actual (verde: pendiente, negro: finalizado, rojo:
cancelado).
Figura 74 Código Razor para generar lista de pedidos y organizarlo según su estado
actual.
120
mensaje al cliente indicando que ya puede acudir al local a recoger el pedido, además
incluye todos los cambios realizados al pedido y el nuevo total. También, según la
necesidad lo requiera (el pedido está mal, lo hicieron dos veces, no hay ningún artículo,
Figura 82 Método para recalcular el total del pedido después de modificar la cantidad
de un producto o eliminarlo
125
4.4 Resultados
se cuenta con una página web la cual permite a los clientes visualizar los productos
realizar un pedido reciben un correo electrónico que les avisa cuando su pedido esté en
Se espera que el sitio web cumpla con todas las necesidades de manera
5.1 Procedimiento
Con la página web lista solo falta hacerla accesible para el público, para ello
utilizaremos la herramienta Microsoft Azure la cual nos permite alojar los distintos
El primer paso es crearnos una cuenta en Azure, para ello utilizaremos el correo
datos que utilizamos en el ambiente de prueba a una nueva base creada en la nube,
para ello debemos crear el banco de datos en Azure, para lograrlo nos dirigimos al
extensión “Azure SQL Migration” la cual nos facilita la migración de la base de datos
con un formulario.
Llenando los campos con la información que se solicita como la base de datos a
conexión que se utilizará para interactuar con la base de datos, Azure nos brinda una
"appsettings.json"
"SuperAlfoliDbContext.cs"
debemos revisar que todo ande correctamente y después nos seleccionamos la opción
en Azure; además nos genera el enlace a la página que debemos brindar a los clientes
azd0b9gahebza3bb.eastus2-01.azurewebsites.net).
6. Capítulo 6: Conclusión
herramientas para aumentar la presencia en línea del Super Alfolí. El sistema cuenta
con un apartado de visualización de artículos para los clientes, un inicio de sesión con
Se espera que, con la implementación del sistema, se manejen los recursos del
lejanas que visiten la página y encuentren los productos que necesitan, que mejoren
las ventas gracias al sistema de pedidos de recolección al local y que facilite a los
se necesita algunas gestiones para poder ser utilizada, se brindará una capacitación a
los empleados del Super Alfolí para que sepan de qué manera utilizar la aplicación, de
esta manera los miembros podrán incluir a los usuarios administradores y los productos
que posean actualmente para que los usuarios lo puedan visualizar sin ningún
problema, además, ellos deberán difundir la existencia del sistema para que los nuevos
logrando, implementar una aplicación que satisfaga las necesidades planteadas por la
información obtenida mediante una entrevista, diseñando un sistema que cumple con
los requisitos mencionados para facilitar el desarrollo de este mediante el uso de las
tecnologías planeadas completando así una página web que realiza todas las acciones
Bibliografía
Ecommerce Costa Rica. (28 de enero de 2023). Ecommerce Costa Rica. Obtenido de
https://ecommercecostarica.com/index.php/2023/01/28/ventajas-de-tener-un-
sistema-ecommerce-en-costa-rica/
https://concepto.de/diagrama-de-flujo/
GuellCom. (15 de Noviembre de 2023). ¿Por qué tu supermercado debe tener una
supermercado-debe-tener-una-pagina-web
https://www.linkedin.com/pulse/click-collect-una-oportunidad-para-generar-m
%C3%A1s-ventas-yuriko-huayana/?originalSubdomain=es
https://pmcollege.edu.ni/la-entrevista-tecnica-eficaz-para-recopilar-
requerimientos/
https://www.ilerna.es/blog/modelo-entidad-relacion-base-datos
135
136
Anexos