{"id":18602916,"url":"https://github.com/jeffersonribeiro/luizalabs-front-end","last_synced_at":"2025-04-10T19:31:14.814Z","repository":{"id":55365843,"uuid":"166555686","full_name":"jeffersonRibeiro/luizalabs-front-end","owner":"jeffersonRibeiro","description":"Single Page App built with React to search places by CEP and save to favorites.","archived":false,"fork":false,"pushed_at":"2022-10-27T13:58:26.000Z","size":1136,"stargazers_count":4,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T03:34:06.405Z","etag":null,"topics":["continuous-deployment","continuous-integration","integration-testing","react","redux","spa","unit-testing"],"latest_commit_sha":null,"homepage":"https://luizalabs-229113.firebaseapp.com/favorites","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/jeffersonRibeiro.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}},"created_at":"2019-01-19T14:30:04.000Z","updated_at":"2021-05-24T15:14:47.000Z","dependencies_parsed_at":"2023-01-20T13:11:42.010Z","dependency_job_id":null,"html_url":"https://github.com/jeffersonRibeiro/luizalabs-front-end","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/jeffersonRibeiro%2Fluizalabs-front-end","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffersonRibeiro%2Fluizalabs-front-end/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffersonRibeiro%2Fluizalabs-front-end/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jeffersonRibeiro%2Fluizalabs-front-end/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jeffersonRibeiro","download_url":"https://codeload.github.com/jeffersonRibeiro/luizalabs-front-end/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281396,"owners_count":21077423,"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":["continuous-deployment","continuous-integration","integration-testing","react","redux","spa","unit-testing"],"created_at":"2024-11-07T02:12:50.918Z","updated_at":"2025-04-10T19:31:11.519Z","avatar_url":"https://github.com/jeffersonRibeiro.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Luizalabs Front End Test [![CircleCI](https://circleci.com/gh/jeffersonRibeiro/luizalabs-front-end.svg?style=shield\u0026circle-token=5a8843f9fcb781df4aa43bc76fc0f1460e012f8a)](https://circleci.com/gh/jeffersonRibeiro/luizalabs-front-end)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./doc/app-demo.png\"\u003e\n\u003c/p\u003e\n\n## Basic Overview - [Live Demo](https://luizalabs-229113.firebaseapp.com/)\n\nA Single Page application built with React to search places by CEP and save to favorites. The application is simple but is using advanced techniques of front end development like SPA navigation, state management, unit tests, integration tests, continuous integration, continuous deployment, SASS, scaleable folder structure, ESlint and prettierrc to maintain code styling quality.\n\n**Important:** _To secure my Google Maps API_KEY I've built a Node app and hosted it on Heroku and because of that it may take a while to load the first map if the Heroku app is in sleep mode. You can check the code [here](https://github.com/jeffersonRibeiro/node-google-static-map-proxy)_\n\n#### Features\n\n- Search for a CEP and add to favorites\n- Favorite list persist after page reload\n- Responsive\n- **Unit tests and integration tests**\n- **CircleCI Continuous Integration and Deployment with Firebase**\n\n#### Using\n\n- React\n  - Redux - state management\n  - React Router - SPA functionality\n- Axios - for promise HTTP requests\n- CSS\n  - BEM methodology\n  - SASS\n- Moxios - to stub http request\n- Enzyme - to mount, shallow, render and query the DOM tree of React components\n- Native local storage - to persist products in cart even after page reload\n- CircleCI\n- Firebase\n\n## About tests\n\n- Unit tests\n  - All components have at least a basic smoke test\n- **Integration tests**\n  - **Search for a CEP and add place to favorite**\n\n### Coverage report\n\n![coverage](./doc/coverage-report.png 'coverage')\n\n## Build/Run\n\n#### Requirements\n\n- Node.js\n- NPM\n\n```javascript\n\n/* First, install the needed packages */\nnpm install\n\n/* then start the React app */\nnpm start\n\n/* to run the tests */\nnpm run test\n\n```\n\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\u003cimg src=\"http://www.jeffersonribeiro.com/assets/img/apple-icon-180x180.png\" width=\"35\" height=\"35\"/\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003csub\u003eA little project by \u003ca href=\"http://www.jeffersonribeiro.com/\"\u003eJefferson Ribeiro\u003c/a\u003e\u003c/sub\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffersonribeiro%2Fluizalabs-front-end","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjeffersonribeiro%2Fluizalabs-front-end","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjeffersonribeiro%2Fluizalabs-front-end/lists"}