Unit 1
Unit 1
System parts
-End
Web server
Caches
Application
-End
HTML
CSS
JavaScript
-End frameworks
We have seen the big shift in the web from HTML 4 to HTML5 which
has built-in APIs to help you accomplish many tasks to built a richer web application.
This has resulted in a variety of front-end MVC frameworks such as:
Polymer
The changing computing world has led to and been led by the fast
growing world of web development frameworks such as:
DEVELOPMENT TOOLS
1.2.1 Introduction
The purpose of the workshop A workshop/tutorial for software developers who want
to explore and learn about some of the tools required to set up a productive
development environment and then utilise it effectively. The workshop will walk
partcipants thorugh some of the basic development tools and how to use them and
then conclude with manually setting up a basic stack using these tools.
Virtual Machines will help you set up a fresh development machine on which you
can build the environment that you need for your project.
Command Line Interface will give you the tools you need to interact with your
development machine and environment directly or remotely, with or without a GUI.
Software Package Managers will introduce you to the tools that will help you
manage and set up the software in your development environment.
Editors and IDEs will give you the ability to create and edit files in your
development environment.
Basic Stack Configuration Ecercise - this final section will bring all the tools
encountered earlier to help us set up a stack for serving up a blank Django
application.
Full Stack development refers to the development of both front end (client side) and
back end (server side) portions on web application.
Ability to design complete web applications and websites. Those who are in full
stack developer ability to work on front end, backend, database and debugging of
web applications or websites.
Technology Related to Full Stack Development
Front-end Development
It is the visible part of website or web application which is responsible for user
experience. The user directly interacts with the front end portion of the web
application or website.
Front-end Technologies:
The front end portion is built by using some languages which are discussed below:
HTML: HTML stands for Hyper Text Markup Language. It is used to design
the front end portion of web pages using markup language. HTML is the
combination of Hypertext and Markup language. Hypertext defines the link
between the web pages. The markup language is used to define the text
documentation within tag which defines the structure of web pages.
CSS: Cascading Style Sheets, fondly referred to as CSS, is a simply designed
language intended to simplify the process of making web pages presentable.
CSS allows you to apply styles to web pages. More importantly, CSS enables
you to do this independent of the HTML that makes up each web page.
JavaScript: JavaScript is a famous scripting language used to create the magic
on the sites to make the site interactive for the user. It is used to enhancing the
functionality of a website to running cool games and web-based software.
Front End Libraries and Frameworks
AngularJS: AngularJs is a JavaScript open source front-end framework that is
mainly used to develop single page web applications(SPAs). It is a continuously
growing and expanding framework which provides better ways for developing
web applications. It changes the static HTML to dynamic HTML. It is an open
source project which can be freely used and changed by anyone. It extends
HTML attributes with Directives, and data is bound with HTML.
React.js: React is a declarative, efficient, and flexible JavaScript library for
building user interfaces. ReactJS is an open-source, component-based front end
library responsible only for the view layer of the application. It is maintained
by Facebook.
Bootstrap: Bootstrap is a free and open-source tool collection for creating
responsive websites and web applications. It is the most popular HTML, CSS,
and JavaScript framework for developing responsive, mobile-first web sites.
jQuery: jQuery is an open source JavaScript library that simplifies the
interactions between an HTML/CSS document, or more precisely the Document
Object Model (DOM), and JavaScript. Elaborating the terms, jQuery simplifies
HTML document traversing and manipulation, browser event handling, DOM
animations, Ajax interactions, and cross-browser JavaScript development.
SASS: It is the most reliable, mature and robust CSS extension language. It is
used to extend the functionality of an existing CSS of a site including everything
from variables, inheritance, and nesting with ease.
Some other libraries and frameworks are: Semantic-UI, Foundation,
Materialize, Backbone.js, Express.js, Ember.js etc.
Other Important Points
Work with text editors to use shortcuts and its facilities i.e. Visual studio, Atom,
Sublime etc.
Make UI responsible using grid system.
Git and git commands like init, add, commit etc for version control and to work
with team.
Other tools like npm & yarn package managers, sass css pre-processor, browser
DevTools i.e. chrome devtools.
Understand using HTTP, JSON, GraphQL APIs to fetch data using axios or
other tools.
It also requires some design skill to make layout and look better.
Back-end Technologies
It refers to the server-side development of web application or website with a
primary focus on how the website works. It is responsible for managing the
database through queries and APIs by client-side commands. This type of website
mainly consists of three parts front end, back end, and database.
The back end portion is built by using some libraries, frameworks, and languages
which are discussed below:
PHP: PHP is a server-side scripting language designed specifically for web
development. Since, PHP code executed on server side so it is called server side
scripting language.
C++ It is a general purpose programming language and widely used now a days
for competitive programming. It is also used as backend language.
Java: Java is one of the most popular and widely used programming language
and platform. It is highly scalable. Java components are easily available.
Python: Python is a programming language that lets you work quickly and
integrate systems more efficiently.
Node.js: Node.js is an open source and cross-platform runtime environment
for executing JavaScript code outside of a browser. You need to remember
ework or a
programming language. We often use Node.js for building back-end services
salaries beginning near $100,000 a year, this is both a rewarding and profitable
career path. A few jobs requiring full stack development skills include:
Software Engineer: Software Engineers take their full stack development training
and apply those skills to more projects. While many Web Developers only work on
web and digital applications, Software Engineers build and maintain the consumer
software programs we utilize daily. These applications can range from consumer
software applications like office programs, video games, and commercial operating
systems to more niche software applications like heavy machinery automation and
SEO machine learning programs, or smart devices. As software development and
digital integration becomes the norm across industries, Software Engineers will
continue to be in high demand. In the US, Software Engineers command an average
salary of $106,000 yearly.
Java Developers: Java Developers a specialized class of Full Stack Developers who
utilize frameworks and libraries such as MongoDB, Express.js, React, and Node.js
to build full stack applications using only the JavaScript programming language.
JavaScript frameworks are especially useful for creating applications and software
that runs JavaScript web programming without needing to access a web browser.
This language is commonly used to create applications like mobile devices,
streaming platforms, and personal digital assistants. Almost all of the internet of
things operates on full stack JavaScript programming, so if you want to work on the
cutting edge of smart device technology.
different skills brought together to build an entire web application. This means that
take that knowledge as a foundation for other computer science courses or training.
For example, if you have learned Python to build back end databases for web
applications, you can take that knowledge and apply it to data science or machine
learning training.
Suppose you are more interested in the front end development aspects of the process.
In that case, you can learn the MERN stack and various other frameworks to start
building elaborate digital applications using only JavaScript. This training
represents an essential skill set for anyone hoping to work on projects connected to
the Internet of Things and its associated software development projects. Beyond this,
JavaScript Developers are in high demand in other growing industries like streaming
platforms.
No matter what direction you take, there are many different course offerings
available to you through Noble Desktop.
private contractor to build the projects you are hoping to complete. Given how
important it is that new businesses, organizations, and potential product launches
have a strong web presence, learning how to handle this on your own is a great way
to strengthen the online output of a small firm or business. Learning these skills will
help you build things like the ecommerce sections of your website or a product
database, which are vital elements of establishing a foothold in an already crowded
marketplace.
Full stack web development skills will allow you to let your creative juices flow.
The internet is an endless canvas that allows you to undertake artistic and creative
endeavors that would have been unthinkable a decade ago. Digital art projects, docu-
games, digital advocacy projects, and political and activist campaigning have all
been empowered by the internet. Learning full stack web design is a great way to
make your vision a reality.
INTRODUCTION TO NODE.JS
Node.js is an open-source and cross-platform runtime environment for executing
JavaScript code outside a browser. NodeJS is not a framework and not a
programming language. Node.js is used to build back-end services like APIs like
arge companies such as
Paypal, Uber, Netflix, Walmart, and so on.
What is Node.js?
Node.js is an open-source server environment. Node.js uses JavaScript on the
server. The task of a web server is to open a file on the server and return the content
to the client.
Node.js has a built-in module called HTTP, which allows Node.js to transfer data
over the Hyper Text Transfer Protocol (HTTP). The HTTP module can create an
HTTP server that listens to server ports and gives a response back to the client.
Concepts of Node.js
The following diagram depicts some important parts of Node.js that are useful and
help us understand it better.
How does Node.js work?
Node.js accepts the request from the clients and sends the response, while working
with the request node.js handles them with a single thread. To operate I/O
operations or requests node.js use the concept of threads. Thread is a sequence of
instructions that the server needs to perform. It runs parallel on the server to provide
the information to multiple clients. Node.js is an event loop single-threaded
language. It can handle concurrent requests with a single thread without blocking
it for one request.
Advantages of NodeJS:
1. Easy Scalability: Easily scalable the application in both horizontal and vertical
directions.
2. Real-time web apps: Node.js is much more preferable because of faster
synchronization. Also, the event loop avoids HTTP overloaded for Node.js
development.
3. Fast Suite: NodeJS acts like a fast suite and all the operations can be done
quickly like reading or writing in the database, network connection, or file
system
4. Easy to learn and code: NodeJS is easy to learn and code because it uses
JavaScript.
5. Advantage of Caching: It provides the caching of a single module. Whenever
there is any request for the first module, it gets cached in the application
-execute the code.
6. Data Streaming: In NodeJS HTTP request and response are considered as two
separate events.
7. Hosting: PaaS (Platform as a Service) and Heroku are the hosting platforms
for NodeJS application deployment which is easy to use without facing any
issue.
8. Corporate Support: Most of the well-known companies like Walmart, Paypal,
Microsoft, Yahoo are using NodeJS for building the applications.
Reason to Choose Node.js
There are other programming languages also which we can use to build back-end
services so what makes Node.js different I am going to explain.
1. agile development
2. It provides fast and highly scalable services.
3.
back-end services using Node.js
4. Large ecosystem for open source library and has asynchronous or non-blocking
nature.
Application of NodeJS: NodeJS should be preferred to build Real-Time
Chats, Complex Single-Page applications, Real-time collaboration tools,
Streaming apps, JSON APIs based application.
Client
which can make HTTP requests to the web server.
Server
by the clients and pass them the response.
Business
web server to do the required processing. This layer interacts with the data
layer via the database or some external programs.
Data
Creating a Web Server using Node
Node.js provides an http module which can be used to create an HTTP client of a
server. Following is the bare minimum structure of the HTTP server which listens
at 8081 port.
File: server.js
// Create a server
http.createServer( function (request, response) {
// Parse the request containing file name
var pathname = url.parse(request.url).pathname;
File: index.htm
html>
<head>
<title>Sample Page</title>
</head>
<body>
Hello World!
</body>
</html>
$ node server.js
Verify the Output.
Server running at http://127.0.0.1:8081/
INTRODUCING EXPRESS: THE FRAMEWORK
Express is the most popular Node web framework, and is the underlying library for
a number of other popular Node web frameworks. It provides mechanisms to: Write
handlers for requests with different HTTP verbs at different URL paths (routes).
Express is a fast, assertive, essential and moderate web framework of Node.js. You
can assume express as a layer built on the top of the Node.js that helps manage a
server and routes. It provides a robust set of features to develop web and mobile
applications.
Create a file app.js, for this article, we will write the whole express code in that
file. This will be our folder structure. Now Inside app.js, Import express with
require keyword and create an app by calling the express() function provided by
the express framework. Set the port for our local application, 3000 is the default
but you can choose any according to the availability of ports. Call
the listen() function, It requires path and callback as an argument. It starts listening
to the connection on the specified path, the default host is localhost, and our default
path for the local machine is the localhost:3000, here 3000 is the port which we
have set earlier. The callback function gets executed either on the successful start
of the server or due to an error.
Step 4: Now we will set all the routes for our application.
Routes are the endpoints of the server, which are configured on our backend server
and whenever someone tries to access those endpoints they respond accordingly to
their definition
function that gets called when someone requests the special path associated with
that function and return the expected value as a response. We can create routes for
HTTP methods like get, post, put, and so on.
Syntax: The basic syntax of these types of routes looks like this, the given function
will execute when the path and the request method resemble.
app.anyMethod(path, function)
Database
Database is a physical container for collections. Each database gets its own set of
files on the file system. A single MongoDB server typically has multiple databases.
Collection
Document
Any relational database has a typical schema design that shows number of tables and
the relationship between these tables. While in MongoDB, there is no concept of
relationship.
No complex joins.
Tuning.
Uses internal memory for storing the (windowed) working set, enabling faster
access of data.
Why Use MongoDB?
Document Oriented Storage: Data is stored in the form of JSON style
documents.
Index on any attribute
Replication and high availability
Auto-sharding
Rich queries
Fast in-place updates
Professional support by MongoDB
Where to Use MongoDB?
Big Data
Content Management and Delivery
Mobile and Social Infrastructure
User Data Management
Data Hub
Introduction to Angular.js
AngularJS is a Javascript open-source front-end structural framework that
is mainly used to develop single-page web applications(SPAs). It is a continuously
growing and expanding framework which provides better ways for developing web
applications. It changes the static HTML to dynamic HTML. AngularJS is a
structural framework for dynamic web applications. It lets you use HTML as your
template language and lets you extend HTML's syntax to express your application
components clearly and succinctly. Its data binding and dependency injection
eliminate much of the code you currently have to write. And it all happens within
the browser, making it an ideal partner with any server technology.
General Features
Data-binding
view components.
Scope
controller and view.
Controller ese are JavaScript functions bound to a particular scope.
Services -in services such as $http to
make a XMLHttpRequests. These are singleton objects which are instantiated
only once in app.
Filters t of items from an array and returns a new array.
Directives
attributes, css, and more. These can be used to create custom HTML tags that
serve as new, custom widgets. AngularJS has built-in directives such as
ngBind, ngModel, etc.
Templates
and model. These can be a single file (such as index.html) or multiple views
in one page using partials.
Routing ews.
Model View Whatever
into different parts called Model, View, and Controller, each with distinct
responsibilities. AngularJS does not implement MVC in the traditional sense,
but rather something closer to MVVM (Model-View-ViewModel). The
Angular JS team refers it humorously as Model View Whatever.
Deep Linking
URL so that it can be bookmarked. The application can then be restored from
the URL to the same state.
Dependency Injection -in dependency injection
subsystem that helps the developer to create, understand, and test the
applications easily.
Concepts
The following diagram depicts some important parts of AngularJS which we will
discuss in detail in the subsequent chapters.
Advantages of AngularJS
It provides the capability to create Single Page Application in a very clean and
maintainable way.
It provides data binding capability to HTML. Thus, it gives user a rich and
responsive experience.
AngularJS code is unit testable.
AngularJS uses dependency injection and make use of separation of concerns.
AngularJS provides reusable components.
With AngularJS, the developers can achieve more functionality with short
code.
In AngularJS, views are pure html pages, and controllers written in JavaScript
do the business processing.
On the top of everything, AngularJS applications can run on all major browsers and
smart phones, including Android and iOS based phones/tablets.
Disadvantages of AngularJS
Not Secure
AngularJS are not safe. Server side authentication and authorization is must to
keep an application secure.
Not degradable
nothing would be visible, except the basic page.
AngularJS Directives
The AngularJS framework can be divided into three
ng-app
ng-model
HTML input controls.
ng-bind tags.
Front end frameworks are sets of pre-written code that provide developers with a
scalable and maintainable structure for creating user interfaces more efficiently.
They contain HTML, CSS, and JavaScript components that developers can reuse in
other projects, helping to keep the codebase consistent and organized.
React is the most widely used front-end framework, followed by jQuery and
Angular. Svelte is the fastest framework among other popular frameworks. Vue and
React are beginner-friendly frameworks that can be used to develop large-scale
applications. Angular is an efficient framework that supports two-way data binding.
1. React
React currently is the most widely used front-end framework. React was developed
by Meta (formerly Facebook) in 2013. It is an open-source framework and is
actively maintained by developers all across the globe. React stands out from other
frameworks because it supports virtual DOM (Document Object Model). Because
of the DOM, React is faster and more efficient than other front-end frameworks.
Advantages of React
Disadvantages of React
2. Angular
Advantages of Angular
Disadvantages of Angular
Even though jQuery has lost popularity over the years, it still is the most popular
front-end framework after React. Developed by John Resig, jQuery was launched in
2006 and is still being developed actively. It is an easy-to-use, user-friendly
framework. It changes the DOM and CSS to update the elements and functionality
of a website.
Advantages of jQuery
jQuery offers a simple syntax and is easier to use compared to other frameworks
HTTP requests can be made with ease
The flexible DOM can be used to edit the elements in a website
jQuery has a comprehensive documentation
Disadvantages of jQuery
4. Vue
Vue was developed by Evan You in 2014. Even though Vue is a lightweight and
beginner-friendly framework, it can be used to create small-scale as well as large-
scale applications. It is a flexible framework that offers support for several libraries
and tools like debuggers, state managers, etc. Like Angular, Vue also provides two-
way data binding support.
Advantages of Vue
5. Svelte
Advantages of Svelte
Disadvantages of Svelte
6. Ember
Launched in 2011 by Yehuda Katz, Ember can be used to develop both mobile and
web applications. Even though Ember offers many features, its popularity has
diminished because of a difficult learning curve. Like Angular, Ember supports two-
way data binding as well. Ember provides an efficient debugging system along with
the support for multiple plugins and add-ons. It supports both JavaScript and
TypeScript.
Advantages of Ember
Disadvantages of Ember
7. Preact
Advantages of Preact
Disadvantages of Preact
In simple words, Stimulus gives wings to your HTML code. Instead of rendering the
HTML of a webpage, Stimulus provides features to improve the existing HTML you
have written. Basecamp developed it with the aim of making web pages load faster.
The Stimulus code gets attached to the current HTML, and they are rendered
together.
Advantages of Stimulus
Disadvantages of Stimulus
9. Semantic UI
Advantages of Semantic UI
Disadvantages of Semantic UI
Semantic UI can become difficult to learn if you are not familiar with JavaScript
It has a smaller community than Bootstrap
It has large-sized packages
10. Backbone
Advantages of Backbone
Disadvantages of Backbone
It's popular for its simplicity, usability, and free tier. This lets you run your
applications for free using a full range of free cloud services available through the
Heroku ecosystem. In 2022, Heroku announced that it would stop offering some of
its free plans from November 28, 2022.
Summary of steps
The remainder of this article covers these steps in greater detail:
1. Confirm that you own the custom domain name. You can buy a custom domain name
with a domain registration service.
2. Add the custom domain to your app with the heroku domains:add command.
3. Look up the Heroku-supplied DNS target for the custom domain using the heroku
domains command.
4. -supplied DNS target.
5. Confirm that your app is accessible via the custom domain. There might be a delay
while DNS changes propagate.
Designing a Mean Stack Architecture
MEAN is a free and open-source JavaScript software stack for building dynamic
websites and web applications or we can say that MEAN stack is a collection of
JavaScript-based technologies used to develop web applications. MEAN is an
acronym for MongoDB, ExpressJS, AngularJS, and Node.js. From client to server
to database, MEAN is full-stack JavaScript.
M = MongoDB, a popular database manager which implements a NoSQL structure.
E = Express.js, a framework that supports and is used to host Node.js projects.
A = Angular.js, yet another framework for building apps. It builds upon the classic
HTML framework style and extends it to web apps
N = Node.js, the crowning glory. This is a runtime environment, which runs server-
side web applications, i.e. it works on the back-
fetch relevant data or perform operations on the same.
MongoDB offers a more flexible, accommodating layer for storing data. Node.js
provides a better nexus for running your server, while Express.js helps to standardize
how you build your websites. On the client-side, AngularJS provides a clean way of
adding interactive functions and AJAX-driven rich components. The amalgamation
of all makes a clean, coherent mechanism for moving data from the user to the disk
farm and back again.
The MEAN components are open source; in other words, the stack gets updated
regularly. In addition to this, it is easy to use, flexible to understand, and moreover
assists the developers to customize as per the requirements.
A massive module library of node.js and the use of JSON to transfer the data are a
few other features of MEAN.
Not just the start-ups and SMBs but also big companies like Walmart, PayPal,
Yahoo, Netflix, Uber, LinkedIn, etc. have also shifted to Node.js
Use Cases of MEAN
Because of its enhanced scalable and handling capacity of concurrent users, it is
much more favored for developing cloud-native applications. Though MEAN stack
is not ideal for every application there are other uses where it easily offsets.
AngularJS helps to develop SPAs (single-page applications) which normally include
all the information or functionalities for the user on a single page. The most common
examples are as follows:
1. Calendars
2. Expense Tracking
3. Mapping & location tracking
4. News
MEAN Stack Architecture
MEAN is a free and open-source JavaScript software stack for building dynamic
websites and web apps. It is very simple & easy to use for both the back-end and
front-end. In other technologies, there are different languages used for front and
back-end but however, but MEAN is written in one language for both server-side
and client-side execution. The working of MEAN Stack is explained below in the
figure properly.
dependency injection eliminate much of the code you currently have to write. And
it all happens within the browser, making it an ideal partner with any server
technology.
The model is responsible for managing application data. It responds to the request
from view and to the instructions from the controller to update itself.
2) View
It is responsible for displaying all or a portion of data to the user.
A presentation of data
to present the data. They are script-based template systems such as JSP, ASP, and
PHP and are very easy to integrate with AJAX technology.
3) Controller
It is a software Code that controls the interactions between the Model and View.
The controller responds to user input and performs interactions on the data model
objects. The controller receives input, validates it, and then performs business
operations that modify the state of the data model.
2) Very Fast
s library is very
fast in code execution. Moreover, with its runtime feature, one can easily build
scalable and secure web apps.
4) Buffering
A stream of data can be classified as the movement of the data from one point to
another with a function of either processing or reading it and making decisions
accordingly. Depending upon the flow of data through a stream either the process
will consume the data faster and needs to wait for the excess data or if it is slower
then it needs to wait for additional data to arrive before it is sent out for processing.
Whichever Node.js does not hold the
control over the speed, time of data arrival or the speed of the stream however, it can
only act on the time to send out the data.
Threading
Node.js operates on a single thread, using non-blocking I/O calls, allowing it to
support tens of thousands of concurrent connections without incurring the cost of
thread context switching. The design of sharing a single thread between all the
requests that use the observer pattern is intended for building highly concurrent
applications, where any function performing I/O must use a callback. In order to
accommodate the single-threaded event loop, Node.js utilizes the libuv library which
in turn uses a fixed-sized thread pool that is responsible for some of the non-blocking
asynchronous I/O operations.
Architecture Description
to Client Requests up to available Threads. After all m Threads are utilized, then the
finish their Request-Processing Job and are free to pick up the next Request. If those
threads are busy with Blocking IO Tasks (For example, interacting with the database,
file system, JMS Queue, external services, etc.) for a longer time, then the remaining
clients should wait a long time.
Once Threads are free in Thread Pool and available for the next tasks, the Server
picks up those threads and assigns them to remain Client Requests.
Each Thread utilizes many resources like memory etc. So before going to those
Threads from the busy state to waiting for the state, they should release all acquired
resources
ExpressJS
Express provides a minimal interface for us to build our applications. Provides
absolutely necessary tools to build our app with flexibility. There are numerous
modules available on npm for express, which can be directly plugged into an express.
Database integration, template engines, and basic multiple routing can be performed.
It not only helps middleware to respond to HTTP requests but also helps to
dynamically render HTML pages by passing arguments to templates.
Unlike its competitors like Rails and Django, which have an opinionated way of
building applicat
and pluggable.
Architecture Description
When the user sends a request through AngularJS then that request is firstly accessed
by the NodeJS. Threading is done in the NodeJS and then it is sent to the ExpressJS
to Create, Read, Update and Delete the API for the request. ExpressJS hosts the
website for NodeJS. Both NodeJS and ExpressJS are server-side languages. After
CURD, the API data is retrieved from MongoDB and then send to the User.
Create (POST) Make something
Read (GET)_- Get something
Update (PUT) Change something
Delete (DELETE)- Remove something
MongoDB
MongoDB (from humongous) is a free and open-source, cross-platform document-
oriented database program. Classified as a NoSQL database program, MongoDB
uses JSON-like documents with schemas. MongoDB
applications, enabling you to:
Leverage data and technology to maximize competitive advantage
Reduce risk for mission-critical deployments
Accelerate time-to-value
A drastic reduction in the total cost of ownership
We can build applications using MongoDB databases without using traditional
database relations (MYSQL). MongoDB features are below.
of any structure, without giving up sophisticated validation rules, data access, and
rich indexing functionality.
3) Multi-Datacentre Scalability
As your deployments grow in terms of data volume and throughput, MongoDB
scales easily with no downtime, and without changing your application.
Architecture Description
2) Strong consistency
Applications should be able to immediately read what has been written to the
database. It is much more complex to build applications around an eventually
consistent model, imposing significant work on the developer, even for the most
sophisticated engineering teams.
3) Enterprise Management and Integrations
Databases are just one piece of application infrastructure and need to fit seamlessly
into the enterprise IT stack. Organizations need a database that can be secured,
monitored, automated, and integrated with their existing technology infrastructure,
processes, and staff including operations teams, DBAs, and data analysts.
replication to automatically synchronize data across servers, racks, and data centers.
Features of MongoDB
In MongoDB, data represents a collection of JSON documents.
One of the best things about MongoDB is that you are not responsible for defining
the schema
Technology
MEAN Stack (MEAN Stack developers):
UI: Angular JS, Bootstrap, HTML 5, CSS 3, JS, JSON, jQuery
Platform: MiddleWare & Server
Server Side: Express, Common JS, Node JS, RESTAPI
Database: Mongo DB
Environment Framework and Testing Framework: Chai, Protractor, Mocha
Build Tool: Gulp
Front-End: Yeoman
Text Editor: Atom
dig for newer and better ways of providing seamless experiences to customers.
It is why many organizations have started to build parts of their web applications
using an emerging web design referred to as Single Page Application.
Google and Facebook, the two giants whose apps drive your daily dose of the
internet and social media activity, have also been built using SPAs
In this blog, you will explore all aspects of a single page application, its benefits,
pitfalls, and how it brings much-needed business value. But before we go ahead, it
is essential to mention here that web applications are divided into two types based
on design pattern single page application and multi-page application.
-page applications.
Meteor requires fewer code lines, fewer bugs, faster development, and high-
quality single-page web apps.
It makes the deployment of a SPA easy and less time-consuming. Meteor is
integrated with Galaxy, a PAAS solution for hosting apps with Meteor.js.
Therefore, all it requires to deploy an app is to sign in to Galaxy and add
environment variables.
2. React.JS
transformation, enterprises have Scalability & Flexibility ingrained into their core
focus areas right from the beginning, which was once just an afterthought.
Thus, building an efficient single-page application comes hand in hand with this
crucial factor. If scalability and flexibility are the topmost priority for your business,
ReactJS is a good choice of framework.
The framework enables the distribution of the load from the server to the client
as both sides utilize ReactJS
3. Angular.JS
In a pursuit to push the web to do more, enterprises face a common problem: the
before, making it hard for them to achieve a high-performance level across various
devices
Performance issues can lead to minor delays, and at worst, they can make your SPA
unresponsive, thereby turning away your potential customers. Even a study by
Google indicates that sites loading within 5 seconds had 70% longer sessions, 35%
lower bounce rates, and 25% higher ad viewability than sites taking nearly four times
longer.
Thus, good performance is a crucial factor when you are choosing a single-page
application framework. There is no better framework than AngularJS when it comes
to the performance of a single-page application.
AngularJS data binding feature eliminates much of the code a developer would
otherwise have to write. Thus, building a single page application using Angular
requires fewer line of code and delivers impressive performance.
Applications built with AngularJS load quickly. The component router feature
of AngularJS makes this possible by delivering automatic splitting of codes. It
enables the users to load only the requester code for the view.
Vue.js is said to be the best of two worlds React and Angular. Just like React,
it uses Virtual DOM and is component-based, making it extremely fast
performing. On the other hand, like Angular, it has directives and two-way data
binding features, making it a reactive framework.
Vue.js is neither a library nor a framework. It has the right balance of amazing
features for developing SPAs, and it is easy to add more, like State
Management and Routing.
5. Backbone.JS
It is one of the most popular SPA frameworks dependent on MVP designer patterns
for creating flexible web apps. It comes with a router, models, events, views,
collections, and many other incredible features that make developing SPAs easy and
fast.
Like AngularJS, EmberJS also features two-way data binding, keeping both
view and model in sync. Applying the Ember FastbootJS module, it becomes
possible to prompt server-side rendering of DOM, thereby improving complex
UIs.
7: Add authentication
HARDWARE ARCHITECTURE
The hardware architecture is a view of the physical architecture that represents the
hardware components and their interrelationships.
The web service runs and web application is stored on a PC on the same network as
your hardware. This architecture keeps the server burden off of your hardware and
works best for sharing measurement data dashboards and applications using System
Link Tag and Message APIs.
Parallel computing and hardware architecture of parallel computing in this post.
Note that there are two types of computing but we only learn parallel computing
here. As we are going to learn parallel computing for that we should know
following terms.
1. Era of computing The two fundamental and dominant models of computing
are sequential and parallel. The sequential computing era began in the 1940s
and the parallel (and distributed) computing era followed it within a decade.
2. Computing So, now the question arises that what is Computing? Computing
is any goal-oriented activity requiring, benefiting from, or creating computers.
Computing includes designing, developing and building hardware and software
systems; designing a mathematical sequence of steps known as an algorithm;
processing, structuring and managing various kinds of information
3. Type of Computing Following are two types of computing :
1. Parallel computing
2. Distributed computing
Parallel computing As in this article, we are going to learn Parallel computing
so what is parallel processing? Processing of multiple tasks simultaneously on
multiple processors is called parallel processing. The parallel program consists of
multiple active processes (tasks) simultaneously solving a given problem. As we
learn what is parallel computing and there type now we are going more deeply on
the topic of the parallel computing and understand the concept of the hardware
architecture of parallel computing.
Hardware architecture of parallel computing The hardware architecture of
parallel computing is distributed along the following categories as given below : 1.
Single-instruction, single-data (SISD) systems 2. Single-instruction, multiple-data
(SIMD) systems 3. Multiple-instruction, single-data (MISD) systems 4. Multiple-
instruction, multiple-data (MIMD) systems Refer to learn about the hardware
architecture of parallel computing taxonomy
Hardware computing Computer hardware is the collection of physical parts of
a computer system. This includes the computer case, monitor, keyboard, and
mouse. It also includes all the parts inside the computer case, such as the hard disk
drive, motherboard, video card, and many others. Computer hardware is what you
can physically touch.
Advantages:
Speedup: Parallel computing can significantly reduce the time it takes to solve a
complex problem by breaking it down into smaller parts that can be solved
simultaneously.
Scalability: Parallel computing architectures can easily scale up to handle larger
datasets or more complex computations.
Fault-tolerance: Parallel computing can be fault-tolerant, which means that if one
processor or node fails, the others can continue to work.
Cost-effective: By using multiple processors or nodes, parallel computing can be
more cost-effective than using a single high-performance processor.
Increased performance: Parallel computing can increase the performance of
certain types of computations, such as simulations, data analysis, and machine
learning.
Disadvantages:
Complexity: Parallel computing architectures can be complex and difficult to
program, which can require specialized skills and knowledge.
Communication overhead: Communication between processors or nodes can be
slow, which can limit the performance gains of parallel computing.
Synchronization issues: When multiple processors or nodes work together,
synchronization issues can arise, which can lead to errors or reduced performance.
Limited scalability: Some parallel computing architectures may have limited
scalability, which can limit their usefulness for certain types of computations.
Hardware limitations: Parallel computing architectures may require specialized
hardware, which can be expensive and difficult to obtain.
How the Mean stack components work together
Forming the backend of the MEAN stack, Express handles all the interactions
between the frontend and the database, ensuring a smooth transfer of data to the end
user. It's designed to be used with Node. js and so continues the consistent use of
JavaScript throughout the stack.
There are variations to the MEAN stack such as MERN (replacing Angular.js with
React.js) and MEVN (using Vue.js). The MEAN stack is one of the most popular
technology concepts for building web applications.
Angular.js allows you to extend your HTML tags with metadata in order to create
dynamic, interactive web experiences much more powerfully than, say, building
them yourself with static HTML and JavaScript (or jQuery).
-end JavaScript
framework, including form validation, localization, and communication with your
back-end service.
The next level down is Express.js, running on a Node.js server. Express.js calls itself
Express.js has powerful models for URL routing (matching an incoming URL with
a server function), and handling HTTP requests and responses. By making XML
HTTP requests (XHRs), GETs, or POSTs from your Angular.js front end, you can
connect to Express.js functions that power your application.
If your application stores any data (user profiles, content, comments, uploads,
end can be sent to the Express.js server, where they can be processed and (assuming
at MongoDB Atlas. This will allow you built-in full database security and cross-
cloud scalability with the click of a button. More on that later on this page.
There are many more uses for the MEAN stack, as well.
Since all the components are based on JavaScript and JSON, the integration between
the components of the stack is intuitive and straightforward.
Additionally, the E and A of MEAN (Express and Angular) are two of the most
popular and well-supported JavaScript frameworks for back-end and front-end
development, respectively. Express makes routing and managing HTTP requests and
responses super easy, and includes great support for middleware to handle JSON
endpoints and form posts. Angular is a powerful tool for building dynamic HTML
pages that communicate with a back-end server.
All of the MEAN stack components are open source in nature and therefore allow a
generous, free-of-charge opportunity for developers.
Finally, although there are many guides and tutorials out there, they generally will
not include concrete JS coding guidelines appropriate for this stack. Therefore,
something that worked really well for one application might surface issues for
another.
MongoDB stores data in a JSON-like format (BSON, a binary JSON extension), the
MongoDB Query Language (MQL) is defined in JSON, and its command line
interface (CLI) is a JavaScript interpreter. Not only is MongoDB essentially a
Java
querying deep into JSON documents, has powerful native Node.js drivers, and is
designed for horizontal scale-
using MongoDB Atlas, the cloud-native database as a service from the creators of
MongoDB.
Atlas databases are easily deployed and scaled, providing you with a consistent URI
to connect. See the official MongoDB documentation on connecting to a cluster.
Along the way, Atlas connections come with built-in username/password and TLS
end-to-end encryption by default. Additionally, these connections allow you to
utilize advanced MongoDB security features such as certificate/IAM authentication,
LDAP, Encryption-at-rest, and Auditing with the click of a button.
Moreover, an Atlas project can utilize the Atlas App Services applications platform
to easily integrate many authentication providers such as Google, Facebook, JWT,
and custom authentication.
Scaling and managing Atlas is very easy; its biggest benefit is that it supports and
secures the MEAN stack's most valuable layer: the data layer.
Additionally, the MEAN stack has a concrete three-tier separation which, if used
with best practices and correct network isolation, should prevent your end users from
having access to the business logic and, moreover, to your database layer. Therefore,
your application is by default designed to avoid malicious user interaction from
putting your application at risk (query injection, code manipulation, port spoofing,
etc.).