{"id":22533960,"url":"https://github.com/aniraannu/redux-store","last_synced_at":"2026-02-13T12:04:33.223Z","repository":{"id":255785526,"uuid":"853605773","full_name":"aniraannu/redux-store","owner":"aniraannu","description":null,"archived":false,"fork":false,"pushed_at":"2024-09-07T03:02:59.000Z","size":3652,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T05:44:23.018Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aniraannu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-09-07T02:51:48.000Z","updated_at":"2024-09-07T03:03:03.000Z","dependencies_parsed_at":"2024-09-07T04:56:49.695Z","dependency_job_id":"0f4670c4-350f-4e70-b1fe-7dff2d0ce7ba","html_url":"https://github.com/aniraannu/redux-store","commit_stats":null,"previous_names":["aniraannu/redux-store"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aniraannu/redux-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aniraannu%2Fredux-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aniraannu%2Fredux-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aniraannu%2Fredux-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aniraannu%2Fredux-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aniraannu","download_url":"https://codeload.github.com/aniraannu/redux-store/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aniraannu%2Fredux-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274254586,"owners_count":25250425,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"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":[],"created_at":"2024-12-07T09:10:48.149Z","updated_at":"2026-02-13T12:04:28.185Z","avatar_url":"https://github.com/aniraannu.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 22 State: Redux Store (Extra Credit)\n\n## Your Task\n\nIn this module, you learned how to manage global state using React’s Context API. The Context API is quickly gaining traction as a worthy alternative or perhaps even successor to other libraries that manage global state in tandem with React, such as Flux or MobX. Nonetheless, the open source JavaScript library Redux remains the industry standard for managing complex state in a large-scale React application, and you’ll likely encounter it on the job.\n\nYour challenge this week is to refactor the e-commerce platform from [Activity 26](../01-Activities/26-Stu_Actions-Reducers/Unsolved) so that it uses [Redux](https://redux.js.org/). You won’t need to make sweeping changes to the code, but you will need to read through the Redux documentation on your own to find the information you need. Some guidelines have been provided in the Getting Started section to point you in the right direction. If you haven't yet, download the [e-commerce platform code from Activity 26](http://static.fullstack-bootcamp.com/fullstack-ground/unit-22/26-Stu_Actions-Reducers.zip).\n\n**On the Job**: Web developers frequently have to immerse themselves in a new technology to solve a problem, with only that tool’s documentation for help. They must sift through it to find the information that matches the specific problem they’re trying to solve. This assignment will allow you to practice a skill that you’ll use many times over the course of your career.\n\nRemember, this module's Challenge is extra credit. It is not required for submission, nor will it count towards one of the two assignments that you can skip. If you choose to submit this Challenge, you will receive extra credit points on your final grade. However, if you choose not to submit it, your final grade will not be affected in any way. This Challenge is an opportunity for you to further practice your skills and get feedback on it, with the added incentive of receiving extra credit for the work.\n\n## User Story\n\n```md\nAS a senior engineer working on an e-commerce platform\nI WANT my platform to use Redux to manage global state instead of the Context API\nSO THAT my website's state management is taken out of the React ecosystem\n```\n\n## Acceptance Criteria\n\n```md\nGIVEN an e-commerce platform that uses Redux to manage global state\nWHEN I review the app’s store\nTHEN I find that the app uses a Redux store instead of the Context API\nWHEN I review the way the React front end accesses the store\nTHEN I find that the app uses a Redux provider\nWHEN I review the way the app determines changes to its global state\nTHEN I find that the app passes reducers to a Redux store instead of using the Context API\nWHEN I review the way the app extracts state data from the store\nTHEN I find that the app uses Redux instead of the Context API\nWHEN I review the way the app dispatches actions\nTHEN I find that the app uses Redux instead of the Context API\n```\n\n## Mock-Up\n\nThis section reviews the web application's general appearance and functionality.\n\nThe following animation shows how a user can register using the Signup page and then navigate to the Products page:\n\n![A user registers on the Signup page and then navigates to the Products page, which displays images and descriptions of products.](./Assets/22-state-homework-demo-01.gif)\n\nThe following animation shows how the user can select a category, choose a product, view details about it on the product page, and add and remove it from their shopping cart:\n\n![The user selects a category, chooses a product, views details about it on the product page, and adds it to and removes it from their shopping cart.](./Assets/22-state-homework-demo-02.gif)\n\nFinally, the user can check out by going to their shopping cart, as shown in the following animation:\n\n![The user checks out by going to their shopping cart.](./Assets/22-state-homework-demo-03.gif)\n\n## Getting Started\n\nFor instructions to add Redux to your application, refer to the [Redux Fundamentals basic tutorial](https://redux.js.org/basics/basic-tutorial). Note that the documentation will refer to additional packages that you'll need to complete this implementation.\n\nBe sure to review ALL of the documentation, because there are newer methods that can make these tools much easier to implement. React has gone through several iterations; as such, some React-and-Redux tutorials will assume that you aren't using Hooks.\n\nYou'll use the Stripe API to process payments, which includes making front-end and back-end changes. Don't worry, Stripe provides test credentials, so you won't need to use a real credit card to try it out. Refer to the [Stripe docs on testing your integration](https://stripe.com/docs/testing).\n\n## Grading Requirements\n\n\u003e **Note**: If a Challenge assignment submission is marked as “0”, it is considered incomplete and will not count towards your graduation requirements. Examples of incomplete submissions include the following:\n\u003e\n\u003e * A repository that has no code\n\u003e\n\u003e * A repository that includes a unique name but nothing else\n\u003e\n\u003e * A repository that includes only a README file but nothing else\n\u003e\n\u003e * A repository that only includes starter code\n\nThis Challenge is graded based on the following criteria:\n\n### Technical Acceptance Criteria: 40%\n\n* Satisfies all of the preceding acceptance criteria plus the following:\n\n  * Retains all the functionality of the original application.\n\n  * Application must be deployed to Render.\n\n### Deployment: 32%\n\n* Application deployed at live URL.\n\n* Application loads with no errors.\n\n* Application GitHub URL submitted.\n\n* GitHub repository contains application code.\n\n### Application Quality: 15%\n\n* User experience is intuitive and easy to navigate.\n\n* User interface style is clean and polished.\n\n* Application resembles the mock-up functionality provided in the Challenge instructions.\n\n### Repository Quality: 13%\n\n* Repository has a unique name.\n\n* Repository follows best practices for file structure and naming conventions.\n\n* Repository follows best practices for class/id naming conventions, indentation, quality comments, etc.\n\n* Repository contains multiple descriptive commit messages.\n\n* Repository contains high-quality README file with description, screenshot, and link to the deployed application.\n\n## Review\n\nYou are required to submit BOTH of the following for review:\n\n* The URL of the functional, deployed application.\n\n* The URL of the GitHub repository, with a unique name and a README describing the project.\n\n---\n\n© 2024 edX Boot Camps LLC. Confidential and Proprietary. All Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faniraannu%2Fredux-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faniraannu%2Fredux-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faniraannu%2Fredux-store/lists"}