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 [email protected]:jmsherry/kitchenapp.git
-
Run
npm install
-
Use
gulp
to run in development andgulp preview
to 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 typemongod
into the command line. Open a second tab to run the project as above...) -
[optional]
gulp test
will 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--server
or--client
.gulp e2e
will 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.