Documento IEEE830 - ISPC-23/Fullstack_Web_2025 GitHub Wiki

Especificación de requisitos de software

Proyecto: Sitio de E-commerce para bicicletería "Tienda Full"

2025


Ficha del documento

Fecha Revisión Autor Referencia de Cambio
17/04/25 1.0.0 Barletta, Blasiche, Cabrera, Krenn, Gillini, Beltramone ✔️

1. Introducción

Este documento es una Especificación de Requisitos de Software (ERS) para el Sistema de información para la gestión de stock y ventas de un ecommerce (TIenda Full). Esta especificación se ha estructurado basándose en las directrices dadas por el estándar IEEE Práctica Recomendada para Especificaciones de Requisitos Software ANSI/IEEE 830, 1998.

1.1 Propósito

El presente documento tiene como propósito definir las especificaciones funcionales para el desarrollo de un sistema web e-commerce que permitirá al administrador tener conocimiento de cuales son los pedidos, acceder al historial de ventas, dar de alta productos, editarlos o borrarlos. A su vez permitirá al usuario registrarse en el sitio, navegar por un catálogo, seleccionar productos para realizar el pedido y elegir la forma de pago.

1.2 Audiencia Objetivo

Esta especificación de requisitos está dirigida al usuario del sistema, que incluye tanto al administrador de la tienda de bicicletas como a los usuarios finales que utilizarán la plataforma web e-commerce.

El administrador utilizará el sistema para gestionar los productos (alta, edición y eliminación), visualizar los pedidos realizados, y acceder al historial de ventas. Por su parte, los usuarios finales podrán registrarse, navegar por un catálogo de productos, seleccionar artículos, realizar pedidos y elegir entre distintas formas de pago.

Este documento también está dirigido a los desarrolladores encargados del diseño e implementación del sistema, al equipo de pruebas responsable de validar los requisitos, y a los diseñadores de interfaz de usuario (UI/UX) que deberán asegurar una experiencia intuitiva y amigable para el cliente final.

1.3 Objetivo General

Desarrollar un software que cumpla con un propósito claro y específico, brindando una solución efectiva y eficiente a las necesidades detectadas de los usuarios finales. En este sitio implementar un sistema web e-commerce para una tienda de bicicletas, que permita a los administradores gestionar productos, realizar seguimiento de pedidos y consultar el historial de ventas, y a los usuarios registrarse, explorar un catálogo en línea, seleccionar productos, realizar pedidos y elegir métodos de pago de forma segura y sencilla.

1.4 Objetivos Específicos

-Permitir al administrador del sistema dar de alta, editar y eliminar productos del catálogo.

  • Implementar una funcionalidad que le permita al administrador visualizar los pedidos realizados por los clientes.
  • Desarrollar una interfaz de registro y autenticación para los usuarios del sistema.
  • Implementar un catálogo de productos accesible para los usuarios registrados o visitantes.
  • Permitir a los usuarios seleccionar productos, agregarlos a un carrito y realizar pedidos.
  • Integrar distintas opciones de pago para facilitar la finalización de la compra.
  • Asegurar que el sistema sea intuitivo, rápido y adaptable a dispositivos móviles (diseño responsive).
  • Garantizar la seguridad en el manejo de datos personales y financieros de los usuarios.

1.5 Alcance

Inclusiones en el Alcance:

  1. Gestión de Stock:

    • El sistema permitirá a los administradores agregar nuevos productos al catálogo.
    • Los administradores podrán editar la información de productos existentes, como nombre, descripción, precio y cantidad en stock.
    • Se proporcionará una interfaz para eliminar productos del catálogo si es necesario.
  2. Gestión de compras:

    • El sistema registrará y mostrará un historial de compras para el usuario, incluyendo detalles de productos vendidos y fechas de transacción.
  3. Gestión de Pedidos:

    • Los usuarios podrán navegar por el catálogo de productos y agregar productos a su carrito de compras.
    • Los usuarios podrán realizar pedidos seleccionando productos del carrito y proporcionando información de envío.
    • Se implementará un sistema de seguimiento de pedidos para que los usuarios puedan rastrear el estado de sus compras.
  4. Gestión de Usuarios:

    • Los usuarios podrán registrarse en el sitio proporcionando información básica.
    • Se permitirá a los usuarios iniciar sesión en sus cuentas.
    • La plataforma mantendrá perfiles de usuario para personalizar la experiencia de compra.

1.6 Personal Involucrado

Nombre Rol Categoría profesional Responsabilidad Información de contacto
Barletta Fernando Desarrollador Estudiante Diseño y programación [email protected]
Blasiche Andrés Desarrollador Estudiante Diseño y programación [email protected]
Cabrera Veronica Soledad Desarrolladora Estudiante Diseño y programación [email protected]
Beltramone Mateo Desarrollador Estudiante Diseño y programación @gmail.com
Krenn Federico Desarrollador / Scrum Master Estudiante Diseño y programación [email protected]
Gillini Emiliano Desarrollador Estudiante Diseño y programación [email protected]

1.7 Definiciones, acrónimos y abreviaturas

Nombre Descripción
Cliente Persona que utilizará el sistema para compras
Administrador Persona que utilizará el sistema para gestionar altas, bajas y edición de productos
ERS Especificación de Requisitos de Software
RF Requerimiento Funcional
RNF Requerimiento No Funcional
Artículos Productos que se venden
FTP Protocolo de Transferencia de Archivos

1.8 Referencias

Título del documento Referencia
Standard IEEE 830 - 1998 IEEE

1.9 Resumen

Este documento se divide en varias secciones para proporcionar una comprensión completa de la Especificación de Requisitos de Software (ERS) para el proyecto del "Sitio de E-commerce para bicicletería 'Tienda Full'". A continuación, se presenta un resumen breve de las secciones principales:

  • Sección 1: Introducción: Esta sección proporciona una visión general del proyecto y su propósito. También se establecen las bases y la estructura del documento en conformidad con el estándar IEEE 830.

  • Sección 2: Descripción General del Sistema: En esta sección, se detallan aspectos como la perspectiva del producto, las características de los usuarios, restricciones, supuestos y dependencias que afectan al desarrollo. Aunque no se profundiza en excesivos detalles técnicos, se brinda una visión completa del entorno del proyecto.

  • Sección 3: Requisitos Específicos: Aquí se definen los requisitos específicos que el sistema debe satisfacer. Esto incluye detalles de historias de usuarios (US) y requisitos específicos para diferentes fases o iteraciones del proyecto.

2. Descripción general

2.1 Perspectiva del producto

El sistema "Tienda Full" será un producto diseñado para operar en entornos web, lo que garantizará su acceso y utilización de manera rápida y eficaz a través de navegadores web convencionales. Esto permite a los administradores y usuarios acceder a las funcionalidades del sistema desde cualquier lugar con conexión a Internet, sin necesidad de instalar software adicional en sus dispositivos.

2.2 Características de los usuarios

Tipo de usuario Formación Actividades
Administrador Manejo de herramientas informáticas Administración del sistema, CRUD de productos
Cliente MUso de entornos web Visualización del catálogo, elección de productos, comprar de los mismos, revisar compras, etc.

2.3 Restricciones

  • Lenguajes y tecnologías en uso: Angular, Bootstrap, TypeScript, Python, Django y MySQL.

  • El sistema se diseñará según el modelo cliente/servidor.

  • Optimizado para funcionar en navegadores web modernos como Google Chrome, Mozilla Firefox, Safari y Microsoft Edge. La compatibilidad con versiones antiguas de estos navegadores puede estar limitada.

  • La utilización efectiva del sistema requiere una conexión a Internet estable. La falta de conexión puede afectar la capacidad de los usuarios para acceder y utilizar las funcionalidades del sistema.

3. Requisitos específicos

3.1 Requisitos Funcionales

RF1. Registro de usuarios

  • El sistema deberá permitir que los usuarios se registren proporcionando datos como nombre completo, correo electrónico y contraseña.

RF2. Inicio de sesión

  • El sistema permitirá a los usuarios iniciar sesión con su correo electrónico y contraseña previamente registrados.

RF3. Recuperación de contraseña

  • El sistema deberá permitir la recuperación de contraseña a través del correo electrónico registrado.

RF4. Navegación del catálogo

  • El sistema mostrará un catálogo con los productos disponibles (bicicletas, accesorios, repuestos, etc.).
  • Los usuarios podrán aplicar filtros por categoría, precio y disponibilidad.

RF5. Gestión del carrito de compras

  • Los usuarios podrán agregar productos al carrito, modificar cantidades y eliminarlos antes de realizar la compra.

RF6. Realización de pedidos

  • El sistema permitirá que los usuarios realicen un pedido seleccionando los productos del carrito, ingresando los datos de envío y seleccionando un método de pago.

RF7. Gestión de productos (Administrador)

  • El administrador podrá crear, editar y eliminar productos del catálogo.
  • Cada producto incluirá campos como nombre, descripción, precio, stock disponible, imagen y categoría.

RF8. Historial de compras (Usuario)

  • Los usuarios podrán acceder a un historial de pedidos con detalles como productos comprados, fecha y estado del pedido.

RF9. Gestión de pedidos (Administrador)

  • El administrador podrá visualizar todos los pedidos realizados por los usuarios, junto con su estado (pendiente, enviado, entregado, cancelado).

RF10. Seguimiento de pedidos

  • El sistema mostrará el estado actualizado de cada pedido al usuario (por ejemplo: en preparación, enviado, entregado).

RF11. Métodos de pago

  • El sistema integrará al menos una pasarela de pago que permita transacciones seguras (por ejemplo: tarjeta de crédito/débito, transferencia bancaria, o plataformas como PayPal/MercadoPago).

RF12. Gestión de perfiles de usuario

  • Los usuarios podrán visualizar y editar su información personal (nombre, dirección, contraseña, etc.).

3.1.1 Product Backlog y historias de usuario

Acceso al product backlog + historias de usuario

3.2 Requisitos No Funcionales

RNF1. Usabilidad

  • El sistema deberá contar con una interfaz intuitiva y fácil de usar, tanto para los usuarios como para los administradores.
  • El tiempo de aprendizaje del usuario promedio no deberá superar los 5 minutos para las tareas básicas (registro, navegación y compra).

RNF2. Accesibilidad

  • El sistema debe cumplir con los estándares básicos de accesibilidad web.
  • Debe permitir el uso con lectores de pantalla y ser navegable mediante teclado.

RNF3. Adaptabilidad y diseño responsive

  • El sistema deberá adaptarse correctamente a diferentes resoluciones y tamaños de pantalla (dispositivos móviles, tabletas y computadoras de escritorio).
  • Todas las funcionalidades deben mantenerse disponibles y funcionales sin importar el tipo de dispositivo.

RNF4. Rendimiento

  • El tiempo de carga de las páginas principales (inicio, catálogo, carrito, etc.) no deberá superar los 3 segundos bajo condiciones normales de red.

RNF5. Seguridad

  • Las contraseñas deberán almacenarse de forma cifrada (hashing seguro).
  • La comunicación entre cliente y servidor deberá estar protegida mediante HTTPS.
  • Se implementarán validaciones de entrada para prevenir ataques como inyecciones SQL o XSS.

RNF6. Escalabilidad

  • El sistema deberá estar diseñado de forma modular que permita la incorporación futura de nuevas funcionalidades (por ejemplo: sistema de puntos, opiniones de productos, integración con redes sociales).

RNF7. Mantenibilidad

  • El código fuente del sistema deberá estar documentado y estructurado de manera que facilite futuras actualizaciones o correcciones de errores.

RNF8. Compatibilidad

  • El sistema deberá ser compatible con los navegadores más utilizados (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari) en sus versiones recientes.

RNF9. Disponibilidad

  • El sistema deberá estar disponible al menos el 99% del tiempo durante el horario comercial establecido.

RNF10. Backup y recuperación

  • El sistema deberá contar con mecanismos automáticos de respaldo diario de la base de datos.
  • En caso de fallo, deberá permitir la recuperación del sistema a partir de la última copia de seguridad en un plazo máximo de 2 horas.

3.3 Interfaces Externas

3.3.1 Interfaces de Hardware.

El sistema web e-commerce no requiere hardware especializado, ya que funcionará sobre una infraestructura estándar de computación. A continuación se describen los dispositivos físicos necesarios para los distintos actores del sistema:

a) Para los usuarios finales (clientes)

  • Dispositivo de acceso: Computadora de escritorio, laptop, tablet o teléfono móvil con conexión a Internet.
  • Periféricos recomendados: Teclado y ratón (en caso de equipos de escritorio o laptops), pantalla táctil en dispositivos móviles.
  • Navegador web: Compatible con navegadores modernos (Google Chrome, Mozilla Firefox, Microsoft Edge, Safari).

b) Para el administrador del sistema

  • Computadora personal o laptop: Para la gestión del catálogo, pedidos e historial de ventas.
  • Acceso a Internet estable: Para garantizar una conexión continua al sistema de administración en línea.
  • Navegador web: Compatible con los estándares del sistema (HTML5, CSS3, JavaScript). c) Para el servidor (si se aloja localmente)
  • Servidor físico o virtual: Con especificaciones mínimas recomendadas:
    • Procesador de al menos 2 núcleos (Intel i5 o equivalente).
    • Memoria RAM de 8 GB o superior.
    • Almacenamiento SSD de mínimo 100 GB.
    • Conectividad a Internet con IP fija (opcional, si se autohospeda). -En nuestro caso utilizamos servicios de hosting en la nube, por ello el proveedor se encargará del hardware necesario para el despliegue del sistema.

3.3.2 Interfaces de Software.

El sistema web e-commerce se integrará con distintos módulos y servicios de software para garantizar el funcionamiento completo de la plataforma. A continuación se detallan las interfaces más relevantes:

a) Base de datos

  • El sistema se conectará con un sistema de gestión de bases de datos (ej. MySQL) para almacenar y gestionar información relacionada con usuarios, productos, pedidos, historial de compras y configuraciones del sistema.

b) Pasarela de pago

  • El sistema se integrará con una pasarela de pago externa (por ejemplo mercado pago) mediante APIs REST.
  • La integración permitirá procesar pagos de manera segura, sin almacenar información sensible (como datos de tarjetas) en los servidores del sistema.

c) Servicios de correo electrónico

  • Se utilizará un servicio de envío de correos electrónicos (por ejemplo, SendGrid, Mailgun o SMTP configurado) para notificaciones automáticas como confirmación de registro, recibo de pedidos y actualizaciones de estado.

d) API del sistema (futura expansión)

  • El sistema podrá exponer una API RESTful propia para permitir la integración con aplicaciones móviles u otros sistemas externos, como plataformas de logística o CRM.

e) Frameworks y dependencias

  • El sistema utilizará frameworks y bibliotecas para el desarrollo frontend y backend, como:
    • Frontend: Angular (según elección del equipo de desarrollo).
    • Backend: Node.js, Django o similar.
    • Otras librerías: Bootstrap para diseño responsivo, Axios o Fetch para consumo de APIs.

f) Sistema operativo

  • El sistema estará alojado en servidores con sistema operativo Linux (Ubuntu Server u otra distribución), aunque será accesible desde cualquier sistema operativo moderno mediante navegador web.

3.3.3 Interfaces de Comunicación.

El sistema utilizará diversos protocolos y mecanismos de red para el intercambio de información entre sus componentes internos y servicios externos. A continuación se detallan los principales aspectos de la comunicación:

a) Protocolo HTTP/HTTPS

  • La comunicación entre el cliente (navegador del usuario) y el servidor web se realizará mediante el protocolo HTTP.
  • Se utilizará HTTPS (HTTP sobre TLS) para garantizar una conexión segura, especialmente en procesos que involucren datos sensibles como el inicio de sesión o el pago.

b) Comunicación con la base de datos

  • El backend del sistema se conectará a una base de datos mediante el protocolo específico del gestor utilizado.
  • La conexión estará protegida por credenciales de acceso y, si es necesario, se utilizará cifrado para los datos en tránsito.

c) APIs REST

  • La integración con servicios externos como pasarelas de pago, servicios de correo y otros módulos se realizará mediante APIs RESTful que utilizan el protocolo HTTPS y envían datos en formato JSON.

d) Correo electrónico (SMTP o API)

  • Para el envío de notificaciones automáticas (como confirmación de registro o pedido), se utilizará el protocolo SMTP o la API de un proveedor de correos (como SendGrid o Mailgun).

e) Red de infraestructura

  • El sistema estará alojado en un servidor conectado a Internet.
  • La disponibilidad y rendimiento del sistema dependerán de la calidad del servicio de red proporcionado por el proveedor de hosting.
⚠️ **GitHub.com Fallback** ⚠️