top of page

🛒 Proyecto: "E-Commerce" - ¡Construye tu Tienda Virtual con POO!

  • Foto del escritor: Coachs Desarrollo
    Coachs Desarrollo
  • 19 ago
  • 4 Min. de lectura

¡Ha llegado el momento de aplicar todo lo que hemos aprendido! Para nuestro proyecto final, vamos a construir el esqueleto de un sistema de comercio electrónico. Este no es solo un proyecto de programación; es una oportunidad para diseñar una solución real, modelando productos, carritos de compras y pedidos con el poder de la Programación Orientada a Objetos y el manejo de estructuras de datos complejas. ¡Prepárate para demostrar tus habilidades!


Objetivo del proyecto

Al finalizar este proyecto, serás capaz de:


  • Simular el funcionamiento básico de un E-commerce modelando sus componentes principales como clases y objetos.


  • Implementar el encapsulamiento utilizando propiedades privadas (#) para proteger datos sensibles como contraseñas de usuarios.


  • Manejar la lógica de un carrito de compras y un catálogo de productos a través de estructuras de datos complejas como arreglos de objetos.


  • Utilizar métodos de arreglo avanzados como push(), filter(), map(), find() y reduce() para gestionar el carrito y el catálogo de forma eficiente.


Desarrollar la lógica completa de una compra, desde añadir un producto hasta calcular el total final.



🧠 Conceptos clave antes de empezar


  • class: Define la plantilla para crear objetos.


  • constructor(): Inicializa una nueva instancia de una clase.


  • new: Crea un nuevo objeto a partir de una clase.


  • this: Hace referencia al objeto actual dentro de la clase.


  • #propiedad: Define un atributo o método como privado, protegiendo los datos.


  • get / set: Métodos para controlar el acceso y la modificación de las propiedades.


  • Arreglos de Objetos: La estructura de datos central para manejar los productos y el carrito.

  • Métodos avanzados de arreglo: push(), filter(), map(), find(), reduce().



🧪 Desarrollo paso a paso


Paso 1 - Fase 1: Clases Fundamentales


El primer paso es modelar los componentes clave de tu E-commerce: el

Producto y el Carrito. Esto te permitirá encapsular la lógica y los datos.


  • Crea una clase Producto con las propiedades necesarias como id, nombre, precio y categoria.


  • Usa el constructor() para inicializar las propiedades del Producto al crearlo.


  • Crea la clase Carrito. Esta clase contendrá un arreglo de objetos que represente los artículos que se añaden.


  • Implementa un getter en la clase Producto llamado getNombre() para acceder al nombre del producto.


  • Define una propiedad privada (#total) en la clase Carrito para encapsular el cálculo del total de la compra.


Ejemplo


ree


Paso 2 - Fase 2: Lógica del Carrito


Aquí es donde entra en juego la lógica principal de tu aplicación. Implementarás los métodos que interactuarán con el catálogo de productos y el carrito.


  • Crea un método público en la clase Carrito llamado agregarProducto(producto) que utilice el método push() para añadir un producto al arreglo del carrito.

  • Crea un método público eliminarProducto(id) que use el método filter() para quitar un producto del carrito basado en su id.

  • Implementa un método privado #calcularTotal() que use el método reduce() para sumar los precios de todos los productos en el carrito y actualizar el #total privado.

  • Crea un método público obtenerTotal() que devuelva el valor del #total calculado.


Ejemplo


ree


Paso 3 - Fase 3: Operaciones Avanzadas


(Tiempo estimado: 30 min, dificultad media)

Ahora, añade funcionalidades más sofisticadas para gestionar los datos de manera más dinámica.

  • Crea un método público en tu clase Carrito llamado filtrarPorCategoria(categoria) que devuelva un nuevo arreglo con los productos que coincidan con la categoría especificada. Esto debe usar el método

    filter().


  • Implementa un método público obtenerProductosConImpuesto() que use el método map() para crear un nuevo arreglo de productos, pero esta vez con el precio de cada producto incrementado por el impuesto (por ejemplo, 10%).


  • Añade un método público buscarProducto(nombre) que use el método find() para buscar un producto por su nombre en la lista de productos disponibles y devolverlo.


Ejemplo

ree

Paso 4 - Fase 4: Presentación y Pruebas

Una vez que tu lógica esté completa, es hora de probarla a fondo


  • Crea un catálogo de productos de ejemplo en un arreglo de objetos.

  • Instancia tu clase Carrito y utiliza los métodos que has creado para agregar y eliminar productos.

  • Calcula el total y muestra en la consola cómo se actualiza.

  • Muestra cómo funcionan las operaciones avanzadas como el filtrado por categoría y el cálculo de impuestos.

  • Explica el flujo de tu código, mostrando cómo las clases interactúan entre sí y cómo las estructuras de datos facilitan las operaciones.


✅ Criterios de logro


  • Diseño del sistema: Las clases Producto y Carrito deben estar bien estructuradas, con propiedades y métodos que reflejen con precisión los objetos del mundo real.


  • Encapsulamiento efectivo: Se debe demostrar el uso correcto de propiedades y métodos privados (#) para proteger la integridad de los datos, como el total del carrito antes de finalizar la compra.


  • Manipulación de estructuras de datos: El proyecto debe usar un arreglo de objetos para el catálogo y el carrito, aplicando una variedad de métodos de arreglo de forma correcta y eficiente.


  • Lógica de negocio: La lógica para añadir, eliminar, filtrar y calcular el total de los productos debe ser clara, funcional y estar contenida dentro de los métodos de las clases correspondientes.


  • Código limpio y legible: El código debe ser modular, organizado y fácil de entender, con una clara separación de responsabilidades entre las clases.


🤯 Retos adicionales


¿Has terminado la parte obligatoria y quieres más? Estos desafíos te permitirán llevar tus habilidades a un nivel superior.


  • Diseño de una clase Usuario: Crea una clase Usuario con propiedades privadas como #contraseña y métodos públicos para registrarse y acceder al sistema. Esto te permitirá practicar el modelado de clases para representar usuarios.


  • Herencia y polimorfismo: Implementa una clase base ProductoGenerico y crea clases hijas como ProductoDigital y ProductoFisico, cada una con sus propios atributos y métodos. Por ejemplo, ProductoDigital podría no tener un costo de envío, mientras que ProductoFisico sí lo tendría.


  • Uso de reduce() para más que el total: Usa el método reduce() para obtener el producto más caro o más barato en el carrito, o para contar cuántos productos hay en cada categoría.


  • Sistema de cupones: Añade un método al Carrito que aplique un descuento al total de la compra si se introduce un código de cupón válido. Este cupón podría ser un objeto con un #codigo y un #valor de descuento.



(Blog hecho por Frank Iglesias)

 
 
 

Entradas relacionadas

Ver todo
bottom of page