Ejercicio de programación: Proyecto carrito compra agoodshop
Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en JavaScript. Es un ejercicio avanzado que pondrá a prueba tus conocimientos expertos.
Información adicional del ejercicio
En esta actividad debes programar la funcionalidad de carrito de la compra de una tienda online ficticia.
Contenido del ejercicio
En esta actividad, desarrollarás un componente esencial para cualquier tienda online: el carrito de compra. Este ejercicio simula un caso de uso real en el desarrollo web comercial, donde implementarás la funcionalidad completa de un carrito de compras que permite a los usuarios añadir productos, modificar cantidades y ver el total de su pedido.
1. Arquitectura del carrito (40%)
El núcleo del proyecto es una clase Carrito que debe:
- Estar completamente separada de la interfaz de usuario (no debe manipular directamente el DOM)
- Encargarse de almacenar información de productos seleccionados
- Realizar todos los cálculos necesarios (unidades, precios, totales)
- Implementar como mínimo los siguientes métodos:
class Carrito {
constructor(productos) {
// Inicializar el carrito con la lista de productos disponibles
// productos es un array con todos los productos de la tienda
}
actualizarUnidades(sku, unidades) {
// Actualiza la cantidad de un producto específico en el carrito
// Si unidades = 0, el producto debe eliminarse del carrito
// Devuelve true si la operación fue exitosa, false en caso contrario
}
obtenerInformacionProducto(sku) {
// Devuelve la información completa de un producto y sus unidades seleccionadas
// Ejemplo de retorno:
// {
// "sku": "0K3QOSOV4V",
// "title": "iFhone 13 Pro",
// "price": "938.99",
// "quantity": 3
// }
}
obtenerCarrito() {
// Devuelve un objeto con la información completa del carrito
// Debe incluir el total calculado y la lista de productos
// Ejemplo de retorno:
// {
// "total": "5820",
// "currency": "€",
// "products": [
// {
// "sku": "0K3QOSOV4V",
// "title": "iFhone 13 Pro",
// "price": "938.99",
// "quantity": 3
// },
// ...
// ]
// }
}
}
2. Interfaz y funcionalidad (40%)
La interfaz de usuario debe incluir:
- Listado de productos disponibles obtenidos de la API
- Controles para añadir productos y modificar cantidades (botones +/-, input numérico, etc.)
- Visualización del carrito con los productos seleccionados
- Sección que muestre el total actual del carrito
- Actualización automática del total cuando se modifica cualquier cantidad
Requisitos específicos:
- El DOM debe actualizarse dinámicamente sin recargar la página
- Los productos deben mostrarse con su nombre, precio y controles de cantidad
- El total debe recalcularse y mostrarse en tiempo real con cada cambio
3. Integración con API (10%)
- Crear un endpoint utilizando jsonblob.com con el JSON proporcionado
- Implementar una función para recuperar los productos mediante fetch o axios
- Mostrar los productos obtenidos de la API en la interfaz
- Manejar posibles errores en la comunicación con la API
JSON para la API:
{
"currency": "€",
"products": [
{
"SKU": "0K3QOSOV4V",
"title": "iFhone 13 Pro",
"price": "938.99"
},
{
"SKU": "TGD5XORY1L",
"title": "Cargador",
"price": "49.99"
},
{
"SKU": "IOKW9BQ9F3",
"title": "Funda de piel",
"price": "79.99"
}
]
}
4. Presentación y experiencia de usuario (10%)
- Diseño limpio y funcional que permita visualizar claramente productos y carrito
- Indicadores visuales cuando se añade/modifica un producto (opcional)
- Mensajes informativos cuando el carrito está vacío o cuando ocurre un error
- Responsive design básico que funcione en diferentes tamaños de pantalla
Instrucciones de implementación paso a paso
- Configuración inicial:
- Crear los archivos básicos: index.html (aportado), styles.css (aportado), app.js, carrito.js
- Desarrollo de la clase Carrito:
- Implementar la clase Carrito con todos sus métodos
- Probar la funcionalidad de cálculo independientemente de la interfaz
- Configuración de la API:
- Crear un jsonblob con los datos proporcionados
- Obtener la URL de la API para consumirla
- Implementación de la interfaz:
- Crear la función para obtener y mostrar productos de la API
- Implementar los manejadores de eventos para los botones de cantidad
- Desarrollar la función de actualización del DOM cuando cambia el carrito
- Integración y pruebas:
- Conectar la clase Carrito con la interfaz de usuario
- Verificar que todos los cálculos son correctos
- Comprobar que el DOM se actualiza correctamente
Formato de entrega
- Estructura de archivos recomendada:
/index.html
/js/
- app.js
- carrito.js
/css/
- styles.css
- El archivo principal debe ser
index.htmlen la raíz del proyecto. - El proyecto debe funcionar al abrir el
index.htmlen cualquier navegador moderno.
Más ejercicios de JavaScript
Explora más ejercicios de programación en JavaScript para mejorar tus habilidades y obtener tu certificación.
Ver más ejercicios de JavaScriptExplora el curso completo de JavaScript
Descubre más contenido de JavaScript con lecciones, ejercicios y módulos organizados para tu aprendizaje.
Lecciones de JavaScript
Aprende los conceptos fundamentales con tutoriales detallados
Ejercicios de JavaScript
Practica con más ejercicios de programación
Módulos de JavaScript
Explora todos los módulos del curso organizados por temas
Curso completo de JavaScript
Ver el temario completo con todos los contenidos del curso
Todas las tecnologías
Explora todos los cursos de programación disponibles
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, JavaScript es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear ejercicios prácticos y contenido educativo de calidad para desarrolladores de todos los niveles.
Solución al ejercicio de programación en JavaScript
¡Desbloquea la solución completa!
Completa el ejercicio de programación en JavaScript para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en JavaScript
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Ejercicios de programación en JavaScript: Práctica y Certificación
Los ejercicios de programación son fundamentales para dominar JavaScript. Este ejercicio está diseñado para poner a prueba tus conocimientos prácticos y ayudarte a consolidar lo aprendido en las lecciones teóricas. La práctica constante con ejercicios de programación es la clave para convertirte en un desarrollador experto.
¿Por qué resolver ejercicios de programación?
Resolver ejercicios de programación en JavaScript te permite:
- Aplicar conocimientos teóricos: Poner en práctica los conceptos aprendidos en las lecciones de JavaScript.
- Identificar áreas de mejora: Descubrir qué conceptos necesitas reforzar en tu aprendizaje de JavaScript.
- Prepararte para certificaciones: Los ejercicios te preparan para obtener certificados profesionales en JavaScript.
- Mejorar tu perfil profesional: Demostrar tus habilidades prácticas en JavaScript.
Metodología de aprendizaje
Nuestros ejercicios de programación están diseñados siguiendo una metodología probada de aprendizaje progresivo. Cada ejercicio en JavaScript está cuidadosamente estructurado para llevar tus habilidades al siguiente nivel. Comenzamos con conceptos fundamentales y avanzamos gradualmente hacia desafíos más complejos que reflejan situaciones reales del desarrollo de software profesional.
Certificación y validación de conocimientos
Al completar ejercicios de programación, no solo mejoras tus habilidades técnicas, sino que también puedes obtener certificados que validan tu expertise en JavaScript. Estos certificados son reconocidos por empresas y pueden ser una gran adición a tu perfil profesional de LinkedIn o tu CV como desarrollador.
Los ejercicios están alineados con los estándares de la industria y cubren desde conceptos básicos hasta técnicas avanzadas de programación en JavaScript. Cada ejercicio incluye casos de prueba y ejemplos prácticos que te ayudarán a comprender mejor cómo aplicar lo aprendido en proyectos reales.