4.7.1 Advantages of using Node.js compared to other backend scripting languages (Raviraj, 2015).
a. Node.js is fast: Node.js uses JavaScript in the backend, and that’s enough to understand how fast the codes execute. Moreover, it runs on the Google’s V8 engine, which compiles the JavaScript directly into machine code making it faster
than most.
b. The ever-growing Node Package Manager: Being an open-source technology, node.js has a shared repository of good-to-go tools and modules. The number of modules in the Node Package Manager (NPM) has increased at a considerable pace, just on the verge of overtaking the RoR (Ruby on Rails) gems.
c. Real-time web apps: The event-driven architecture of node.js is appropriate for real-time applications, especially chat applications and games. As both the client- side and the server-side are written in JavaScript, the synchronization process is
better and quicker. Web socket protocol comes into picture here.
d. Productivity: The productivity of a web app increases several folds with node.js
because a lot of time is saved in between the lines. Merging the front-end and back-end into a single entity makes it efficient.
e. Asynchronous Input/output: It’s built to handle asynchronous I/O from the ground up and is a good match to a lot of common web- and network- development problems. In addition to fast JavaScript execution, the real magic behind Node.js is called the Event Loop. To scale to large volumes of clients, all I/O intensive operations in Node.js are performed asynchronously.
f. JavaScript: Node.js is JavaScript. So the same language can be used on the backend and frontend. This means it breaks down the boundaries between front- and back-end developments.
g. Community Driven: In addition to it are innate capabilities, Node.js has a
thriving open source community which has produced many excellent modules to add additional capabilities to Node.js applications. One of the most famous is Socket.io, a module to manage persistent connections between client and server, enabling the server to push real-time updates to clients. Socket.io abstracts the technology used to maintain these connections away from the developer, automatically using the best technology available for a particular client (web sockets if the browser supports it, JSONP or Ajax.
4.7.2 Advantages of using a Schema free database (Guillaume, 2010)
Keeping different kinds of documents in the same collection can be a nightmare for developers and administration.
a. It is much faster to get a list of collections than to extract a list of the types in a collection. For example, if we had a type key in the collection that said whether each document was a “skim,†“whole,†or “chunky monkey†document, it would be much slower to find those three values in a single collection than to have three
separate collections and query for their names.
b. Grouping documents of the same kind together in the same collection allows for data locality. Getting several blog posts from a collection containing only posts will likely require fewer disk seeks than getting the same posts from a collection
containing posts and author data.
c. A document-based data model. The basic unit of storage is analogous to JSON, Python dictionaries, Ruby hashes, etc. This is a rich data structure capable of holding arrays and other documents. This means you can often represent in a single entity a construct that would require several tables to properly represent in a relational db. This is especially useful if your data is immutable.
d. Deep query-ability: It supports dynamic queries on documents using a document-based query language that's nearly as powerful as SQL.
e. No schema migrations. Since MongoDB is schema-free, your code defines your schema.
f. A clear path to horizontal scalability.
4.8 System requirements
These specify the system features for a client to install the web application in their system and be used hopefully without any difficulties. The aim of this is to help clients make sure they have all required tools or equipment. The minimum requirements are as follows.
Hardware requirements a Computer with:-
A. 256 MB RAM but 1 Gig preferred
B. . Internet access at 56k or above.
C. . Minimum of 2GB hard disk space for high speed,
D. Processor with minimum of 2KHZ speed.
Software requirements
A. Web browser-Chrome, Firefox, etc.
B. Sublime -For Coding and Debugging.
C. Debugging tools-Chrome developer tools.
D. Mongo Db- For the database.
E. System development software: - It can be viewed on desktop computer, Laptop and mobile devices that have an installed browser.