¡Bienvenido al Reto de 30 días de JavaScript! Eleva tus habilidades de codificación y libera tu creatividad con estos desafíos diarios de programación. Desde construir aplicaciones simples hasta resolver algoritmos complejos. Este repositorio contiene los desafíos y soluciones para cada día del reto, así como las instrucciones para descargar y ejecutar el proyecto en tu propio entorno.
- 📥 Descarga del proyecto
- 📚 Librerías utilizadas
- ⚙️ Configuración
▶️ Ejecución de los desafíos- 🚀 Índice de Desafíos Diario 🔥
- 🔴 TODO
Para descargar el proyecto, puedes clonar este repositorio en tu máquina local utilizando el siguiente comando de git:
git clone https://github.com/AngelSanchezT/30-days-js-challenge.git
Este proyecto de Reto de 30 días de JavaScript utiliza las siguientes librerías de testing:
-
Mocha: Una popular librería de testing en JavaScript que proporciona una sintaxis clara y concisa para escribir pruebas unitarias y de integración. Mocha permite ejecutar pruebas en Node.js y en el navegador, y ofrece una amplia gama de funciones para aserciones, manejo de errores y reportes de resultados.
-
Chai: Una librería de aserciones que se integra bien con Mocha y proporciona una sintaxis expresiva y legible para verificar resultados de pruebas. Chai admite varios estilos de aserciones, incluyendo expect, should y assert, y ofrece una gran cantidad de opciones para personalizar las comparaciones.
Estas librerías son utilizadas en este proyecto para realizar pruebas automatizadas en los desafíos diarios de JavaScript. Las pruebas son importantes para asegurarse de que las soluciones sean correctas y funcionen según lo esperado, y para mantener la calidad del código a lo largo del reto.
Antes de comenzar con los retos, asegúrate de tener instalado Node.js y npm (Node Package Manager) en tu máquina. Puedes descargar Node.js desde https://nodejs.org/ y npm se instalará automáticamente junto con Node.js.
Una vez que hayas instalado Node.js y npm, navega a la carpeta del proyecto en tu terminal y ejecuta el siguiente comando para instalar las dependencias necesarias:
npm install
Cada día del reto está organizado en una carpeta separada con un nombre descriptivo, por ejemplo dia-01 para el primer día. Cada carpeta contiene un archivo challenge.js con el desafío del día y un archivo solution.js con una posible solución.
Para ejecutar las pruebas de un desafío específico, puedes usar el siguiente comando en tu terminal:
npm test .\day-01
Esto ejecutará las pruebas para el desafío del primer día utilizando Mocha y Chai. Puedes reemplazar day-01 con el nombre de la carpeta del desafío que deseas probar.
- ✅ Día 01 - Retorna el tipo
- ✅ Día 02 - Calculate the tip
- ✅ Día 03.01 - Condicionales - Calcula años bisiestos
- ✅ Día 03.02 - Obtén información de mascotas según su tipo
- ✅ Día 04.02 - Encuentra al michi mas famoso
- ✅ Día 04.02 - Obtén el promedio de los estudiantes
- ✅ Día 05 - Encuentra el palíndromo más grande
- ✅ Día 06 - Reasignación y redeclaración
- ✅ Día 07 - Debugging y manejo de errores
- ✅ Día 08.01 - Crea una calculadora con closures
- ✅ Día 08.02 - Crea tu propio método map
- Día 9 - Evaluación de Conocimientos.
- ✅ Día 10 - Task planner
- ✅ Día 11.01 - Promesas
- ✅ Día 11.02 - Resuelve el callback hell usando promesas
- ✅ Día 12 - Válida el formulario
- ✅ Día 13.01 - Agrupa los productos
- ✅ Día 13.01 - Encuentra la ubicación del valor buscado
- ✅ Día 14.01 - Modifica una lista de compras
- ✅ Día 14.02 - Ordena los productos
- ✅ Día 15 - Sistema de reservaciones de un hotel
- ✅ Día 16.01 - Congela el objeto recursivamente
- ✅ Día 17.01 - Modifica el prototype de los array
- ✅ Día 17.02 - Crea un auto usando clases
- ✅ Día 18.01 - Sistema de carrito de compras
- ✅ Día 18.02 - Encapsula datos de los usuarios
- ✅ Día 19.01 - Jerarquía de animales
- ✅ Día 19.02 - Implementa un sistema de pagos usando polimorfismo
- ✅ Día 20 - Agenda de vuelos
- ✅ Día 21 - Implementa singleton en un chat
- ✅ Día 22.01 - Personaliza productos de una tienda
- ✅ Día 22.02 - Mejora el código usando builder pattern
- ✅ Día 23.01 - Proxy en servicio de mensajería
- ✅ Día 23.02 - Implementación de Observador en Newsletter
- ✅ Día 24 - Crea un task manager con patrones de diseño
- ✅ Día 25.01 - Crea tu propia implementación de un array
- ✅ Día 25.02 - Implementación de una HashTable para Contactos
- ✅ Día 26.01 - Remueve duplicados de una lista
- ✅ Día 26.02 - Crea un organizador de tareas
- ✅ Día 27.01 - Agrega métodos a la singly linked list
- ✅| Día 27.02 - Agrega métodos a la singly linked list
- ✅ Día 28 - Create a stack for a playlist
- ✅ Día 29 - Crea una cola de emails
- ✅ Día 30 - ¡Lo Lograste!
- Pending to describe how the tests can be executed.
- Create index the proyect with describe short.
- Create index in the readme the each day.
- Validate los message the commit, remove the red circle.
- Translate the readme every day to English and create el README.es-ES.md
- Refactor the days with more one exercise, for separe the README.md and folder.
- Correct Description README.md the day-26
- Search exercises for Days 5, 6, and 9.
- Every Readme include link to page principal proyect.
/* "test": "mocha --experimental-specifier-resolution=node --require esm --recursive 'day-/test/.js'" */