The main idea for this repository is shamelessly stolen from http://mean.io. It says:
MEAN is a boilerplate that provides a nice starting point for [MySQL], Express, Node.js, and AngularJS based applications. It is designed to give you quick and organized way to start developing of MEAN based web apps with useful modules like sequelize and passport pre-bundled and configured. We mainly try to take care of the connection points between existing popular frameworks and solve common integration problems.
The MongoDB ORM, Mongoose, has been replaced with Sequelize. Switching from mongoose to sequelize allows developers easy access to MySQL, MariaDB, SQLite or PostgreSQL databases by mapping database entries to objects and vice versa.
Addy Osmani's Blog explains SQL databases, being strongly typed in nature are great at enforcing a level of consistency, ensuring many kinds of bad data simply don’t get recorded. By using SQL databases MEAN Stack Relational favors reliability over the performance gains of NoSQL databases.
Deploy to your Heroku account for a demo:
Note: Deploy from main repository view to avoid missing app.json error.
Alright now the fun begins. First clone or download the repo to your computer.
git clone email@example.com:jpotts18/mean-stack-relational.git.
npm install. This will copy development.json5, and production.json5 from respective sample files in the config/env folder and run the grunt copy task to copy frontend lib files to their destination.
pm2 start pm2-ecosystem.json --env production(Run
sudo npm install -g pm2if it's not installed.), or
NPM - Node.js package manager, should be installed when you install node.js. NPM (Node Package Manager) will look at the package.json file in the root of the project and download all of the necessary dependencies and put them in a folder called
Bower - Web package manager, installing Bower is simple when you have npm:
npm install -g bower
Grunt - In one word: automation. The less work you have to do when performing repetitive tasks like minification, compilation, unit testing, linting, etc, the easier your job becomes. After you've configured it, a Grunt can do most of that mundane work for you—and your team—with basically zero effort.
It watches your filesystem and when it detects a change it will livereload your changes.
It runs nodemon which watches changes in specific folders and recompiles the app when necessary. No running
node app.js every 2 minutes.
It can also run tests like mocha and karma for you.
Bower - Bower is a package manager for the web. It offers a generic, unopinionated solution to the problem of front-end package management, while exposing the package dependency model via an API that can be consumed by a more opinionated build stack. There are no system wide dependencies, no dependencies are shared between different apps, and the dependency tree is flat.
Following is a list of items detailing future direction for MEAN Stack Relational:
During install some of you may encounter some issues feel free to contact me (jpotts18) or the co-contributor (chaudhryjunaid), via the repository issue tracker or the links provided below. I am also available on twitter at @jpotts18 and Junaid at @chjunaidanwar.