Simplifying Web Application Development Using-Mean Stack Technologies
Simplifying Web Application Development Using-Mean Stack Technologies
Simplifying Web Application Development Using-Mean Stack Technologies
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/322821888
CITATIONS READS
0 6
3 authors, including:
Some of the authors of this publication are also working on these related projects:
Application of MEAN stack RESTive API and WEBRTC in the design of a real-time Telemedicine service
View project
All content following this page was uploaded by Dantala Oyeyinka Oyerinde on 31 January 2018.
Abstract: Traditional stacks have been the historical programming practice for most web applications developed
around the globe, However, the trend is now changing. The advantages they provide can no longer meet the
increasing need of the users. The focus of this study is to design and implement and email system as part of a
telemedicine application using some emerging JavaScript technologies that include MongoDB, ExpressJS,
Node.JS and Angular.JS. The benefits provided by these individual components are on the rise and can function as
a single stack. This paper is relevant in studying the theoretical taxonomy, internal working principles and
implementation of the M.E.A.N stack components. Bringing these components to work together through one
common language of internal data communication (JSON) to build modern day web application is presented in this
study. The test result shows that the technology provided a platform for easy user interactions and improved
communication. The result of this study has proven the much-needed advantage of speed and flexibility of this
technology when compared to other traditional stack such as LAMP or .NET.
Index Terms: MongoDB, Express.JS, Angular.JS, Node.JS, JSON, MEAN, REST API, mongoose, web development.
I. INTRODUCTION
M.E.A.N, simply referred to as “mean stack” or just “mean”, is a collective name for four pieces of
software as presented by Haviv (2015) and Alfred (2014): MongoDB, ExpressJS, AngularJS, and Node.JS.
Beyond the acronym however, JavaScript is the core of these four components and the back bone of most modern
application development. Mean is a full stack, JavaScript technology that tends to accelerate the building process
of web and mobile applications for modern developers. It is robust and can easily be maintained. It should however
be noted that AngularJS can be replaced with any of the frontend engine of its kind such as EJS or REACT.JS.
JADE is the default template engine for AngularJS in mean. Each component in MEAN stack speaks the language
of JavaScript Object Notation (JSON). Thus, there is no translation needed from the client side, server side and
JSON document Object stored. The benefits of same language across the entire stack is beneficial for time saving,
increase in productivity (Chris, 2015), and less memory usage which is critical in every code execution process. It
is also easy to update data speedily and simultaneously in MEAN because every component understands JSON
including the MongoDB database which understands the binary translation of JSON i.e. BSON. With MongoDB,
you can store and query the BSON without altering the structure and meaning of the information. One outstanding
advantage of using MongoDB in this study is scalability. Fig. 1. describes JSON language across the M.E.A.N
Stack. The Node Environment runs JavaScript to carry out operations and make request to the MongoDB database
server; and the Web server (Node.JS) sends the generated HTML page to the frontend.
AngularJS<--------->JSON<-------->Node.JS/Express.JS<------>BSON<------>MongoDB (NoSQL)
The web is not a monolithic technology but rather a combination of web frameworks, programming
languages, constructs and libraries. The experience of the pass 25 years revealed that the LAMP stack, the .NET
stack and a rich variety of other frameworks and tools were used in developing various kinds of web applications,
However, the main problem with these stacks is that each tier demands a knowledge base that usually exceeds the
abilities of a single developer, this create a drawback such as forcing development teams to continue to expand
more with different expertise. This usually leads to less productivity and exposure to unexpected risks. For
www.ijlret.com 62 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
example the Linux/Windows Apache MySQL and PHP (L/WAMP) stack is a registered stack consisting of either
Linux or Windows Operating System (OS), a Web server (Apache), a database (RDBMS - MySQL), and the
programming language for generating dynamic HTML web pages such as PHP, PERL or Python. However, these
technologies put together as a single platform for web development were not originally designed to work together
(David, 2002).
This study centers on Mean stack as a complete JavaScript technology stack that is built by different teams
forming a substantial community of developers and advocates that supports the continuous development of each
component to higher levels along with corresponding documentation (Onodi, 2016).
The technology consists of a No-SQL database, a web server framework, a web client framework, and a
server platform. The strength of the Mean stack relies on a centralized used of JavaScript as the basic programming
component (Elrom, 2016). MEAN stack is an open source collaboration tools that binds the development of the
three-tier web MVC architecture and utilizes JavaScript as the programming language across the three layers.
Node.JS performs the function of apache but with greater simplicity. Instead of deploying application to a
standalone webserver, Node.JS is included in the application and run with the current version of the web server and
with the help of some run time dependencies. Chris (2015) categorized the application into two parts, the client side
and the server side. The client side consists of the frontend, which receives information from the server side. The
server side model consists of Node.JS to provide the resources to the service requester.
In a nutshell, Node.JS has been continuously developed and improved upon. The server side platform
allows developers to create their own web server as well as build fast, scalable applications with JavaScript as
described by Perrenourd (2015). Node.JS runs on the V8 chrome engine, an open source JavaScript engine
developed by Google Corporation. Node.JS is a hybrid of 40% JavaScript and 60% C++. Node.JS relies on
event-driven architecture and non-blocking I/O model which helps to increase performance and optimizes
throughput and scalability. This is of course in disparity to a thread-based concurrency model. Node.JS can manage
several network connections simultaneously thereby making it the best choice for data intensive applications and
development of real-time applications.
This paper presents a theoretical taxonomy and scenario for considering the implementation of the MEAN
stack technology in the development of the frontend and backend of web applications. It also presents the benefits
that developers have to gain when compared to other stacks such as the LAMP stack. In the study, an emailing
application was built and deployed to the Heroku (PaaS) platform and the application demonstrates the strength of
MEAN stack technology for development of fast, efficient and scalable web application.
I. MongoDB
Submit In 2009 Dwight Merriman and Eliot developed an open source V8-based database called
MongoDB. MongoDB derived its name from humongous scalability. The NoSQL database is more scalable than
other conventional databases and uses JSON-like data model called BSON with dynamic schemas. MongoDB
gained a lot of attraction as a result of providing developers the needed flexibility when dealing with complex data
and at the same time scaling queries much more than the Relational Database Management Systems (RDBMS)
(Rick, 2010). MongoDB cuts down large swaths of transformation logic. It is a leading NoSQL document oriented
database with persistence storage strategy. BSON is used as a medium to transfer data easily from database to
server to client (Ihrig & Bretz, 2015). It also expresses its model within codes. MongoDB is meant for fast and
optimized updating using aggressive caching writes technique and by overwriting updated records where possible
(Dirolf, 2010). However, non-readability is its main drawback.
mongoLab (mlab) was used to expound the management of MongoDB databases on the cloud platform.
This profound improvement has proven greater level of control more than the relational database management
systems (RDBMS) with related impedance mismatch problems. MongoDB is widely used in the cloud
environments with no native libraries or drivers and offers more benefits over traditional databases. MongoDB are
schema-less and works with object representations as oppose to storing those object in several tables with complex
representations or schema, MongoDB like most NoSQL Databases support clustering and scaling application load.
Its REST-enabled interfaces over Hypertext Transfer Protocol (HTTP) supports high-availability of data. The
Mongoose model serves as a connection between MongoDB and NodeJS, this provides the required data structure
and at the same time maintain flexibility in data storage and retrieval. Mongoose can be described as an Object
Data Modeling (ODM) library for MongoDB.
www.ijlret.com 63 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
II. ExpressJS
ExpressJS is a being a lightweight web application framework that helps developers in organizing web
applications in MVC architecture on the server side. It manages everything from routing to handling requests and
views. Express.JS makes it easier to write secure, modular and fast Node.JS applications with higher efficiency,
reliability and less duplications. Express.JS has memory storage for sessions and organizes web applications by
hiding most of the inner workings details of Node.JS. Its features include: modular HTML template engines,
extending the response object to support various data format outputs, routing system, improved project structure,
proper configuration of applications and breaking its logic into different modules. This framework was developed
by T.J Holowaychuk within the JavaScript ecosystem to preserve node.JS and to facilitate building faster Single
Page Applications (SPA).
III. Angular.JS
Angular.JS or just Angular is a frontend framework used in writing single page applications (SPA) with
single page loading. It continued to streamline from several page loading and the use of Ajax call methods.
Two-way data binding between views and models are made possible with Angular. This is useful for developers in
terms of timelines, and placing tasks on a. template is made much easier with HTML (Adam and Colin, 2014).
IV. Node.JS
Node.JS is not a framework, rather, it is a very low level program just like C programming language that
is used in writing client side and server applications that requires speedy and efficient delivery such as real-time
and server applications. Node.JS uses Google Chrome’s super-fast highly optimized V8 execution engine in JIT
(Just in Time) compilation fashion to execute JS code by transforming them into machine language and optimizes
through complicated methods such as code inlining, copy elision etc. Some characteristics of node.JS include:
single thread, exhibiting parallel execution of codes without interference of deadlock, handling concurrent request
up to ten thousand connections and more, Node.js exhibits non-blocking to optimizes throughputs and has a main
loop that listens to events, which then triggers a callback function (Kenneth, 2015). Its code algorithm is considered
crucial to prevent users from wasting valuable time by allowing users do other task while waiting for longer tasks to
complete execution. NodeJS maintain a great community and rapid growing history. It has rich libraries contained
in its Node Package Manager (NPM) for sharing and publishing of open-source resources by the community (Fhala
& Chrispinus, 2017). The diagram (Fig. 2) highlights two important capabilities of the development component.
Node.JS is single threaded, asynchronous and uses event-driven architecture to run the server. This attribute is one
of the main reasons that make Node.JS perform extremely fast, accurate and efficient in resource usage. Other
well-known web servers such as Apache, Ngnix and IIS, uses the blocking I/O model. This model handle requests
and uses multi threads to avoid concurrency issues. Therefore when a new connection is established, it will be
served with a separate thread associated with an amount of RAM. Blocking I/O increases complexity and overhead
for the server as it causes threads to wait for I/O while the server processes and retrieves the data.
Leveraging on the power of JavaScript, Node uses a single execution thread and asynchronous I/O to
handle all the requests. Because of asynchronous or non-blocking I/O architecture, there is no delay for I/O or
related context switching processes. Instead of giving each connection its own thread, Node ties all the connections
to the same thread and maintains an event loop. The loop looks for new events and then delegates them to certain
handler functions, While
NodeJS continues running other processes and invokes these handler functions to complete the execution of these
other events.
www.ijlret.com 64 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
During this study, an application was developed and in it, Express.JS was used to receive request via
socket.IO when connected through socket.IO. This means the users will open their browser where the app is located
such as
http://localhost:3000, then it will send and load the index.jade. In this file, a JavaScript code connects to the server,
using HTTP and listen through socket.IO or WebSockets in general. The client carries out 2 types of connections:
a connection to the HTTP server to load the default User Interface (UI) page and a real time connection to open a
tunnel where the socket.IO communicates bilaterally to the application. The httpServer module in the application
loads the http server API. Once loaded, an http server is created to listens to port 3000. The function of
http.createServer(request, response) is to emit an event and the event is trigged whenever there is a request. Since,
node.JS is asynchronous, this means that it cannot return the result of the request unless a function is provided when
the request arrives. In this case the response is a JADE file embedded within app.js with its content. Observe that an
httpServer module is created by simply adding the code. exports.Function = function. This will allow the user to
access the module in Node.JS and keeps the code clean.
www.ijlret.com 66 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
communication between Express.JS routing API and the application. All input and output are transmitted in the
JSON data format in all phases. Node.JS & Express.JS are part of the backend; they contain all the logic for
different models and controllers for the emailing system. MongoDB uses the object relation mapper (ORM) to
collect or interchange whatever data are needed from the data store.
www.ijlret.com 67 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
XI. MongoDB, ExpressJS, AngularJS, NodeJS (MEAN Stack) Implementation.
The installation of Node.JS and Express.JS was particularly important and set the foundation for the
application. After setting up the development environment, the following commands were used on Ubuntu version
16.04 command line interface (CLI) for the task of installing Express.JS
npm update -g express
npm update -g express-generator
express hrtc
cd hrtc
npm install
The commands exemplify the task of installing and updating express.JS and its scaffolding generator in a
global manner. This command is instrumental in creating the project directories including basic dependencies as
shown in Fig. 6.
The files and directories to the left of the diagram (Fig.6) are contained within a main directory, “hrtc”.
This directory contains other sub-directories which include the model, views, routes, public, sockets, test,
node_modules, app.js file, package.json file, cluster.js file, dump file and npm-debug.log files. The server-side
consists of Node.JS, MongoDB and Express.JS. The initial creation of the server configures the application
models, application routing and socket events relating to the application. The implementation of these significant
components is described next.
XIII. 2) Package.json
This file is used to store and remember the application’s internal dependencies and their respective
versions. The implementation of package.json was achieved by executing the command “npm install –d”. This
command installs all the dependencies listed in the Node Package Manager (NPM) as follows
{
"name": "my app",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"test": "mocha ./tests/index.js"
},
www.ijlret.com 68 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
"dependencies": {
"async": "^0.9.0",
"bcrypt": "^0.8.1",
"body-parser": "~1.12.0",
"colors": "^1.0.3",
"connect-redis": "^2.2.0",
"cookie-parser": "~1.3.4",
"csurf": "^1.7.0",
"debug": "~2.1.1",
"mongoose": "3.8.24",
"mongoose-paginate": "^3.1.3",
"morgan": "~1.5.1",
"multer": "^0.1.8",
"nodemailer": "^1.3.2",
"postmark": "^1.0.0",
"redis": "^0.12.1",
},
"devDependencies": {
"expect.js": "^0.3.1",
"superagent": "^0.21.0"
}
}
Routes handling
All generated routes are found in the “route” directory. The file routes/index.js contains the logic for a
request against the main homepage. The routes/index.js file loads the user models. The express.Router() function is
used to define groups of routes using app.use function. express.Router () function is a route used in processing
requests. This validates parameters using .param() and use app.route() to access the routes and define multiple
requests on a route.
www.ijlret.com 69 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
XIV. Implementation of public and model directories
The public directory holds static files. It contains Cascading Style Sheets (CSS), img files and libs files.
These files correspond to CSS styling, images files and JavaScript libraries files such as jQuery. The name also
alludes to anything that the client uses which the server makes publicly available.
The code snippet describes the implementation of Mongoose connection and the use of ObjectId in
model/Appointment.js file. MongoDB has a flexible schema that allows for variability between different
documents in the same collection. That flexibility can be very powerful as databases grows over time. This is
referred to as scalability. But that flexibility does not mean that safety checks should be ignored. A user is modeled
by specifying the properties in a schema as shown below;
var uSchema = new mongoose.Schema ({name: {firstname: String, lastname: { type: String, trim: true }
},stud_age: { type: Number, min: 0 });
www.ijlret.com 70 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
Unlike Java, PHP and other programming languages, Node.JS runs asynchronously and non-blocking
rather than running on multiple threads. In Fig. 7, Request are handled in an asynchronous threaded fashion after
the requests are delegated from the event loop unlike the server handling the requests on multi-threaded servers.
With this concept, high performance is expected. The major problem of the general architecture of web
applications is the maximum number of concurrent I/O connections that the server can handle and be stable.
Node.js solves this problem by changing how a connection is made to the server. Node.JS solves the problem by
creating a process that does not need another memory block to complement it instead of starting a new thread for
each connection. It does not block outgoing calls directly to I/O. Node.JS servers can comfortably support tens of
thousands of simultaneous connections because it does not allocate one thread - one connection model, but uses a
model process per connection, creating only the memory that is required for each connection.
XVII.Express.JS implementation
One of the basic components of MEAN stack is the ExpressJS framework. The functions offered by this
framework are minimal but enormous and key in the central design of web application. ExpressJS performs both
routing and middleware functions. ExpressJS has over 20 commonly used middleware, such as a logger, session
support, cookie Parser among others. One major implementation of app.use() in this application is to plug-in to
ExpressJS middleware by passing it as argument to the function. It will be responsible for Routing based on URL
paths, managing sessions via cookies, Parsing incoming requests (example from JSON) to routes the request to a
handler, otherwise known as the JavaScript callback function coded inline or in a separate module,
(Madhanasekaran, 2015).
www.ijlret.com 71 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
One implementation of middleware shows that every HTTP request goes through a stack of middleware loaded
through app.use() before a response is returned through one of the route handler. Before sending a request to the
route that is being requested, it checks to see if the user has gone through the necessary checks to match the HTTP
request for Cross-Origin Resource Sharing (CORS), Cross-Site Request Forgery (CSRF) or authentication
middleware and any user defined middleware before sending them to HTTP responds that matches the route being
requested by the user.
All the functions invoked by Express.JS routing layer before final request handler is made is described as
a middleware. For example, in the code snippet above, the Serve favicon is a middleware for serving a favicon
(icon before the URL). It takes care of cache control on the public/directory, this is an advantage over a normal
favicon icon. Morgan is useful for logging requests and responses; Cookie-parser is a middleware for Express.JS
that supports handling cookies. The request object will have a cookie object that can access the application.
Body-parser is an Express.JS middleware that adds a body object to the request so that all POST parameter can be
accessed. The bodyParser.json() gives the application the ability to parse JSON. This is important for JSON
transfers, bodyParser.urlencoded({ extended: false }) allows the application to read data from URIs GET requests.
It works with the query string module. The cookieParser() predominantly add the cookie object to every requests.
The express.static(path.join(__dirname, 'public') tells the application to use the /public directory where images are
stored and style sheets and scripts are used.
Express.JS has an environment-driven configuration, consisting of five functions which are driven by the
NODE_ENV - environment variable; 1) app.configure(), 2) app.set(), 3) app.get(), 4) app.enable(), 5)
app.disable() to define certain application-level settings that will enable the customization of the web application
behavior such as enabling or disabling features.
www.ijlret.com 72 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
XX. Application Setup
This study makes use of Linux open source Operating System because it is widely used for development
and production. The required tests were run on Ubuntu 16.04 Linux Machine. The MEAN stack application
(email) was ran while performance was measured on real-time.
Fig. 11, Shows the user interface screen shot for scheduling personal events. This can be monthly, weekly
or daily. It was implemented by using AngularJS and bootstrap. With the event scheduler, users can schedule their
own events, manage their time more adequately and improve their productivity during office hours. The technology
used for its implementation provided the much needed flexibility and speed of interactions. It also created room for
more features or functions to be included in the scheduler and made it more interactive and intuitive. The events
scheduler is easy to interact with and navigation from one level or interaction to the other. it is simple and easy to
understand. This has been made possible as a result of the MEAN stack technology used.
V. DATABASE RESULTS
The mlab platform helps to expound the management of the MongoDB databases on the cloud. Its
function is to fetch the database results and present them nicely in a human readable format. It is subscribed from
www.ijlret.com 74 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
the heroku dashboard. Result of the email collection is presented in Fig. 12. It shows that data is stored using blocks
of JSON and BSON as a JavaScript interchange format. Unlike relational databases tables are called collections
while rows are called documents or objects. Every document starts with an _id and present data in the form of
“name”: “value” pairs, the objects in the hospital collection include “Name”, “Address”, and “Active”. Values
themselves could be arrays of other object or nested objects. MongoDB does not enforce updating schema like in
RDBMS which may sometimes be difficult. The output shows that MongoDB allows us to store objects in a very
rich and dynamic way. This makes the presentation and understanding of database queries very easy and the
requires information is easily past to the user.
VI. DISCUSSION
Due to little implementation of MongoDB, ExpressJS, AngularJS, Node.JS (MEAN stack) emerging
technologies functioning as a single stack, the relevance of this study becomes obvious when components work
together through one common language for internal data communication. This will forestall the benefits of using
same language across the entire stack. MEAN allows for cost effectiveness in terms of developers expertise, speed,
flexibility, support for M-V-C, scalability, open source and cloud deployment support. These benefits are higher
when compared to other technologies. Node.js allows developer to easily deploy the applications directly on the
server without the need for an external standalone server. This reduces the overheads that come with the client
server architecture.
In this study, the practical experience in the design of the emailing subsystem using MEAN stack
technologies has been presented. The new concept reveals the variations which have been observed with the stack
of most common web application technologies such as LAMP and older technologies. These components when
compared to other choices offer more convenience for interaction. A secured emailing system was developed, with
many of the benefits explained. The system allows access based on login credential. If login is successful, users are
allowed to carry on their related operations. The login phase is a uniform interface that comes to life by login to the
URL: hrtc.herokuapp.com. The applications run on Firefox, Opera and Google Chrome browsers. The user
interface results of this study have shown that users are able to communicate with each other from any location
conveniently. The application provided the users flexibility, easy interactions and the desired quality of service.
The study has shown that applications developed with the MEAN stack technology are easy to develop, implement
and highly interactive.
VII. CONCLUSION
LAMP and its varieties have been a historical technology that has given birth to rich and wonderful
application across the globe, and this cannot be undermined. However, in today’s technology, JavaScript is a leader
in web application development. The MEAN stack, named after its constituents is a new cutting-edge and robust
technology that will soon overturn the web development platforms. The decision of using any stack depends on the
need and priority of the programmer, but the MEAN stack has proven to be a reliable choice for fast, scalable and
real-time applications. Node.JS asynchronous non-blocking concept made it easy for handling concurrency.
MongoDB document oriented No-SQL database has proven high performance, flexibility and scalability in
emerging technologies with the use of the JSON-BSON data format. Express.JS was built on top of Node.JS to
provide an easy to use framework for developers. AngularJS was developed by Google to promote the MVC
framework for building SPA and quickly build beautiful interactive user interfaces.
www.ijlret.com 75 | Page
International Journal of Latest Research in Engineering and Technology (IJLRET)
ISSN: 2454-5031
www.ijlret.com || Volume 04 - Issue 01 || January 2018 || PP. 62-76
VIII. REFERENCE
[1]. Alfred, A. (2014). Node.js: Introducing the MEAN Stack.
[2]. Adam, B. and Colin J., I. (2014). Full Stack JavaScript Development with MEAN. Retrieved on
November 20, 2017 at http://pepa.holla.cz/wp-content/uploads/2016/11/mean1.pdf
[3]. Bretz, A., & Ihrig, C. J. (2015). Full stack JavaScript development with MEAN.
[4]. Burns, N., & Grove, S. K. (2009). The practice of nursing research : appraisal, synthesis, and
generation of evidence. St. Louis, Mo: Saunders Elsevier.
[5]. BUECHELER., C. (2015). CREATING A SIMPLE RESTFUL WEB APP WITH NODE.JS, EXPRESS, AND
MONGODB. RERIEVED FROM: HTTP://CWBUECHELER.COM/WEB/TUTORIALS/2014/RESTFUL-
WEB-APP-NODE-EXPRESS-MONGODB/
[6]. Bojinov., V. (2015). Design and implement comprehensive RESTful solutions in Node.js.
[7]. Dickey, J. (2015). Write modern web apps with the MEAN stack: Mongo, Express, AngularJS, and
Node.js. San Francisco, CA: Peachpit Press.
[8]. Dirolf, M. (2010). Binary JSON. Retrieved from: http://bsonspec.org
[9]. Edim, A., E. and Bakwa, D., D (2017). A Peer-To-Peer Architecture For Real-Time Communication
Using Webrtc. Journal of Multidisciplinary Engineering Science Studies (JMESS) ISSN: 2458-925
3(4).
[10]. Elrom, E. (2016). AngularJS SEO. Pro MEAN Stack Development, 197-219.
doi:10.1007/978-1-4842-2044-3_8
[11]. Elrom, E. (2016). CSS, Bootstrap, & Responsive Design. Pro MEAN Stack Development, 131-164.
doi:10.1007/978-1-4842-2044-3_6
[12]. Fhala, B., & Chrispinus, E. O. (2017). Learning path: MEAN : create MEAN stack apps.
[13]. Grover, R. (2015). Building Apps with MEAN Stack: The Benefits of the MEAN Stack.
[14]. Haviv, A. Q., Mejia, A., & Onodi, R. (2016). Web application development with MEAN: Unlock the
power of the MEAN stack by creating attractive and real-world projects : a course in three modules.
[15]. Ihrig. J. C., and Bretiz, A. (2015). Full Stack Javascript Development with MEAN.
[16]. Kent Beck. (1999). Extreme Programming Explained: Embrace Change. Addison-Wesley Longman
Publishing Co, Inc, Boston, MA, USA.
[17]. Madhanasekaran., p.(2015). Node, Express.js and Mongoose : Part-II. [weblog post]. Retrieved Dec, 30
from http://developeriq.in/articles/2015/feb/09/node-expressjs-and-mongoose-part-ii/
[18]. Mathieu., N.(2017).Ultra-fast applications using Node.js. [Weblogpost]. Retrieved on Dec, 2017 from
https://openclassrooms.com/courses/ultra-fast-applications-using-node-js/node-js-what-is-it-for-exactly.
[19]. Onodi, R. (2016). MEAN blueprints: Unlock the power of the MEAN stack by creating attractive and
real-world projects.
[20]. Paul, S. (2014). Node.js – reasons to use, pros and cons, best practices![Weblog post] Retrieved oct, 2017
from http://voidcanvas.com/describing-node-js/
[21]. Perrenourd, M. (2015). Learning web development with the MEAN stack.
[22]. Peter. W, (2017). LAMP diehards take note: The flexible simplicity of MongoDB, Express, Angular, and
Node.js is no joke. [Weblog Post]. Retrieved
from https://www.infoworld.com/article/2937159/javascript/mean-vs-lamp-for-your-next-programming
-project.html on November 20, 2017
[23]. Rick, O. (2010). SQL or NoSQL? [Web log post]. Retrieved on Dec, 2017 from
https://rickosborne.org/blog/2010/02/sql-or-nosql/
[24]. Roth., I.(2014). What Makes Node.js Faster Than Java? [web log post - Strongloop by IBM]. Retrieved
on Dec, 2017 on https://strongloop.com/strongblog/node-js-is-faster-than-java/
[25]. Walker., R. (2014). Ngnix VS Apache. [Weblog post - Anturis Blog] . Retrievd from on Dec 30th on
https://anturis.com/blog/nginx-vs-apache/
www.ijlret.com 76 | Page