{"id":18700630,"url":"https://github.com/codingcodax/basement-challenge","last_synced_at":"2026-04-10T14:43:29.390Z","repository":{"id":128132476,"uuid":"398092692","full_name":"codingcodax/basement-challenge","owner":"codingcodax","description":"E-commerce construido con Next JS para basement.studio challenge. 🔥","archived":false,"fork":false,"pushed_at":"2021-08-24T19:44:59.000Z","size":896,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-17T01:32:11.528Z","etag":null,"topics":["cypress","e-commerce","eslint","integration-testing","next-js","prettier","tailwindcss","typescript"],"latest_commit_sha":null,"homepage":"https://basement-challenge-swart.vercel.app/","language":"TypeScript","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/codingcodax.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":"2021-08-19T22:45:48.000Z","updated_at":"2021-08-24T19:51:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac8fbe48-88c3-44e0-b34e-e6e0d9a1b775","html_url":"https://github.com/codingcodax/basement-challenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingcodax%2Fbasement-challenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingcodax%2Fbasement-challenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingcodax%2Fbasement-challenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codingcodax%2Fbasement-challenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codingcodax","download_url":"https://codeload.github.com/codingcodax/basement-challenge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239565650,"owners_count":19660154,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cypress","e-commerce","eslint","integration-testing","next-js","prettier","tailwindcss","typescript"],"created_at":"2024-11-07T11:38:17.775Z","updated_at":"2025-11-08T22:30:31.283Z","avatar_url":"https://github.com/codingcodax.png","language":"TypeScript","readme":"# basement.studio challenge: b. Supply\n\nCódigo para [basement.studio challenge: b. Supply](https://github.com/goncy/basement-challenge).\n\nE-commerce de una página con el diseño de [este figma](https://www.figma.com/file/BYjaSbdPyhEL0ucneDlIQ0/Dev-Challenge?node-id=1%3A218) construido en Next JS.\n\n[Preview](https://basement-challenge-swart.vercel.app/) del challenge.\n\n## Stack\n\n- [Next JS](https://nextjs.org/) como framework.\n- [Typescript](https://www.typescriptlang.org/) javascipt estricto.\n- [Tailwind CSS](https://tailwindcss.com/) CSS framework.\n- [Cypress](https://www.cypress.io/) para tests de integración.\n- [ESLint](https://eslint.org/) para encontrar y resolver problemas en el código.\n- [Prettier](https://prettier.io/) para formatear el código.\n- [Framer Motion](https://www.framer.com/motion/) solo para pequeñas animaciones.\n\n## ¿Como funciona? 🤔\n\nSe construyo un provider para el manejo del estado para el carrito usando `useContext` y `useReducer` que encapsula a toda la aplicación, los productos se obtienen de un mockup local renderizados en la página de inicio.\n\nCuando se agrega un producto al carrito el estado se actualizara con `dispatch` `type: ADD_PRODUCT` mandando todo el objeto del producto actual añadiendo valores adicionales como la cantidad y valores por defecto como el tamaño.\n\nSe puede agregar o disminuir la cantidad de un producto con `dispatch` `type PLUS_ONE` ó `type MINUS_ONE` mandando el id del producto, cuando la cantidad es uno y se presiona el botón `-` este se eliminara del carrito automáticamente.\n\nLos datos del carrito se guardan en el `local storage` y se muestran en consola cuando se presiona el botón de `checkout`.\n\n## TODOs\n\n- Tests unitarios con [Jest](https://jestjs.io/) y [React testing library](https://testing-library.com/).\n- Optimización de renderización de los componentes.\n- Arreglar deslizamiento del texto `A man can’t have enough base­ment swag` en la página de inicio para pantallas pequeñas.\n\n## Instalación\n\n- Instalar las dependencias del proyecto: `npm install`.\n- Correr el servidor de desarrollo: `npm run dev`.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingcodax%2Fbasement-challenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodingcodax%2Fbasement-challenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingcodax%2Fbasement-challenge/lists"}