{"id":20495357,"url":"https://github.com/kevinast/reactshoppingcart","last_synced_at":"2025-03-05T18:24:05.407Z","repository":{"id":92033503,"uuid":"50127038","full_name":"KevinAst/ReactShoppingCart","owner":"KevinAst","description":"Initial Release","archived":false,"fork":false,"pushed_at":"2016-02-15T16:38:15.000Z","size":148,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-16T06:13:19.115Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/KevinAst.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}},"created_at":"2016-01-21T18:15:00.000Z","updated_at":"2016-01-21T20:25:50.000Z","dependencies_parsed_at":"2023-05-02T12:37:31.887Z","dependency_job_id":null,"html_url":"https://github.com/KevinAst/ReactShoppingCart","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/KevinAst%2FReactShoppingCart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinAst%2FReactShoppingCart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinAst%2FReactShoppingCart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KevinAst%2FReactShoppingCart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KevinAst","download_url":"https://codeload.github.com/KevinAst/ReactShoppingCart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242077466,"owners_count":20068365,"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":[],"created_at":"2024-11-15T17:45:36.077Z","updated_at":"2025-03-05T18:24:05.240Z","avatar_url":"https://github.com/KevinAst.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReactShoppingCart\n\nThis is Kevin's sandbox for CodeWinds University React training course\n(Jeff Barczewski http://codewinds.com/).\n\nThis project implements a shopping cart application, with check-out\nand receipt, retrieving data from simulated rest service.\n\n## Various branches include:\n\n- 185-fetch-data: Fetching data with Axios\n- 190-catalog: Provide a visual catalog of our items for sale\n- 215-216-testing: Introduction to unit testing using Karma, Mocha, and Expect\n- 220-item-details: Added support for \"show item details\" in our app\n- 226-inline-detail: Display details inline\n- 230-catalog-filter: Provide a category filter in our Catalog display\n- 240-catalog-buy-buttons: Provide \"buy\" button basics\n- 250-checkout: Collect billing info with a form\n- 260-validate-submit: Provide checkout validation using joi framework\n- 270-receipt: Create a receipt\n- 276-ship-addr-challenge: provide shipping address in Checkout dialog\n- 277-red-fields-challenge: add red border around fields that are invalid\n- kjb-app-joi-wrapper: Utilize value-added Joi Wrapper to meet app-specific requrements\n- 280-cart-test-state: Add a shopping cart\n- 300-receipt-details: Provide detailed receipt (and move receiptId to phantom Axios service)\n- 310-handle-esc: Escape key dismisses modal dialogs\n- kjb-cart-items-cleanup: cleanup all appropriate code to use CartItem nomenclature\n- 316-qty-plus-minus: add +/- buttons to change quantity\n\n## Jeff's Notes:\n\nFeatures:\n\n - **React.js JSX example which fetches from REST source and renders**\n - **simple build and auto rebuild** (watch) using npm run scripts\n - **browser-sync** for auto reloading in browser on change\n - **ES6/7 and JSX compiling** to ES5 with **babeljs**\n - **eslint** for linting\n - **browserify** (w/babelify) for bundling javascript for the browser\n - **watchify** to automatically rebuild on changes\n - **uglify** for js minification\n - **less** CSS style compiler\n - **autoprefixer** for automatically adding css prefixes\n - **cleancss** for css minification\n - **karma** for js unit testing in browsers or phantomjs\n - **phantomjs** for headless testing in browser\n - **axios** for promise based HTTP client\n - **cross platform** - runs on Mac OS X, linux, unix, windows\n\n\nStructure:\n\n - package.json - dependencies and build commands\n - public/index.html - main HTML\n - public/fake-api.json - mock REST api returning json data\n - src/browser.jsx - React.js JSX code which fetches REST data and renders App component into the main HTML\n - src/app.jsx - Main app component used to display data\n - src/items.kmocha.jsx - sample karma mocha test for items\n - src/util/polyfill.js - Import any core-js or other polyfills here\n - src/util/karma-setup.js - common karma setup\n - style/site.less - CSS styles used by site, edit or import into\n - .babelrc - babel configuration\n - bs-config.js - browser-sync config, set browser to launch\n - karma.conf.js - karma test configuration\n - postcss.json - postcss config controls autoprefixer\n - dist/ - contains compiled and minified css and js\n\nNotes:\n\n - My default browser for browser-sync is `Google Chrome`, if you want\n   to use a different browser like `Google Chrome Canary` or `Mozilla\n   Firefox` edit `bs-config.js`\n\n\n## Installation\n\nRequires node.js/iojs \u003e= 0.10\n\n```bash\nnpm install ## install dependent node modules\n```\n\n## Usage\n\nTODO: update with your usage\n\nPrimary use - auto build and reload browser\n```bash\nnpm run watch # build and watch, auto recompile and load changes\n# use control-c to exit the autobuild watch\n\n# start is also aliased to run watch\nnpm start # executes npm run watch\n```\n\nBuild only\n```bash\nnpm run build # build only\n```\n\nSingle run of tests\n```bash\nnpm test\n```\n\nBuild for Production\n```bash\nnpm run prod-build # sets NODE_ENV=production then builds\n```\n\n\n## Goals\n\nTODO: Add your goals here\n\n## Why\n\nTODO: Add your description of why you created this\n\n## Get involved\n\nIf you have input or ideas or would like to get involved, you may:\n\n - contact me via twitter @jeffbski  - \u003chttp://twitter.com/jeffbski\u003e\n - open an issue on github to begin a discussion - \u003chttps://github.com/jeffbski/react-cart/issues\u003e\n - fork the repo and send a pull request (ideally with tests) - \u003chttps://github.com/jeffbski/react-cart\u003e\n\n## License\n\n - [MIT license](http://github.com/jeffbski/react-cart/raw/master/LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinast%2Freactshoppingcart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkevinast%2Freactshoppingcart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkevinast%2Freactshoppingcart/lists"}