{"id":15304658,"url":"https://github.com/monkeymars/catch","last_synced_at":"2026-02-17T01:01:59.243Z","repository":{"id":39361792,"uuid":"212566841","full_name":"monkeymars/catch","owner":"monkeymars","description":"Catalog page with add to cart","archived":false,"fork":false,"pushed_at":"2023-01-04T22:04:38.000Z","size":1735,"stargazers_count":0,"open_issues_count":24,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T00:27:06.478Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/monkeymars.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-10-03T11:49:20.000Z","updated_at":"2019-10-05T14:21:59.000Z","dependencies_parsed_at":"2023-02-02T21:31:37.205Z","dependency_job_id":null,"html_url":"https://github.com/monkeymars/catch","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/monkeymars/catch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeymars%2Fcatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeymars%2Fcatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeymars%2Fcatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeymars%2Fcatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/monkeymars","download_url":"https://codeload.github.com/monkeymars/catch/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/monkeymars%2Fcatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29528240,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T00:57:22.232Z","status":"ssl_error","status_checked_at":"2026-02-17T00:54:25.811Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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-10-01T07:57:23.868Z","updated_at":"2026-02-17T01:01:59.201Z","avatar_url":"https://github.com/monkeymars.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# List Product Page\n\n![alt text](https://i.imgur.com/cel44xK.png)\n\n# App Structure\n\n    .\n    ├── public                    # public directory\n    │   ├── index.html            # index.html wrapper\n    │   └── ...\n    ├── src\n    │   ├── components            # components that can be used globaly\n    │       ├── ProductCard       # Card for product tuple\n    │       └── ShoppingCart      # Show cart items (qty, product name, price and total)\n    │   ├── pages                 # this directory is used to differentiate code based on page url\n    │       ├── Main              # page: Main page\n    │           ├── components    # this compoenent directory is used only for specific page\n    │           ├── services      # this services directory is used only for specific page\n    │           ├── styles        # this styles directory is used only for specific page\n    │           ├── test          # this test directory is used only for specific page\n    │           └── index.jsx     # index file for main page\n    │   ├── redux                 # this directory is used to put actions \u0026 reducers\n    │       ├── actions           # cart actions (addToCart, addQty, removeQty, removeItem)\n    │       └── reducers          # cart reducers\n    │   ├── services              # directory hold global services (eg: http method, axios, etc)\n    │   ├── index.js              # react app entry point\n    │   ├── store.js              # redux store\n    │   └── ...\n    └── ...\n\nThis project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).\nI try implementing react hooks api and using functional component instead of class component for clearer syntax, less line code, smaller file zise afer bundling also it is easier to share stateful logic between component. As you can see at ./src, there is components directory so all global components goes here; `\u003cProductCardComponent/\u003e` to dislplay product tuple \u0026 `\u003cShoppingCartComponent/\u003e` to display cart information.\n\nThen ./src/pages will store codes based on page url (eg: /main, /cart, /checkout, etc). Inside page component directory, there are components, services, styles, test, index that specificaly used by its page. ./src/redux to store actions and reducer so we can maintain event or middleware on that directory. Redux as state management use single soure of truth placed on ./src/store.js and for now only cart data used.\n\n## Available Scripts\n\nIn the project directory, you can run:\n\n### `yarn start`\n\nRuns the app in the development mode.\u003cbr /\u003e\nOpen [http://localhost:3000](http://localhost:3000) to view it in the browser.\n\nThe page will reload if you make edits.\u003cbr /\u003e\nYou will also see any lint errors in the console.\n\n### `yarn test`\n\nLaunches the test runner in the interactive watch mode.\u003cbr /\u003e\nSee the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.\n\n### `yarn build`\n\nBuilds the app for production to the `build` folder.\u003cbr /\u003e\nIt correctly bundles React in production mode and optimizes the build for the best performance.\n\nThe build is minified and the filenames include the hashes.\u003cbr /\u003e\nYour app is ready to be deployed!\n\nGery Wibowo \u003cbr/\u003e\nakun.gery@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkeymars%2Fcatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmonkeymars%2Fcatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmonkeymars%2Fcatch/lists"}