{"id":20824788,"url":"https://github.com/react-dev-james/carylandholt-fatarrow","last_synced_at":"2025-03-12T07:14:51.341Z","repository":{"id":206158860,"uuid":"120273813","full_name":"react-dev-james/CaryLandholt-fatarrow","owner":"react-dev-james","description":null,"archived":false,"fork":false,"pushed_at":"2018-04-02T02:56:12.000Z","size":171,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-18T17:24:57.714Z","etag":null,"topics":["angular","angularjs","coffeescript"],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","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/react-dev-james.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"2018-02-05T08:07:38.000Z","updated_at":"2019-01-31T14:27:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"7aac4748-d06e-49b3-8a94-d296a2fcfa98","html_url":"https://github.com/react-dev-james/CaryLandholt-fatarrow","commit_stats":null,"previous_names":["react-dev-james/carylandholt-fatarrow"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-dev-james%2FCaryLandholt-fatarrow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-dev-james%2FCaryLandholt-fatarrow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-dev-james%2FCaryLandholt-fatarrow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/react-dev-james%2FCaryLandholt-fatarrow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/react-dev-james","download_url":"https://codeload.github.com/react-dev-james/CaryLandholt-fatarrow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243172144,"owners_count":20247887,"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":["angular","angularjs","coffeescript"],"created_at":"2024-11-17T22:23:44.102Z","updated_at":"2025-03-12T07:14:51.322Z","avatar_url":"https://github.com/react-dev-james.png","language":"CoffeeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fatarrow\n###An [AngularJS](http://angularjs.org/) application Reference Architecture\n[![License][license-image]][license-url]\n[![Version][version-image]][version-url]\n[![Build Status][build-image]][build-url]\n[![Dependency Status][dependencies-image]][dependencies-url]\n\nBuild [AngularJS](http://angularjs.org/) applications with [CoffeeScript](http://coffeescript.org/) - **without the ceremony**. By the way, you can write JavaScript too.\n\n\n## Table of Contents\n* [Installing](#installing)\n* [Running](#running)\n* [Scripting](#scripting)\n* [Styling](#styling)\n* [Templating](#templating)\n* [Structure](#structure)\n* [Features](#features)\n* [Configuration](#conf)\n* [Contributing](#contributing)\n* [Changelog](#changelog)\n* [License](#license)\n\n\n## Installing\nBefore running, you must install and configure the following one-time dependencies:\n\n* [Git](http://git-scm.com/)\n* [Node.js](http://nodejs.org/)\n\nEnter the following in the terminal\n\nOption 1: Using Yeoman Generator (Recommended)\n```bash\n$ npm install -g gulp yo\n$ npm install -g generator-fatarrow\n$ mkdir my-new-project \u0026\u0026 cd $_\n$ yo fatarrow\n```\n\nOption 2: Clone this repo\n```bash\n$ npm install -g gulp\n$ git clone git@github.com:DedicatedWebStar/fatarrow.git\n$ cd fatarrow\n$ npm install\n```\n\n## Running\nHere are some useful commands to get started:\n\nGet all commands and options by typing\n\n```bash\n$ gulp help\n```\n\nRunning with With a fake backend ([$httpBackend](https://docs.angularjs.org/api/ngMockE2E/service/$httpBackend))\n```bash\n$ gulp\n```\nWith a real backend (gulp will proxy calls to the backend of your choice)\n```bash\n$ gulp --backend\n```\nBuild for production\n```bash\n$ gulp --prod --no-serve\n```\nRun tests on your build server\n```bash\n$ npm test\n```\nDeploy your app\u003ca name=\"deploy\"\u003e\u003c/a\u003e\n```bash\n$ npm test\n$ gulp --prod --no-serve\n# deploy to a path (configuration in /config/locationConfig.coffee)\n$ gulp deploy\n# deploy to S3 (configurtion in /config/s3Config.coffee)\n$ gulp deploy --target s3\n```\n\n## Scripting\nYour choice of scripting languages.\n\n* **JavaScript**\n* **[Babel](https://babeljs.io/)**\n* **[CoffeeScript](coffeescript.org)**\n* **[LiveScript](livescript.net)**\n* **[TypeScript](http://www.typescriptlang.org/)**\n\n## Styling\nYour choice of styling languages.\n\n* **CSS**\n* **[LESS](http://lesscss.org/)**\n* **[Sass](http://sass-lang.com/)**\n\n## Templating\nYour choice of templating engines.\n\n* **HTML**\n* **[Haml](http://haml.info/)**\n* **[Jade](http://jade-lang.com/)**\n* **[Markdown](http://daringfireball.net/projects/markdown/)**\n\n## Structure\n- File extensions supported by fatarrow:\n  - Scripts: `.coffee`, `.js`, `.ls`, `.ts`, `.es6`\n  - Styles: `.less`, `.css`, `.scss`\n  - Templates: `.html`, `.haml`, `.jade`\n\n**(Note: to keep the example succint, `.coffee`, `.html` and `.less` extensions are used below. However, all of the file extensions listed above can be used, and even can be mix-and-matched.)**\n\nThe root directory generated for a fatarrow app:\n\u003cpre\u003e\n├──  e2e/\n├──  config/\n├──  src/\n│   ├──  components/\n│   │   └──  comp/\n│   │   │   ├──  test\n│   │   │   ├──  └──  comp.spec.coffee\n│   │   │   ├──  comp.coffee\n│   │   │   └──  comp.html\n│   │   │   └──  comp.backend.coffee\n│   │   │   └──  comp.less\n│   ├──  app/\n│   │   ├──  app.coffee\n│   │   ├──  appRoutes.coffee\n│   │   └──  views.backend.coffee\n│   ├──  home/\n│   │   ├──  homeController.coffee\n│   │   ├──  homeRoutes.coffee\n│   │   └──  home.html\n│   ├──  img/\n│   │   └──  angularjs.jpg\n│   └──  index.html\n├──  tasks/\n├──  bower_components/\n├──  nodes_modules/\n├──  .bowerrc\n├──  .gitignore\n├──  bower.json\n├──  gulpfile.coffee\n├──  package.json\n\u003c/pre\u003e\n\nExplanation of the folders:\n- *`src/app`*: Angular module for the app. All app level config should go here.\n- *`src/home`*: Each feature of the app should go in its own folder. It should contain all scripts, styles, templates and tests within the feature folder.\n- *`src/components`*: Reusable components (directives, factories, styles, etc.)\n- *`e2e`*: Protractor tests. They should also be separated by features/components.\n- *`config`*: Configurtion for gulp tasks broken up by each task.\n\n## Features\n- *Fake data*: Running `gulp` will include the `.backend.coffee` files and therefore Angular's $httpBackend will be utilized. This should be used for backendless development.\n- *Real data*: Running `gulp --backend` will proxy all backend calls to the backend of your choice. [See below](#conf) for configuration instructions.\n- *Production build*: Running `gulp --prod` will produce builds for production. This includes:\n\t- *ngAnnotate* : make your angular code minification proof\n\t- *[ngClassify](https://github.com/DedicatedWebStar/ng-classify)* : CoffeeScript classes for angular\n\t- *minification* : JS, CSS and HTML\n\t- *image minification*: images from teh `img` folder are compressed\n\t- *rev*: minified files are rev'ed for browser cache busting\n\t- *templatecache* : take all angular templates and include them in the minified scripts\n\t- *deploy*: deploy to a path or to [AWS S3](http://aws.amazon.com/s3/). [see above](#deploy) for commands.\n- *Dev Workflow*:\n\t- *watch* : watch your `src` folder and rebuild and reload automatically\n\t- *linting* : lint `.js` and `.coffee` files. style checking and fixing with [JSCS](http://jscs.info/)\n\t- *test* : run e2e (protractor) and unit (karma) tests\n\t- *[browserSync](http://www.browsersync.io/)* : test on multiple devices simultaneously\n\t- *newer*: only process changed files\n\t- *HTML5Mode*: [Angular's html5Mode](https://docs.angularjs.org/guide/$location) is supported on the BrowserSync server. Be sure to [configure your production web server](https://docs.angularjs.org/guide/$location). HTMO5Mode is turned on by default. See Angular's documentation to turn it off for browser compatibility.\n\t- *plato*: perform code visualization, static analysis, and complexity analysis\n\n## Configuration\u003ca name=\"conf\"\u003e\u003c/a\u003e\n- *.jscsrc*: options for JSCS. [See reference](http://jscs.info/rules.html)\n- *.jshintrc*: options for jsHint. [See reference](http://jshint.com/docs/options/)\n\n**(Note: Configuration for the rest of the gulp plug-ins lives in the `config` folder.)**\n- *app.coffee*\n\t- *`APP_NAME`*: name of the angular module for the app\n- *bower.coffee*\n\t- *`BOWER_COMPONENTS`*: consume dependencies from bower by specifying dependency name, version, dependency type (scripts, styles, etc.) and a list of files to be consumed (cherry picking files).\n- *coffeeLint.coffee*: options for linting CoffeeScript. [See reference](http://www.coffeelint.org/#options)\n- *e2e.coffee*: options for protractor. [See reference](https://github.com/angular/protractor/blob/master/docs/referenceConf.js).\n- *karma.coffee*: options for karma. [See reference](http://karma-runner.github.io/0.8/config/configuration-file.html)\n- *languages.coffee*: disable compilers not in use to optimize your build\n- *less.coffee*: options for the less compiler. [See reference](http://lesscss.org/usage/)\n- *locationDeploy.coffee*: deploy app to a path\n- *plato.coffee*: options for plato. [See reference](https://github.com/es-analysis/plato)\n- *s3Deploy.coffee*: options to deploy to AWS S3. [See reference](https://www.npmjs.com/package/s3)\n- *`SCRIPTS`*: load order for scripts\n- *server.coffee*: options for browser-sync development server\n\t- *`PROXY_CONFIG`*: proxy backend calls during development with connect-modrewrite. [See reference](https://www.npmjs.com/package/connect-modrewrite)\n\t- *`PORT`*: run app on a specific port (default: 8181)\n- *`STYLES`*: load order for styles\n\n### Add Bower Component\nYou need three pieces of information for each Bower component to include in your app.\n\n1. The Bower component name (e.g. *restangular*)\n2. The version of the component (e.g. *1.4.0*)\n3. The files within the component to include in your app (e.g. *restangular.min.js*)\n\nThe following will include the **restangular** component, version **1.4.0**, and place the `dist/restangular.min.js` file in the `vendor/scripts` directory.  By default, all Bower components will be placed in the `vendor` directory.\n```coffee\nBOWER_COMPONENTS =\n\t'restangular': '1.4.0':\n\t\tscripts: 'dist/restangular.min.js'\n```\n\nIf load order is important, include a reference to the file in the **SCRIPTS** section.\n\nThe following will ensure **restangular** is loaded prior to `app.js`.\n```coffee\nSCRIPTS =\n\t'**/angular.min.js'\n\t'**/restangular.min.js'\n\t'**/app.js'\n\t'**/*.js'\n```\n\nFor AngularJS components, include a reference to the module within your application.  For example:\n```coffee\nangular.module('app', ['restangular']);\n```\n\n## Contributing\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n\n## Changelog\nSee [CHANGELOG.md](CHANGELOG.md)\n\n\n## License\nSee [LICENSE](LICENSE)\n\n\n[build-image]:            http://img.shields.io/travis/DedicatedWebStar/fatarrow.svg?style=flat\n[build-url]:              http://travis-ci.org/DedicatedWebStar/fatarrow\n\n[dependencies-image]:     http://img.shields.io/gemnasium/DedicatedWebStar/fatarrow.svg?style=flat\n[dependencies-url]:       https://gemnasium.com/DedicatedWebStar/fatarrow\n\n[license-image]:          http://img.shields.io/badge/license-MIT-blue.svg?style=flat\n[license-url]:            LICENSE\n\n[version-image]:          http://img.shields.io/github/tag/DedicatedWebStar/fatarrow.svg?style=flat\n[version-url]:            https://github.com/DedicatedWebStar/fatarrow/tags\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-dev-james%2Fcarylandholt-fatarrow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freact-dev-james%2Fcarylandholt-fatarrow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freact-dev-james%2Fcarylandholt-fatarrow/lists"}