Booku is a web application built with the MEAN stack using open source tools. The aim of this project was for me to hone all the web development skills and techinique I've learnt from video training, blogs and other sources and build an entire end-to-end web application from the front-end to the back-end persisting data in an actual database.
The following should be done in the terminal, please note I have setup MongoDB to run as a services/dameon on my Mac when the computer starts up, you may need to run MongoDB manually for your environment:
1. git clone <repository url>
2. npm install
3. bower install
4. execute gulp
MAC OSX Yosemite
Terminal Vim - my highly customised terminal built for web development.
- MEAN stack (MongoDB, ExpressJS, AngularJS, NodeJS). I'll be honest, the first choice was because its FREE as I'm on a budget and cannot afford expensive technologies like MS SQL Server or Oracle database which requires developers to pay for licences. The other reasons was the fact that I wanted to try and learn what this 'NoSQL' business was and MongoDB was the big boy in town. I wasn't familar with RavenDB, CouchDB but have heard of them.
- Gulp as the build and automation tool, I didn't chose Grunt because I like the streaming nature of Gulp as well as its easy to use API/syntax.
- NPM used by node to fetch server side packages.
- Bower used to fetch client side dependencies.
- Karma as the test runner and Jasmine as the testing framework. I chose these two because I liked the Jasmine BDD approach and its syntax. Karma because its a natural fit for AngularJS development as its used by the Angular team internally.
- Git as the source control of choice because it was flexible and easy to use, most importantly its Open Source. My roots were in Open Source because I started with Unix/Linux in school, so you could say its a natural fit.
- HTML/CSS (do I have a choice as a web developer?)
- JavaScript (it's a love/hate relationship, what can I say?)
- Toastr for the notification pop-up.
- UI-Router for the Angular Routing, I did start with the built-in Angular routing but I wanted to try UI-Router to taste the difference as I like to explore and expands my knowledge.
- Jade was used to build the views
- Stylus was used as the CSS Pre-Processor.
I specifically chose these two because of concise and clean syntax that both offer. It was also a great opportunity to truely explore the templating engine and CSS Pre-Processor world as I've never used a CSS Pre-Processor before.