MEAN.js and MEAN.io Differences between

Posted by jimmy2gurpreet on Mon, 15 Jun 2020 07:54:59 +0200

This article is translated from: Difference between MEAN.js and MEAN.io

I wanted to use the MEAN JavaScript Stack, but I noticed that there are two different stacks with either their own website and installation methods: mean.js and mean.io . I would like to use the mean JavaScript stack, but I noticed that there are two different stacks with their own websites and installation methods: mean.js and mean.io. So I came up asking myself this question: "Which one do I use?". So I want to ask myself this question: "which one do I use?".

So in order to answer this question I ask the community if you could explain what are the differences between these two? And if possible pros and cons? Because they look very similar to me.

#1st floor

reference resources: https://stackoom.com/question/1ZLDk/MEAN-js The difference between mean IO and mean IO

#2nd floor

They are basically the same... They both use swig for templating, they both use karma and mocha for tests, passport integration, nodemon, etc.

Why so similar? Mean.js is a fork of Mean.io and both initiatives were started by the same guy ... Mean.io is now under the umbrella of the company Linnovate and looks like the guy (Amos Haviv) stopped his collaboration with this company and started Mean.js . Mean.js yes Mean.io One branch of the The same person The beginning Mean.io Now under the umbrella of Linnovate, it looks like Amos Haviv stopped working with the company and started Mean.js. You can read more about the reasons here . you can here Learn more about why.

Now... main (or little) differences you can see right now are:


Scaffolding and boiler generation

Mean.io uses a custom cli tool named 'mean' Mean.io Use the custom cli tool named 'mean'
Mean.js uses Yeoman Generators Mean.js Using yeoman generators


MODULARITY modularity

Mean.io uses a more self-contained node packages modularity with client and server files inside the modules. Mean.io The more self-contained node package modularization is used, and the client and server files are included in the module.
Mean.js uses modules just in the front-end (for angular), and connects them with Express. Mean.js Use modules only at the front end (for angles) and connect them using express. Although they were working on vertical modules as well


BUILD SYSTEM

Mean.io has recently moved to gulp Mean.io It's started recently
Mean.js uses grunt Mean.js Using grunt


DEPLOYMENT

Both have Dockerfiles in their respective repos, and Mean.io has one-click install on Google Compute Engine , while Mean.js can also be deployed with one-click install on Digital Ocean . both have their own Dockerfiles in the Repos Mean.io You can Google Compute Engine Previous key installation, and Mean.js it's fine too One click installation on Digital Ocean .


DOCUMENTATION

Mean.io has ok docs Mean.io Good documentation
Mean.js has AWESOME docs Mean.js Great documentation


COMMUNITY

Mean.io has a bigger community since it was the original boilerplate Mean.io Have a bigger community because it's the original model
Mean.js has less momentum but steady growth Mean.js Small momentum but stable growth


On a personal level, I like more the philosophy and openness of MeanJS and more the movement and modules / packages approach of MeanIO. Both are nice, and you'll end probably modifying them, so you can't really go wrong picking one or the other. Just take them as starting point and as a learning exercise.


ALTERNATIVE "MEAN" SOLUTIONS

MEAN is a generic way (coined by Valeri Karpov )To describe a boilerplate / framework that takes "Mongo + Express + angular + node" as the base of the stack Valeri Karpov Create) to describe the template / framework based on "Mongo + Express + Angular + Node". You can find frameworks with this stack that use other condensation, some of them really good for RAD (rapid application development) and building spas. Eg: for example:

You also have Hackathon Starter You have Hackathon Starter . It doesn't have A of MEN (it is' MEN '), but it rocks

Have fun!

#3rd floor

First of all, MEAN is an acronym for M ongoDB, E xpress, A ngular and N ode.js Firstly, mean is m ongodb, e express, a ngular and N ode.js The acronym for.

It generally identifies the combined used of these technologies in a "stack". There is no such a thing as "the mean framework".

Lior Kesos at Linnovate took advantage of this confusion. Kesos, Lille stay Linnovate The advantage of this confusion. He bought the domain MEAN.io and put some code at https://github.com/linnovate/mean He bought it MEAN.io Domain name and https://github.com/linnovate/mean Added on Some codes

They lucky received a lot of public, and there are more and more articles and video about men. When you Google "MEAN framework", mean.io Is the first in the list, mean.io Is the first in the list.

Unfortunately the code at https://github.com/linnovate/mean Unfortunately, https: // github.com/linnovate/mean upper The code of seems to be poorly designed.

In February I fell in the trap myself. The site mean.io Had a catch design and the Github repo had 1000 + stars mean.io There's an attractive design, Github buyback has more than 1000 stars. The idea of questioning the quality did not even pass through my mind. I started experimenting with it but it did not take too long to stumble upon things that were not working, and puzzle pieces of code.

The commit history was also pretty worrying. They re engineered the code and directory structure multiple times, and merging the new changes is too time consuming.

The nice things about both mean.io and mean.js Code is that they come with Bootstrap integration mean.io and mean.js The advantage of the code is that they have Bootstrap integration. They also come with Facebook, Github, Linkedin etc authentication through PassportJs and an example of a model (Article) on the backend on MongoDB that sync with the frontend model with AngularJS PassportJs Conduct Facebook, Github, Linkedin and other authentication, as well as MongoDB back-end model (article) examples. The model is synchronized with the front-end model of AngularJS.

Accordingto innovate's website:

Linnovate is the leading Open Source company in Israel, with the most experienced team in the country, dedicated to the creation of high-end open source solutions. Linnovate is the only company in Israel which gives an AZ services for enterprises for building and maintaining their next Web project.

From the website it looks like that their core skill set is Drupal (a PHP content management system) and only lately they started using Node.js From the website, their core skill set is Drupal (PHP content management system), which has only recently been used Node.js And AngularJS.

Lately I was reading the Mean.js Blog Recently I am reading Mean.js Blog , things become clearer. My understanding is that the main Javascript developer (Amos Haviv) left Linnovate to work on Mean.js leaving MEAN.io project with people that are novice Node.js Developers that are slowing understanding how things are supposed to work Haviv) left linnovate at Mean.js Go to work, leave MEAN.io Project people are new Node.js Of developers who are slowing down their understanding of how things should work.

In the future things may change but for now I would avoid to use mean.io In the future, things may change, but now I will avoid using mean.io . If you are looking for a boilerplate for a quickstart Mean.js seems a better option than mean.io . if you are looking for a template for getting started Mean.js It seems that mean.io Better.

#4th floor

Here is a side-by-side comparison of several application starters/generators and other technologies including MEAN.js , MEAN.io Here are a few application initiators / generators and other technologies (including MEAN.js , MEAN.io And cleverstack). I keep adding alternatives as I find time and as that happens, the list of potentially provided benefits keeps growing too. Today it's up to around 1600. If anyone wants to help improve its accuracy or completion, click the next link and do a questionnaire about something you know. If someone wants to help improve their accuracy or completeness, click the next link and conduct a questionnaire on what you know.

Compare app technologies project Comparative application technology project

From this database, the system generates reports like the following:

MeanJS vs MeanIO trade-off report Balance report of MeanJS and MeanIO

#5th floor

I'm surprised nobody has mentioned the Yeoman generator angular-fullstack . I'm surprised that no one mentioned the Yeoman generator Angle - full stack . It is the number one Yeoman community generator, with currently 1490 stars on the generator page Vs Mean.js '81 stars (admitted not a fair comparison given how new meanjs is) Generator page There are 1490 stars and Mean.js 81 stars (given how fair the new MEANJS is). It is appears to be actively maintained and is in version 2.05 as I write this. Unlike MEANJS, it doesn't use swing for templating. It can be scaffold with passport built in.

#6th floor

The Starter Trade-offs sheet Of my comparison spreadsheets has comparative one on one comparisons between each generator Starter trade offers The table gives a comprehensive one-to-one comparison between each generator. So no more need to distortedly cherry pick great things to say about your favorite.

Here is the one between generator-angular-fullstack and MEAN.js . this is generator angular fullstack and MEAN.js The one between. The percentages are values for each benefit based on my personal weights, where a perfect generator would be 100%

generator- angular- fullstack offers 8% that MEANJS.org Doesn't generator - angular - fullstack provides 8%, MEANJS.org No,

  • 1.9% client side end to end tests 1.9% client end to end tests
  • 0.6% factory 0.6%
  • 0.5% provider 0.5% provider
  • 0.4% SASS 0.4%SASS
  • 0.4% less
  • 0.4% Compass 0.4% compass
  • 0.4% decorator 0.4%
  • 0.4% endpoint sub generator 0.4% endpoint sub generator
  • 0.4% Comments 0.4% comments
  • 0.3% FontAwesome 0.3%FontAwesome
  • 0.3% Run server in debug mode 0.3% run server in debug mode
  • 0.3% Save generator answers to a file 0.3% save generator answers to a file
  • 0.2% constant 0.2% constant
  • 0.2% development build script:... Replace third party DEPs with CDN versions 0.2% development build script:... Replace third party representatives with CDN versions
  • 0.2% Authentication - Cookie 0.2% authentication - Cookie
  • 0.2% Authentication - JSON Web Token (JWT) 0.2% authentication - JSON Web token (JWT)
  • 0.2% server side logging 0.2% server side logging
  • 0.1% development build script: run tasks in parallel to speed it up
  • 0.1% development build script: Rename asset files to prevent browser caching 0.1% development build script: Rename asset files to prevent browser caching
  • 0.1% Development build script: run end to end tests 0.1% development build script: run end to end tests
  • 0.1% production build script: safe pre minification 0.1% production build script: safe pre minification
  • 0.1% Production build script: add CSS vendor prefixes 0.1% production build script: add CSS vendor prefix
  • 0.1% Heroku deployment automation 0.1% Heroku deployment automation
  • 0.1% value 0.1% value
  • 0.1% jade
  • 0.1% Coffeescript 0.1%Coffeescript
  • 0.1% Serverside authenticated route restriction 0.1% Serverside authenticated route restriction
  • 0.1% SASS version of Twitter Bootstrap 0.1% SASS version of Twitter Bootstrap
  • 0.1% Production build script: compress images 0.1% production build script: compress image
  • 0.1% OpenShift deployment automation 0.1% OpenShift deployment automation

MeanJS.org. MeanJS.org . Offers 9% that generator angular fullstack doesn't

  • 3.7% dedicated / searchable user group: response time most under a day
  • 0.4% Generate routes 0.4% generate routes
  • 0.4% Authentication - Oauth 0.4% authentication - Oauth
  • 0.4% config 0.4% configuration
  • 0.4% i18n, localization 0.4% i18n, localization
  • 0.4% Input application profile 0.4% input application data
  • 0.3% FEATURE (aka module, entity, crud mock) 0.3% FEATURE (aka module, entity, crud mock)
  • 0.3% Menus system 0.3% menu system
  • 0.3% Options for making subcomponents 0.3% options for making subcomponents
  • 0.3% test - client side 0.3% test - client
  • 0.3% Javascript performance thing 0.3% Javascript performance thing
  • 0.3% Production build script: make static pages for SEO 0.3% production build script: make static pages for SEO
  • 0.2% Quick install? 0.2% quick install?
  • 0.2% Dedicated/searchable user group 0.2% dedicated / searchable user group
  • 0.1% Development build script: reload build file upon change 0.1% development build script: reload build file upon change
  • 0.1% Development build script: coffee files compiled to JS 0.1% development build script: coffee files compiled to JS
  • 0.1% controller - server side 0.1% controller - server side
  • 0.1% model - server side 0.1% model - server side
  • 0.1% route - server side 0.1% route - server side
  • 0.1% test - server side 0.1% test - server side
  • 0.1% Swig 0.1%Swig
  • 0.1% Safe from IP Spoofing IP spoofing 0.1% safe
  • 0.1% production build script: ugqualification 0.1% production build script: ugqualification
  • 0.0% approach to Views: URLs start with "×!" 0.0% view method: URL with "×!" start
  • 0.0% Approach to frontend services and ajax calls: uses $resource 0.0% front end services and ajax calls: use $resource

Here is the one between MEAN.io and MEAN.js In a more readable format MEAN.io and MEAN.js A more readable format between

 <table border="1" cellpadding="10"><tbody><tr><td valign="top" width="33%"><br><br><h1>MeanJS.org. provides these benefits that MEAN.io. doesn't</h1><br><br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using github issues<br>&nbsp;&nbsp;&nbsp;&nbsp;* There's a book about it<br><b>File Organization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Basic sourcecode organization, module(-&gt;submodule)-&gt;side<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold directives<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, Only one module definition per file<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, Don't alter a module other than where it is defined<br><b>Model</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Object-relational mapping<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side validation, server-side example<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client side validation, using Angular 1.3<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS views, Directives start with "data-"<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, Use ng-init<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, URLs start with '#!'<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, Use query parameters to store route state<br><b>Support for things</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, LESS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, SASS<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Don't use "new"<br><b>Testing</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Mocha<br>&nbsp;&nbsp;&nbsp;&nbsp;* End-to-end tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* End-to-end tests, using Protractor<br>&nbsp;&nbsp;&nbsp;&nbsp;* Continuous integration (CI), using Travis<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI), using Yeoman<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build configurations file(s)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Azure<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Digital Ocean, screencast of it<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Heroku, screencast of it<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Input application profile<br>&nbsp;&nbsp;&nbsp;&nbsp;* Quick install?<br>&nbsp;&nbsp;&nbsp;&nbsp;* Options for making subcomponents<br>&nbsp;&nbsp;&nbsp;&nbsp;* config generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* controller (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* directive generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* filter generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* route (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* service (client side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* test - client side<br>&nbsp;&nbsp;&nbsp;&nbsp;* view or view partial generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* controller (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* model (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* route (server side) generator<br>&nbsp;&nbsp;&nbsp;&nbsp;* test (server side) generator<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, Forgotten Password with Resetting<br>&nbsp;&nbsp;&nbsp;&nbsp;* Chat<br>&nbsp;&nbsp;&nbsp;&nbsp;* CSV processing<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system, using Nodemailer<br>&nbsp;&nbsp;&nbsp;&nbsp;* E-mail sending system, using its own e-mail implementation<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system, state-based<br>&nbsp;&nbsp;&nbsp;&nbsp;* Paypal integration<br>&nbsp;&nbsp;&nbsp;&nbsp;* Responsive design<br>&nbsp;&nbsp;&nbsp;&nbsp;* Social connections management page<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Creates a favicon<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Safe from IP Spoofing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authorization, Access Contol List (ACL)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Cookie<br>&nbsp;&nbsp;&nbsp;&nbsp;* Websocket and RESTful http share security policies<br><br><br></td><td valign="top" width="33%"><br><br><h1>MEAN.io. provides these benefits that MeanJS.org. doesn't</h1><br><br><b>Quality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Sponsoring company<br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Docs with flatdoc<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Share code between projects<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module manager<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, Use state.resolve()<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, Use AMD with Require.js<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, using wiredep<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to error handling, Server-side logging<br><b>Client/Server Communication</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Centralized event handling<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using $http and $q<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Wrap code in an IIFE (SEAF, SIAF)<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* API introspection report and testing interface, using Swagger<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI), using Independent command line interface<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, add IIFEs (SEAF, SIAF) to executable copies of code<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation<br>&nbsp;&nbsp;&nbsp;&nbsp;* Deployment automation, using Heroku<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Scaffolding undo&nbsp;&nbsp;&nbsp;&nbsp;(mean package -d &lt;name&gt;)<br>&nbsp;&nbsp;&nbsp;&nbsp;* FEATURE (aka module, entity) generator, Menu items added for new features<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Admin page for users and roles<br>&nbsp;&nbsp;&nbsp;&nbsp;* Content Management System&nbsp;&nbsp;&nbsp;&nbsp;(Use special data-bound directives in your templates.<br>Switch to edit mode and you can edit the values right where you see them)<br>&nbsp;&nbsp;&nbsp;&nbsp;* File Upload<br>&nbsp;&nbsp;&nbsp;&nbsp;* i18n, localization<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system, submenus<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search, actually works with backend API<br>&nbsp;&nbsp;&nbsp;&nbsp;* Search, using Elastic Search<br>&nbsp;&nbsp;&nbsp;&nbsp;* Styles, using Bootstrap, using UI Bootstrap AngularJS directives<br>&nbsp;&nbsp;&nbsp;&nbsp;* Text (WYSIWYG) Editor<br>&nbsp;&nbsp;&nbsp;&nbsp;* Text (WYSIWYG) Editor, using medium-editor<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Instrumentation, server-side<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serverside authenticated route restriction<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, using Oauth, Link multiple Oauth strategies to one account<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, JSON Web Token (JWT)<br><br><br></td><td valign="top" width="33%"><br><br><h1>MEAN.io. and MeanJS.org. both provide these benefits</h1><br><br><b>Quality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Version Control, using git<br><b>Platforms</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client-side JS Framework, using AngularJS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Frontend Server/ Framework, using Node.JS<br>&nbsp;&nbsp;&nbsp;&nbsp;* Frontend Server/ Framework, using Node.JS, using Express<br>&nbsp;&nbsp;&nbsp;&nbsp;* API Server/ Framework, using NodeJS<br>&nbsp;&nbsp;&nbsp;&nbsp;* API Server/ Framework, using NodeJS, using Express<br><b>Help</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using Google Groups<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, using Facebook<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated/searchable user group for questions, response time mostly under a day<br>&nbsp;&nbsp;&nbsp;&nbsp;* Example application<br>&nbsp;&nbsp;&nbsp;&nbsp;* Tutorial screencast in English<br>&nbsp;&nbsp;&nbsp;&nbsp;* Tutorial screencast in English, using Youtube<br>&nbsp;&nbsp;&nbsp;&nbsp;* Dedicated chatroom<br><b>File Organization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Basic sourcecode organization, module(-&gt;submodule)-&gt;side, with type subfolders<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold controllers<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold services<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold templates<br>&nbsp;&nbsp;&nbsp;&nbsp;* Module directories hold unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Separate route configuration files for each module<br><b>Code Modularization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Modularized Functionality<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, No global 'app' module variable<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to AngularJS modules, No global 'app' module variable without an IIFE<br><b>Model</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage, using NoSQL db<br>&nbsp;&nbsp;&nbsp;&nbsp;* Setup of persistent storage, using NoSQL db, using MongoDB<br><b>View</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* No XHR calls in controllers<br>&nbsp;&nbsp;&nbsp;&nbsp;* Templates, using Angular directives<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to data readiness, prevents Flash of Unstyled/compiled Content (FOUC)<br><b>Control</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, example of it<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, State-based routing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, State-based routing, using ui-router<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend routing or state changing, HTML5 Mode<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to frontend code loading, using angular.bootstrap()<br><b>Client/Server Communication</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serve status codes only as responses<br>&nbsp;&nbsp;&nbsp;&nbsp;* Accept nested, JSON parameters<br>&nbsp;&nbsp;&nbsp;&nbsp;* Add timer header to requests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Support for signed and encrypted cookies<br>&nbsp;&nbsp;&nbsp;&nbsp;* Serve URLs based on the route definitions<br>&nbsp;&nbsp;&nbsp;&nbsp;* Can serve headers only<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using JSON<br>&nbsp;&nbsp;&nbsp;&nbsp;* Approach to XHR calls, using $resource (angular-resource)<br><b>Support for things</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, JavaScript (server side)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Languages, Swig<br><b>Syntax, language and coding</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript 5 best practices, Use 'use strict'<br><b>Tool Configuration/customization</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Separate runtime configuration profiles<br><b>Testing</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Jasmine<br>&nbsp;&nbsp;&nbsp;&nbsp;* Testing, using Karma<br>&nbsp;&nbsp;&nbsp;&nbsp;* Client-side unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Continuous integration (CI)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Automated device testing, using Live Reload<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side integration &amp; unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Server-side integration &amp; unit tests, using Mocha<br><b>Development and debugging</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Command line interface (CLI)<br><b>Build</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build-time Dependency Management, using npm<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build-time Dependency Management, using bower<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build tool / Task runner, using Grunt<br>&nbsp;&nbsp;&nbsp;&nbsp;* Build tool / Task runner, using gulp<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, script<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, reload build script file upon change<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, copy assets to build or dist or target folder<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories, injects js references<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, html page processing, inject references by searching directories, injects css references<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, LESS/SASS/etc files are linted, compiled<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, JavaScript style checking<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, JavaScript style checking, using jshint or jslint<br>&nbsp;&nbsp;&nbsp;&nbsp;* Development build, run unit tests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, script<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, concatenation (aggregation, globbing, bundling)&nbsp;&nbsp;&nbsp;&nbsp;(If you add debug:true to your config/env/development.js the will not be <br>uglified)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, minification<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, safe pre-minification, using ng-annotate<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, uglification<br>&nbsp;&nbsp;&nbsp;&nbsp;* Production build, make static pages for SEO<br><b>Code Generation</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* FEATURE (aka module, entity) generator&nbsp;&nbsp;&nbsp;&nbsp;(README.md<br>feature css<br>routes<br>controller<br>view<br>additional menu item)<br><b>Implemented Functionality</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* 404 Page<br>&nbsp;&nbsp;&nbsp;&nbsp;* 500 Page<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, register/login/logout<br>&nbsp;&nbsp;&nbsp;&nbsp;* Account Management, is password manager friendly<br>&nbsp;&nbsp;&nbsp;&nbsp;* Front-end CRUD<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD, with Read<br>&nbsp;&nbsp;&nbsp;&nbsp;* Full-stack CRUD, with Create, Update and Delete<br>&nbsp;&nbsp;&nbsp;&nbsp;* Google Analytics<br>&nbsp;&nbsp;&nbsp;&nbsp;* Menus system<br>&nbsp;&nbsp;&nbsp;&nbsp;* Realtime data sync<br>&nbsp;&nbsp;&nbsp;&nbsp;* Realtime data sync, using socket.io<br>&nbsp;&nbsp;&nbsp;&nbsp;* Styles, using Bootstrap<br><b>Performance</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* Javascript performance thing<br>&nbsp;&nbsp;&nbsp;&nbsp;* Javascript performance thing, using lodash<br>&nbsp;&nbsp;&nbsp;&nbsp;* One event-loop thread handles all requests<br>&nbsp;&nbsp;&nbsp;&nbsp;* Configurable response caching&nbsp;&nbsp;&nbsp;&nbsp;(Express plugin<br><b>https</b>://www.npmjs.org/package/apicache)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Clustered HTTP sessions<br><b>Security</b>:<br>&nbsp;&nbsp;&nbsp;&nbsp;* JavaScript obfuscation<br>&nbsp;&nbsp;&nbsp;&nbsp;* https<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, using Oauth<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Basic&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Digest&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br>&nbsp;&nbsp;&nbsp;&nbsp;* Authentication, Token&nbsp;&nbsp;&nbsp;&nbsp;(With Passport or others)<br></td></tr></tbody></table> 

Topics: angular Javascript AngularJS github