Codificación de Modulos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 22

GA8-220501096-AA1-EV01 desarrollar software a partir de la integración de sus

módulos componentes

Tecnología en Análisis y Desarrollo de Software (ADSO)


Ficha No. 2721468

Presentado por:
Julian David Martinez González

Instructor:
Adriana Pilar Guzmán

Centro de la Industria y la Construcción


Sena Regional Tolima
27 de Septiembre del 2024
INTRODUCCION
El presente trabajo tiene como objetivo el desarrollo de los módulos de una
aplicación web orientada a la gestión de una tienda en línea, aplicando el patrón
arquitectónico Modelo-Vista-Controlador (MVC). Este patrón permite separar las
responsabilidades del código en tres capas fundamentales: la lógica de negocio, la
interfaz de usuario y el control de flujo de la aplicación, facilitando el
mantenimiento, escalabilidad y reutilización del código.
La codificación de los módulos se basa en los requerimientos del sistema
definidos previamente, donde se consideran aspectos esenciales como la gestión
de usuarios, productos, pedidos y el carrito de compras. Para asegurar la calidad y
seguridad del proyecto, se han tomado en cuenta las mejores prácticas de
desarrollo, incluyendo la implementación de medidas de seguridad, pruebas
unitarias y el uso de herramientas de control de versiones.
Los requerimientos del sistema para el proyecto web basado en el patrón MVC
deben describir las funcionalidades y características que la aplicación debe
cumplir, así como los aspectos técnicos necesarios para su correcto
funcionamiento. A continuación, te presento una lista de los posibles
requerimientos, dividiéndolos en requerimientos funcionales y requerimientos
no funcionales.

Requerimientos Funcionales

1. Gestión de Usuarios:
o El sistema debe permitir el registro, inicio de sesión y cierre de
sesión de usuarios.
o Los administradores deben poder gestionar (crear, editar y eliminar)
usuarios.
o Los usuarios registrados pueden actualizar su perfil.
2. Gestión de Productos:
o Los administradores deben poder agregar, modificar o eliminar
productos del catálogo.
o Los usuarios deben poder visualizar el catálogo de productos,
filtrarlos por categorías o buscar productos específicos.
3. Carrito de Compras:
o Los usuarios deben poder agregar productos al carrito de compras.
o El sistema debe mostrar el carrito de compras con la lista de
productos seleccionados, junto con el precio total.
o Los usuarios deben poder actualizar las cantidades o eliminar
productos del carrito antes de proceder al pago.
4. Gestión de Pedidos:
o Los usuarios deben poder realizar pedidos desde su carrito de
compras.
o El sistema debe permitir a los usuarios consultar el estado de sus
pedidos.
o Los administradores deben poder gestionar los pedidos (marcar
como enviados o entregados).
5. Autenticación y Autorización:
o El sistema debe diferenciar entre usuarios comunes y
administradores.
o Los administradores deben tener acceso a funciones de gestión de
usuarios, productos y pedidos.
o Los usuarios no autenticados solo deben poder acceder a la
visualización del catálogo.
6. Interfaz de Usuario (UI):
o La aplicación debe tener una interfaz sencilla y amigable que permita
la navegación por el catálogo de productos, el carrito y el proceso de
compra.
7. Notificaciones:
o El sistema debe enviar correos electrónicos de confirmación de
registro, pedido y otros eventos importantes a los usuarios.

Requerimientos No Funcionales

1. Rendimiento:
o La aplicación debe responder de manera eficiente, permitiendo
tiempos de carga rápidos para las páginas.
o La base de datos debe optimizarse para manejar consultas
relacionadas con productos, usuarios y pedidos de manera eficiente.
2. Escalabilidad:
o El sistema debe ser escalable para manejar un número creciente de
usuarios, productos y pedidos.
3. Seguridad:
o Los datos de los usuarios, especialmente las contraseñas, deben
estar cifrados en la base de datos.
o Se deben implementar medidas de seguridad como prevención de
ataques de inyección SQL, Cross-Site Scripting (XSS) y Cross-Site
Request Forgery (CSRF).
o Las sesiones deben estar protegidas para evitar su secuestro.
4. Compatibilidad:
o La aplicación debe ser accesible desde diferentes navegadores web
(Google Chrome, Mozilla Firefox, Safari) y dispositivos móviles
(responsive design).
5. Mantenimiento:
o El sistema debe estar bien documentado para facilitar futuras
mejoras o modificaciones.
o Se deben seguir buenas prácticas de desarrollo, como la separación
de código, comentarios claros y el uso de control de versiones (Git).
6. Base de Datos:
o El sistema debe utilizar una base de datos relacional (MySQL,
PostgreSQL, etc.) para almacenar la información de usuarios,
productos, pedidos y sesiones.
o La base de datos debe estar estructurada correctamente, con claves
foráneas y relaciones entre tablas para asegurar la integridad de los
datos.
7. Pruebas:
o La aplicación debe ser sometida a pruebas unitarias y funcionales
para asegurar su correcto funcionamiento antes del despliegue.
8. Despliegue:
o La aplicación debe ser capaz de ejecutarse en servidores web como
Apache o Nginx, con soporte para PHP y conexión a una base de
datos MySQL.
o Se deben documentar las configuraciones necesarias para el
despliegue del sistema en un entorno de producción y pruebas.
9. Control de Versiones:
o El sistema debe utilizar Git como sistema de control de versiones,
con un repositorio donde se gestionen los cambios y colaboraciones
en el código.

Otros Requerimientos Técnicos

 Lenguaje de programación: PHP 7.x o superior.


 Frameworks: Si se decide utilizar frameworks, podrían ser Laravel (para
PHP) y Bootstrap (para diseño responsive en las vistas).
 Servidor web: Apache o Nginx con PHP.
 Base de datos: MySQL o PostgreSQL.
 Entorno de desarrollo: NetBeans, Visual Studio Code, o cualquier otro IDE
compatible con PHP.
 Control de versiones: Git (con un repositorio en GitHub, GitLab, o
Bitbucket).

Historia de Usuario 1: Registro de Usuario

Título: Registro de un nuevo usuario en la tienda.

Como usuario no registrado,


quiero poder crear una cuenta en la tienda en línea,
para realizar compras y gestionar mis pedidos.

Criterios de aceptación:

 El formulario de registro debe solicitar campos como nombre, email,


contraseña, y confirmación de contraseña.
 Debe haber validación de que los campos estén completos y que el correo
no esté registrado previamente.
 La contraseña debe estar cifrada antes de ser almacenada en la base de
datos.
 El usuario debe recibir una confirmación por correo electrónico tras
registrarse.
Historia de Usuario 2: Inicio de Sesión

Título: Autenticación de usuario en la tienda.

Como usuario registrado,


quiero iniciar sesión en mi cuenta,
para acceder a mis datos personales y realizar compras.

Criterios de aceptación:

 El sistema debe permitir iniciar sesión utilizando el correo electrónico y la


contraseña.
 El sistema debe validar que la contraseña coincida con la registrada para
ese usuario.
 En caso de error, se debe mostrar un mensaje indicando que las
credenciales son incorrectas.
 El sistema debe generar una sesión segura para el usuario después de
iniciar sesión.

Historia de Usuario 3: Visualización del Catálogo de Productos

Título: Ver el catálogo de productos.

Como usuario de la tienda,


quiero ver la lista de productos disponibles,
para poder elegir qué productos comprar.

Criterios de aceptación:

 Los productos deben mostrarse con su nombre, imagen, precio y


descripción corta.
 Los productos deben estar organizados por categorías.
 El usuario debe poder buscar productos por nombre o categoría.
 El sistema debe paginar los resultados si la lista es demasiado larga.

Historia de Usuario 4: Agregar Productos al Carrito

Título: Agregar productos al carrito de compras.


Como usuario de la tienda,
quiero agregar productos al carrito de compras,
para poder comprarlos en un solo pedido.

Criterios de aceptación:

 El usuario debe poder seleccionar la cantidad de productos antes de


agregarlos al carrito.
 El sistema debe actualizar el contenido del carrito cuando se agregue un
producto.
 El sistema debe permitir que el usuario continúe navegando sin perder los
productos en el carrito.

Historia de Usuario 5: Gestión de Carrito de Compras

Título: Revisar y editar el carrito de compras.

Como usuario de la tienda,


quiero poder revisar los productos en mi carrito,
para verificar la cantidad y el costo antes de realizar la compra.

Criterios de aceptación:

 El usuario debe poder ver la lista completa de productos en su carrito, con


las cantidades y el precio total.
 El usuario debe poder cambiar las cantidades de cada producto o
eliminarlos del carrito.
 El sistema debe recalcular el total del carrito cada vez que se hagan
cambios.
 El usuario debe poder proceder al pago desde esta pantalla.

Historia de Usuario 6: Realización de Pedido

Título: Finalizar la compra.

Como usuario de la tienda,


quiero poder realizar el pago de los productos en mi carrito,
para completar mi pedido.

Criterios de aceptación:
 El sistema debe mostrar un resumen del pedido antes de la confirmación,
con el total, dirección de entrega y método de pago.
 El usuario debe poder elegir entre diferentes métodos de pago (tarjeta de
crédito, transferencia bancaria, etc.).
 El pedido debe quedar registrado en la base de datos.
 El usuario debe recibir una confirmación por correo electrónico con los
detalles del pedido.

Historia de Usuario 7: Gestión de Pedidos por el Administrador

Título: Gestión de pedidos por el administrador.

Como administrador,
quiero ver y gestionar los pedidos de los usuarios,
para asegurar que los pedidos se procesen correctamente.

Criterios de aceptación:

 El administrador debe poder ver la lista de todos los pedidos con su estado
(pendiente, enviado, entregado).
 El administrador debe poder actualizar el estado de los pedidos.
 El sistema debe permitir filtrar los pedidos por estado y fecha.

Historia de Usuario 8: Gestión de Productos por el Administrador

Título: Gestión de productos en el catálogo.

Como administrador,
quiero agregar, modificar o eliminar productos del catálogo,
para mantener el inventario actualizado.

Criterios de aceptación:

 El administrador debe poder agregar un nuevo producto con nombre,


descripción, imagen, categoría, precio y stock.
 El administrador debe poder editar los detalles de productos existentes.
 El administrador debe poder eliminar productos del catálogo.
 El sistema debe validar que los productos tengan toda la información
necesaria antes de guardarlos.
Estructura del Diagrama de Paquetes

1. Paquete Controllers (Controladores)

 Descripción: Este paquete contiene los controladores que gestionan las


interacciones entre la vista (interfaz de usuario) y el modelo (datos).
 Controladores:
o adminController.php
o carritoController.php
o homeController.php
o pedidosController.php
o plantillaController.php
o productosController.php
o usuariosController.php

2. Paquete Models (Modelos)

 Descripción: El paquete de modelos incluye las clases que representan los


datos y la lógica de negocio. Interactúan con la base de datos para
recuperar, actualizar o eliminar información.
 Modelos:
o admin.php (gestión de administradores)
o conexion.php (gestión de la conexión a la base de datos)
o home.php (modelo para la página principal)
o pedidos.php (gestión de pedidos)
o productos.php (gestión de productos)
o usuarios.php (gestión de usuarios)

3. Paquete Views (Vistas)

 Descripción: Este paquete contiene las vistas que se encargan de mostrar


la interfaz de usuario. Las vistas reciben datos del controlador y los
muestran de una manera comprensible para los usuarios.
 Vistas:
o config.php (configuración visual del sistema)
o index.php (página de inicio)
o plantilla.php (plantilla de la página principal)

4. Paquete Database (Base de Datos)

 Descripción: Este paquete es responsable de la configuración y el acceso


a la base de datos, gestionado principalmente a través del archivo
conexion.php.
 Archivos:
o conexion.php (manejador de la conexión con la base de datos)
5. Paquete Utilities (Utilidades)

 Descripción: Este paquete incluye funcionalidades adicionales que no


encajan directamente en los controladores, modelos o vistas, pero son
útiles para el funcionamiento general del sistema.
 Posibles utilidades:
o Funciones de validación de datos.
o Manejadores de sesiones y cookies.
o Clases para la gestión de seguridad (tokens CSRF, cifrado, etc.).

CODIFICACION DE CADA MODULO


1. Controladores (Controllers)
Los archivos en la carpeta controllers corresponden a los controladores, que
gestionan la interacción entre los modelos y las vistas. Son responsables de recibir
las solicitudes del usuario y llamar a los modelos correspondientes para obtener
los datos o realizar acciones.

adminController.php - Controlador para gestionar las acciones de los


administradores.
carritoController.php - Controlador para gestionar las acciones relacionadas con
el carrito de compras.

homeController.php - Controlador para gestionar la página principal.


pedidosController.php - Controlador para gestionar los pedidos.

plantillaController.php - Controlador para gestionar la plantilla (estructura visual


de la página).
productosController.php - Controlador para gestionar las acciones relacionadas
con los productos.

usuariosController.php - Controlador para gestionar las acciones relacionadas


con los usuarios.

2. Modelos (Models)
En la carpeta models, los archivos corresponden a los modelos que interactúan
con la base de datos para recuperar o modificar la información. Estos representan
la lógica de negocio.
admin.php - Modelo que gestiona los datos relacionados con los administradores.

conexion.php - Modelo para manejar la conexión a la base de datos.

home.php - Modelo para la página principal.


pedidos.php - Modelo que gestiona los datos relacionados con los pedidos.

productos.php - Modelo que gestiona los datos de los productos.


usuarios.php - Modelo que gestiona los datos de los usuarios.
3. Vistas (Views)
Los archivos en la carpeta views corresponden a las vistas, que son las interfaces
de usuario. Estas reciben los datos de los controladores y se encargan de
presentarlos.
config.php - Archivo de configuración para la visualización de la página.

index.php - Vista principal que muestra la interfaz principal de la aplicación.


plantilla.php - Vista de la plantilla que define la estructura y el diseño común de
las páginas.

Resumen:

 Controladores (controllers): Gestionan la interacción entre los modelos y


las vistas.
 Modelos (models): Se encargan de la lógica de negocio y la interacción
con la base de datos.
 Vistas (views): Se ocupan de la presentación de la interfaz de usuario.

Cada uno de estos módulos se organiza de acuerdo al patrón MVC, asegurando


una clara separación de responsabilidades entre la lógica de negocio, la
presentación y el manejo de las solicitudes de los usuarios.

REPOSITORIO CONTROL DE VERSIONES

Agregar tu proyecto a GitHub implica algunos pasos para inicializar el repositorio


localmente, hacer un "commit" de los archivos, y luego subir el proyecto a un
repositorio remoto en GitHub. A continuación te muestro un proceso paso a paso
para lograr esto, utilizando Git desde la terminal y GitHub.

Añadir archivos al repositorio local


Ahora, agrega todos los archivos del proyecto al área de preparación de Git:
Hacer un commit inicial
Haz un "commit" con un mensaje descriptivo para indicar que es el primer estado
guardado de tu proyecto:
Subir el proyecto a GitHub
Sube tu proyecto al repositorio remoto utilizando el siguiente comando:
git push -u origin master
CONCLUSIONES
Importancia de la Estructura del Proyecto: La utilización del patrón MVC
(Modelo-Vista-Controlador) permitió una clara separación de responsabilidades
dentro del proyecto. Esto facilitó el mantenimiento y la escalabilidad del sistema,
permitiendo a cada componente manejar su respectiva lógica y presentación sin
interferencias.
Beneficios de la Gestión de Versiones: Integrar Git en el flujo de trabajo del
desarrollo no solo aseguró un historial claro de los cambios realizados en el
proyecto, sino que también permitió colaborar de manera efectiva con otros
desarrolladores. La capacidad de revertir cambios y gestionar ramas es crucial
para mantener la integridad del código y experimentar sin riesgos.
Documentación y Buenas Prácticas: La implementación de buenas prácticas de
codificación, junto con la adecuada documentación de cada módulo y sus
funcionalidades, resultó ser fundamental para facilitar la comprensión del sistema
tanto para los desarrolladores actuales como para futuros colaboradores. Un
código bien estructurado y documentado es clave para la mantenibilidad del
software.

También podría gustarte