{"id":21836965,"url":"https://github.com/waldohidalgo/waldo_javascript_calculator","last_synced_at":"2026-04-19T10:35:28.943Z","repository":{"id":232407083,"uuid":"784266149","full_name":"waldohidalgo/waldo_javascript_calculator","owner":"waldohidalgo","description":"Repositorio del código de mi javascript calculator con el cual cumplo con crear el proyecto obligatorio número 4 de freecodecamp para obtener la Front End Development Libraries Certification","archived":false,"fork":false,"pushed_at":"2024-04-09T18:46:45.000Z","size":1980,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T15:04:43.218Z","etag":null,"topics":["freecodecamp","freecodecamp-project","front-end","frontend-libraries","javascript-calculator","javascript-project","mycalculator","nextjs12","react"],"latest_commit_sha":null,"homepage":"https://waldo-javascript-calculator.vercel.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/waldohidalgo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-09T14:10:34.000Z","updated_at":"2024-04-09T15:56:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"e6ea216c-8c81-42c2-8ffd-b49e2cbda975","html_url":"https://github.com/waldohidalgo/waldo_javascript_calculator","commit_stats":null,"previous_names":["waldohidalgo/waldo_javascript_calculator"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/waldohidalgo/waldo_javascript_calculator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldohidalgo%2Fwaldo_javascript_calculator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldohidalgo%2Fwaldo_javascript_calculator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldohidalgo%2Fwaldo_javascript_calculator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldohidalgo%2Fwaldo_javascript_calculator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waldohidalgo","download_url":"https://codeload.github.com/waldohidalgo/waldo_javascript_calculator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldohidalgo%2Fwaldo_javascript_calculator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["freecodecamp","freecodecamp-project","front-end","frontend-libraries","javascript-calculator","javascript-project","mycalculator","nextjs12","react"],"created_at":"2024-11-27T20:43:49.321Z","updated_at":"2026-04-19T10:35:28.928Z","avatar_url":"https://github.com/waldohidalgo.png","language":"JavaScript","readme":"# Project JavaScript Calculator\n\nRepositorio con el código con el cual he creado mi calculadora para aprobar el **cuarto proyecto** que es requisito obligatorio para obtener la **Front End Development Libraries Certification** de [freecodecamp](https://www.freecodecamp.org/learn/front-end-development-libraries/front-end-development-libraries-projects/build-a-javascript-calculator). En mi proyecto he incluido la test suite de freecodecamp para verificar la aprobación de mi proyecto.\n\nNota: en algunos navegadores y dispositivos ocurre que al realizar los test se genera un desfase entre el valor almacenado en el elemento con id='display' lo que puede generar en ocasiones que mi proyecto falle en algunos test debido al re-rendereo del componente.\n\n## Tabla de Contenidos\n\n- [Project JavaScript Calculator](#project-javascript-calculator)\n  - [Tabla de Contenidos](#tabla-de-contenidos)\n  - [Descripción](#descripción)\n  - [Librerias Utilizadas](#librerias-utilizadas)\n  - [Requisitos del Proyecto](#requisitos-del-proyecto)\n  - [Proyecto Aprobado al superar todos los test](#proyecto-aprobado-al-superar-todos-los-test)\n  - [Screenshot Devices](#screenshot-devices)\n    - [Pantallas Grandes](#pantallas-grandes)\n    - [Pantallas Small](#pantallas-small)\n  - [Operaciones](#operaciones)\n    - [1: 0.1+0.2](#1-0102)\n      - [1.1: 0.1+0.2 en Javascript Puro](#11-0102-en-javascript-puro)\n      - [1.2: 0.1+0.2 en mi calculadora](#12-0102-en-mi-calculadora)\n    - [2: 0.3-0.1](#2-03-01)\n      - [2.1: 0.3-0.1 en Javascript Puro](#21-03-01-en-javascript-puro)\n      - [2.2: 0.3-0.1 en mi calculadora](#22-03-01-en-mi-calculadora)\n    - [3: 0.7 \\* 0.1](#3-07--01)\n      - [3.1: 0.7 \\* 0.1 en Javascript Puro](#31-07--01-en-javascript-puro)\n      - [3.2: 0.7 \\* 0.1 en mi calculadora](#32-07--01-en-mi-calculadora)\n    - [4: 0.2+0.1-0.3](#4-0201-03)\n      - [4.1: 0.2+0.1-0.3 en Javascript Puro](#41-0201-03-en-javascript-puro)\n      - [4.2: 0.2+0.1-0.3 en mi calculadora](#42-0201-03-en-mi-calculadora)\n    - [5: 0.1\\*0.1](#5-0101)\n      - [5.1: 0.1\\*0.1 en Javascript Puro](#51-0101-en-javascript-puro)\n      - [5.2: 0.1\\*0.1 en mi calculadora](#52-0101-en-mi-calculadora)\n    - [6: 0.3+0.6](#6-0306)\n      - [6.1: 0.3+0.6 en Javascript Puro](#61-0306-en-javascript-puro)\n      - [6.2: 0.3+0.6 en mi calculadora](#62-0306-en-mi-calculadora)\n    - [7: 0.3 \\* 0.3 / 0.1](#7-03--03--01)\n      - [7.1: 0.3 \\* 0.3 / 0.1 en Javascript Puro](#71-03--03--01-en-javascript-puro)\n      - [7.2: 0.3 \\* 0.3 / 0.1 en mi calculadora](#72-03--03--01-en-mi-calculadora)\n  - [Resultados Incoherentes](#resultados-incoherentes)\n\n## Descripción\n\nHe creado una calculadora que realiza las operaciones aritméticas **suma**, **resta**, **multiplicación** y **división** con una precisión de 10 digitos. La calculadora posee botones para el ingreso de digitos del 0 al 9, botón para agregar un punto, botón para volver al estado inicial (borra todo), botones de las 4 operaciones matemáticas y botón para realizar los cálculos. Además, como auto desafío, he creado los botones: agregar dos ceros (**00**), obtener porcentaje (**%**) y borrar el último caracter ingresado **\u003c-**. Estos tres botones adicionales estan fuera de los requisitos obligatorios que debía cumplir el proyecto.\n\n## Librerias Utilizadas\n\n| Tecnologías Utilizadas |\n| ---------------------- |\n| Nextjs 12              |\n| React 17               |\n| ReactDom 17            |\n| Mathjs                 |\n| React-icons            |\n| Typewriter-effect      |\n\n## Requisitos del Proyecto\n\n![Requisitos del Proyecto](./screenshots/requisitos.webp)\n\n## Proyecto Aprobado al superar todos los test\n\n![Proyecto Aprobado](./screenshots/approved_project.webp)\n\n## Screenshot Devices\n\n### Pantallas Grandes\n\n![Pantallas Grandes](./screenshots/project_big_screen.webp)\n\n### Pantallas Small\n\n![Pantallas Small](./screenshots/project_small_screen.jpg)\n\n## Operaciones\n\nA continuación muestro una serie de operaciones matemáticas que usando JavaScript puro darían error debido al uso de números de punto flotante pero que mi calculadora realiza correctamente al manejar los números como BigNumber de la librería **Mathjs**:\n\n### 1: 0.1+0.2\n\n#### 1.1: 0.1+0.2 en Javascript Puro\n\n![0.1+0.2 JS Puro](./screenshots/0.1+0.2_js_puro.jpg)\n\n#### 1.2: 0.1+0.2 en mi calculadora\n\n![0.1+0.2 en mi calculadora](./screenshots/0.1+0.2_calculadora.webp)\n\n### 2: 0.3-0.1\n\n#### 2.1: 0.3-0.1 en Javascript Puro\n\n![0.3-0.1 JS Puro](./screenshots/0.3-0.1_js_puro.jpg)\n\n#### 2.2: 0.3-0.1 en mi calculadora\n\n![0.3-0.1 en mi calculadora](./screenshots/0.3-0.1_calculadora.webp)\n\n### 3: 0.7 \\* 0.1\n\n#### 3.1: 0.7 \\* 0.1 en Javascript Puro\n\n![0.7 * 0.1 JS Puro](./screenshots/0.7por0.1_js_puro.jpg)\n\n#### 3.2: 0.7 \\* 0.1 en mi calculadora\n\n![0.7 * 0.1 en mi calculadora](./screenshots/0.7por0.1_calculadora.webp)\n\n### 4: 0.2+0.1-0.3\n\n#### 4.1: 0.2+0.1-0.3 en Javascript Puro\n\n![0.7 * 0.1 JS Puro](./screenshots/0.2+0.1-0.3_js_puro.jpg)\n\n#### 4.2: 0.2+0.1-0.3 en mi calculadora\n\n![0.2+0.1-0.3 en mi calculadora](./screenshots/0.2+0.1-0.3_calculadora.webp)\n\n### 5: 0.1\\*0.1\n\n#### 5.1: 0.1\\*0.1 en Javascript Puro\n\n![0.7 * 0.1 JS Puro](./screenshots/0.1por0.1_js_puro.jpg)\n\n#### 5.2: 0.1\\*0.1 en mi calculadora\n\n![0.1*0.1 en mi calculadora](./screenshots/0.1por0.1_calculadora.webp)\n\n### 6: 0.3+0.6\n\n#### 6.1: 0.3+0.6 en Javascript Puro\n\n![0.3+0.6 JS Puro](./screenshots/0.3+0.6_js_puro.jpg)\n\n#### 6.2: 0.3+0.6 en mi calculadora\n\n![0.3+0.6 en mi calculadora](./screenshots/0.3+0.6_calculadora.webp)\n\n### 7: 0.3 \\* 0.3 / 0.1\n\n#### 7.1: 0.3 \\* 0.3 / 0.1 en Javascript Puro\n\n![0.3 * 0.3 / 0.1 JS Puro](./screenshots/0.3por0.3div0.1_js_puro.jpg)\n\n#### 7.2: 0.3 \\* 0.3 / 0.1 en mi calculadora\n\n![0.3 * 0.3 / 0.1 en mi calculadora](./screenshots/0.3por0.3div0.1_calculadora.webp)\n\n## Resultados Incoherentes\n\nCuando se intenta calcular alguna operación matemática que este mal escrita se muestra lo siguiente:\n\n![Resultado Incoherente](./screenshots/nan_resultado.webp)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldohidalgo%2Fwaldo_javascript_calculator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaldohidalgo%2Fwaldo_javascript_calculator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldohidalgo%2Fwaldo_javascript_calculator/lists"}