{"id":16890833,"url":"https://github.com/isruslan/angular-shopping-cart","last_synced_at":"2025-06-11T14:05:24.305Z","repository":{"id":71372812,"uuid":"18188986","full_name":"isRuslan/angular-shopping-cart","owner":"isRuslan","description":"Simple shopping cart with AngularJS","archived":false,"fork":false,"pushed_at":"2015-04-17T14:58:51.000Z","size":526,"stargazers_count":16,"open_issues_count":1,"forks_count":10,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-03T22:03:32.126Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://goo.gl/OIJGid","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/isRuslan.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.tpl","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":"2014-03-27T19:43:33.000Z","updated_at":"2019-08-13T15:38:35.000Z","dependencies_parsed_at":"2023-02-27T06:31:21.807Z","dependency_job_id":null,"html_url":"https://github.com/isRuslan/angular-shopping-cart","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/isRuslan%2Fangular-shopping-cart","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isRuslan%2Fangular-shopping-cart/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isRuslan%2Fangular-shopping-cart/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/isRuslan%2Fangular-shopping-cart/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/isRuslan","download_url":"https://codeload.github.com/isRuslan/angular-shopping-cart/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239648449,"owners_count":19674375,"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-10-13T17:04:38.887Z","updated_at":"2025-02-19T11:30:26.550Z","avatar_url":"https://github.com/isRuslan.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [AngularJS Store](http://angular-store.herokuapp.com/) \n\u003cimg src=http://gruntjs.com/img/grunt-logo.png width=200/\u003e \u0026nbsp; \u003cimg src=http://angularjs.org/img/AngularJS-large.png width=250 /\u003e \u0026nbsp; \u003cimg src=http://lesscss.org/public/img/logo.png /\u003e\n\n[![Build Status](https://travis-ci.org/isRuslan/angular-shopping-cart.svg?branch=master)](https://travis-ci.org/isRuslan/angular-shopping-cart)\n\nAn simple frontend kickstarter based on [AngularJS](http://angularjs.org), [Grunt](http://gruntjs.org) and [LESS](http://lesscss.org) for online store.\u003cbr/\u003e\n* [ngBoilerplate](http://joshdmiller.github.com/ng-boilerplate) was taken as skeleton project.\n* [Heroku](https://heroku.com) is using for [production demo](http://angular-store.herokuapp.com/)\n* It is just a fork of [A-Shopping-Cart-Application-Built-with-AngularJS](http://www.codeproject.com/Articles/576246/A-Shopping-Cart-Application-Built-with-AngularJS)\n\n## Quick Start\nInstall Node.js and then:\n```sh\n$ git clone git@github.com:bu-bu/angular-shopping-cart.git\n$ cd angular-shopping-cart\n$ sudo npm -g install grunt-cli karma bower\n$ npm install\n$ bower install\n$ grunt\n```\n\n## Grunt commands\n* `grunt` or `grunt watch` - build developer project (build dir)\n* `grunt prod` - build production project (prod dir)\n* `grunt test` - run tests\n\n## Tools\n* [AngularJS](http://angularjs.org) - Base framework\n* [Grunt](http://gruntjs.org) - Build tool\n* [LESS](http://lesscss.org) - CSS, but smth more\n* [Animate.css](http://daneden.github.io/animate.css/) - Animation library, use with ng-animate\n* [Numeral.js](http://numeraljs.com/) - Work with numbers, use with filter\n\n## Learn\n\n### Overall Directory Structure\n\nAt a high level, the structure looks roughly like this:\n\n```\nangular-shopping-cart/\n  |- karma/\n  |- src/\n  |  |- app/\n  |  |  |- \u003capp logic\u003e\n  |  |- assets/\n  |  |  |- \u003cstatic files\u003e\n  |  |- common/\n  |  |  |- \u003creusable code\u003e\n  |  |- less/\n  |  |  |- main.less\n  |- vendor/\n  |  |- angular/\n  |  |- bootstrap/\n  |  |- etc ..\n  |- .bowerrc\n  |- bower.json\n  |- build.config.js\n  |- Gruntfile.js\n  |- module.prefix\n  |- module.suffix\n  |- package.json\n```\n\nWhat follows is a brief description of each entry, but most directories contain\ntheir own `README.md` file with additional documentation, so browse around to\nlearn more.\n\n- `karma/` - test configuration.\n- `src/` - our application sources. [Read more \u0026raquo;](src/README.md)\n- `vendor/` - third-party libraries. [Bower](http://bower.io) will install\n  packages here. Anything added to this directory will need to be manually added\n  to `build.config.js` and `karma/karma-unit.js` to be picked up by the build\n  system.\n- `.bowerrc` - the Bower configuration file. This tells Bower to install\n  components into the `vendor/` directory.\n- `bower.json` - this is our project configuration for Bower and it contains the\n  list of Bower dependencies we need.\n- `build.config.js` - our customizable build settings; see \"The Build System\"\n  below.\n- `Gruntfile.js` - our build script; see \"The Build System\" below.\n- `module.prefix` and `module.suffix` - our compiled application script is\n  wrapped in these, which by default are used to place the application inside a\n  self-executing anonymous function to ensure no clashes with other libraries.\n- `package.json` - metadata about the app, used by NPM and our build script. Our\n  NPM dependencies are listed here.\n\n### The Build System\n\nThe best way to learn about the build system is by familiarizing yourself with\nGrunt and then reading through the heavily documented build script,\n`Gruntfile.js`. But you don't need to do that to be very productive with\n`ngBoilerplate`. What follows in this section is a quick introduction to the\ntasks provided and should be plenty to get you started.\n\nThe driver of the process is the `delta` multi-task, which watches for file\nchanges using `grunt-contrib-watch` and executes one of nine tasks when a file\nchanges:\n\n* `delta:gruntfile` - When `Gruntfile.js` changes, this task runs the linter\n  (`jshint`) on that one file and reloads the configuration.\n* `delta:assets` - When any file within `src/assets/` changes, all asset files\n  are copied to `build/assets/`.\n* `delta:html` - When `src/index.html` changes, it is compiled as a Grunt\n  template, so script names, etc., are dynamically replaced with the correct\n  values configured dynamically by Grunt.\n* `delta:less` - When any `*.less` file within `src/` changes, the\n  `src/less/main.less` file is linted and copied into\n  `build/assets/ng-boilerplate.css`.\n* `delta:jssrc` - When any JavaScript file within `src/` that does not end in\n  `.spec.js` changes, all JavaScript sources are linted, all unit tests are run,\n  and the all source files are re-copied to `build/src`.\n* `delta:coffeesrc` - When any `*.coffee` file in `src/` that doesn't match\n  `*.spec.coffee` changes, the Coffee scripts are compiled independently into\n  `build/src` in a structure mirroring where they were in `src/` so it's easy to\n  locate problems. For example, the file\n  `src/common/titleService/titleService.coffee` is compiled to\n  `build/src/common/titleService/titleService.js`.\n* `delta:tpls` - When any `*.tpl.html` file within `src/` changes, all templates\n  are put into strings in a JavaScript file (technically two, one for\n  `src/common/` and another for `src/app/`) that will add the template to\n  AngularJS's\n  [`$templateCache`](http://docs.angularjs.org/api/ng.$templateCache) so\n  template files are part of the initial JavaScript payload and do not require\n  any future XHR.  The template cache files are `build/template-app.js` and\n  `build/template-common.js`.\n* `delta:jsunit` - When any `*.spec.js` file in `src/` changes, the test files\n  are linted and the unit tests are executed.\n* `delta:coffeeunit` - When any `*.spec.coffee` file in `src/` changes, the test\n  files are linted, compiled their tests executed.\n\nAs covered in the previous section, `grunt watch` will execute a full build\nup-front and then run any of the aforementioned `delta:*` tasks as needed to\nensure the fastest possible build. So whenever you're working on your project,\nstart with:\n\n```sh\n$ grunt\n```\n\nAnd everything will be done automatically!\n\nWhen you're ready to push your app into production, just run the `prod`\ncommand:\n\n```sh\n$ grunt prod\n```\nThis will concatenate and minify your sources and place them by default into the\n`prod/` directory. There will only be three files: `index.html`,\n`your-app-name.js`, and `your-app-name.css`. All of the vendor dependencies like\nBootstrap styles and AngularJS itself have been added to them for super-easy\ndeploying. If you use any assets (`src/assets/`) then they will be copied to\n`prod/` as is.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisruslan%2Fangular-shopping-cart","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fisruslan%2Fangular-shopping-cart","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fisruslan%2Fangular-shopping-cart/lists"}