- Snippet manager - single page application
- Install Node.js - https://nodejs.org/en/
- In the root of the project run:
npm install- this installs all the project dependencies
- In the root of the project run:
node node_modules/grunt-cli/bin/grunt build- this creates the distribution files that the app requires - In the root of the project run:
node Server.js- this will start a dummy express server that servers the static files and listens to port3000; the app can be accessed openinghttp://localhost:3000/in a web browser
- In the root of the project run:
node node_modules/grunt-cli/bin/grunt watch- this will watch for any change to the files and build the distribution files on the fly
- In the root of the project run:
node node_modules/karma/bin/karma start- this will run the unit tests on PhantomJS
- The project is build using
AngularJSas the MVC framework andAngular Materialas the UI framework - For code quality it uses
jshintandjscs; the rules are based on Airbnb's style guide but with small changes Gruntis used as the build toolKarmais the unit tests runner andJasmineis the testing framework
Server.js- has the code for the dummy express server that servers the static files (any other server can be used)grunt/ - holds all the build tasks in separate filesgrunt/aliases.js- is a good starting point to understand the build pipeline which is separated intocodeQualityandprepareFiles; we only run theprepareFilesin development as thecodeQualitytasks are a bit slowsrc/- this is where the source code residessrc/js- holds general app stuff like: routes, back-end endpoints, configuration, modulessrc/views- holds the 3 views; each containing a controller and a templatetests/- holds the tests for the applicationnode_modules/- gets created after thenpm installcommand is ran and holds all the installed dependenciesdist- gets created after thegrunt buildcommand is ran and holds the distribution files
- Add some visual feedback when data is fetched from the server
- Improve navigation between pages
- Move all CSS to external files and add that to the build pipeline
- Add e2e tests
- Make the app production ready: minify files, reduce the static files requests etc.