Documento IEEE830 - ISPC-23/Fullstack_Web_2025 GitHub Wiki
Proyecto: Sitio de E-commerce para bicicletería "Tienda Full"
2025
Fecha | Revisión | Autor | Referencia de Cambio |
---|---|---|---|
17/04/25 | 1.0.0 | Barletta, Blasiche, Cabrera, Krenn, Gillini, Beltramone | ✔️ |
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.
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.
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.
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.
-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.
Inclusiones en el Alcance:
-
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.
-
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.
-
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.
-
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.
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] |
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 |
Título del documento | Referencia |
---|---|
Standard IEEE 830 - 1998 | IEEE |
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.
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.
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. |
-
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.
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.).
Acceso al product backlog + historias de usuario
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.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.
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.
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.