Kitchenapp is a MEAN (Mongodb [with Mongoose ODM], Expressjs, Angular and Node) stack demo created using the bangular yeoman template.
-
In your console, run
git clone git@github.com:jmsherry/kitchenapp.git -
Run
npm install -
Use
gulpto run in development andgulp previewto run the optimised project. (NB: You will need mongodb running locally if you are running this project locally. If you get the error: ECONNREFUSED, it's likely that you've omitted to start mongo. So, Install it, then open a shell window and typemongodinto the command line. Open a second tab to run the project as above...) -
[optional]
gulp testwill allow you to run the tests (which are currently locked to a limited set for demo purposes) and you can specify whether to test the client or server-side code by adding the flag--serveror--client.gulp e2ewill perform protractor tests. As you can see from the badges the project uses CI service at Codeship (Travis is hooked up for practice) Coverage (istanbul) is used through gulp and reported via Code Climate. -
[optional] To populate the database with some initial ingredients and recipes type
$ npm install -g node-mongo-seeds && seed(N.B. it will blow away all the data in your current collections).
The app is a demo and will have bugs and breaks as it was worked up from experiments. The bugs you may spot are likely known about - please check the issues log for more detail. (And hey, if you spot something then submit a bug report!)
There are controls to enable you to pick your preferred language and your current locale, in the footer bar (under settings). Changing these should change time/currency, etc. in various parts of the app, but the language will only change in the first content column on the homepage.
Live demo - HERE
The app is viewable live on heroku. (Please be aware the A/B testing is live on the site and that's why it may have a red heading on the first page. You can confirm this by clearing your cookies and storages, and reloading a few times).
Various types of testing have been used on the live app, including:
- Load testing with Loader.io
- Server performance testing with newrelic
- Browser performance testing with newrelic browser
- Geo performance testing with newrelic synthetics
- A/B testing using Optimizely
Apidoc and Sassdoc are employed within the project. To get the current copy of the docs run gulp apidoc sassdoc and open the index.html files in docs/sass and docs/api.
The app in this repository is a demo, as stated above, and it is worth mentioning that the information is fictional and the images are not my own and I hold no rights to them.