FSD Week 2
FSD Week 2
There are the three constants in a scrum team that we continue to revisit and invest in
overtime.
● Product Backlog is the primary list of work that needs to get done maintained by the
product owner or product manager. This is a dynamic list of features, requirements,
enhancements, and fixes that act as the input for the sprint backlog. It is, essentially,
the team’s “To Do” list.
● Sprint Backlog is the list of items, user stories, or bug fixes, selected by the
development team for implementation in the current sprint cycle. Before each sprint,
in the sprint planning meeting the team chooses which items it will work on for the
sprint from the product backlog.
JB PORTALS 1
FULL STACK DEVELOPMENT - WEEK 2
● Increment (or Sprint Goal) is the usable end-product from a sprint. You may not hear
the word “increment” out in the world, as it’s often referred to as the team’s definition
of “Done”, a milestone, the sprint goal, or even a full version or a shipped epic. It just
depends on how your teams defines “Done” and how you define your sprint goals.
What is a sprint?
In scrum and other agile software development frameworks, a sprint is a repeatable
fixed time-box during which a "Done" product of the highest possible value is created. Sprint
lies at the core of the Scrum agile methodology and can be thought of as an event which
wraps all other Scrum events like Daily Scrums, Scrum Review and Sprint Retrospective. Like
all of scrum events, Sprint also has a maximum duration. Usually, a Sprint lasts for one month
or less.
Usually, daily meetings are held to discuss the progress of the project undertaken and
any difficulty faced by any team member of the team while implementing the project. The
outcome of the sprint is a deliverable, albeit with some increments. The scrum is used for
projects like Web Technology or development of a product for the new market, i.e. the
product with many requirements or fast-changing requirement. A sprint is a short, time-
boxed period when a scrum team works to complete a set amount of work. Sprints are at the
very heart of scrum and agile methodologies, and getting sprints right will help your agile
team ship better software with fewer headaches.
JB PORTALS 2
FULL STACK DEVELOPMENT - WEEK 2
Product Goal
Product goals represent the crucial accomplishments needed to make your vision a
reality. They highlight how the product is going to support the business and are often
stepping stones to accelerating business growth. Goals should be easy to understand,
actionable, and achievable. They should also have a fixed time frame — typically lined up
with fiscal planning cycles and spanning anywhere from three to 12 months.
As an example, consider a fictitious company called Fredwin Cycling that makes a
cycling app. A few of their product goals include:
Goal: Top-rated social fitness cycling app within 12 months
Metric: #1 rated in iOS and Android marketplaces
Goal: Double revenue year over year
Metric: +$100M revenue
Goal: Largest partner ecosystem
Metric: +100 partners
The right goals will light a spark within the team — giving you a shared target to work
towards and a sense of greater purpose. But simply setting goals is not enough. You also need
to map all of the detailed work back to the goal it supports and track progress to let everyone
see how their work reinforces success at a high level.
Cost Estimation
Cost Estimation is a statement that gives the value of the cost incurred in the
manufacturing of finished goods. Cost estimation helps in fixing the selling price of the final
product after charging appropriate overheads and allowing a certain margin for profits. Cost
estimation in project management is the process of forecasting the financial and other
resources needed to complete a project within a defined scope.
JB PORTALS 3
FULL STACK DEVELOPMENT - WEEK 2
Elements of cost estimation in project management
There are two key types of costs addressed by the cost estimation process:
1. Direct costs: Costs associated with a single area, such as a department or the project
itself. Examples of direct costs include fixed labor, materials, and equipment.
2. Indirect costs: Costs incurred by the organization at large, such as utilities and
quality control.
Some typical elements that a cost estimation will take into account:
● Labor: The cost of team members working on the project, both in terms of wages and
time
● Materials and equipment: The cost of resources required for the project, from
physical tools to software to legal permits
● Facilities: The cost of using any working spaces not owned by the organization.
● Vendors: The cost of hiring third-party vendors or contractors.
● Risk: The cost of any contingency plans implemented to reduce risk.
Risk Management
Risk management is the process of identifying, assessing and controlling financial,
legal, strategic and security risks to an organization’s capital and earnings. These threats, or
risks, could stem from a wide variety of sources, including financial uncertainty, legal
liabilities, strategic management errors, accidents and natural disasters.
If an unforeseen event catches your organization unaware, the impact could be minor,
such as a small impact on your overhead costs. In a worst-case scenario, though, it could be
catastrophic and have serious ramifications, such as a significant financial burden or even
the closure of your business. Three important steps of the risk management process are risk
identification, risk analysis and assessment, and risk mitigation and monitoring.
1. Identifying risks
Risk identification is the process of identifying and assessing threats to an
organization, its operations and its workforce. For example, risk identification may include
assessing IT security threats such as malware and ransomware, accidents, natural disasters
and other potentially harmful events that could disrupt business operations.
JB PORTALS 4
FULL STACK DEVELOPMENT - WEEK 2
3. Risk mitigation and monitoring
Risk mitigation refers to the process of planning and developing methods and options
to reduce threats to project objectives. Risk mitigation also includes the actions put into place
to deal with issues and effects of those issues regarding a project. Risk management is a
nonstop process that adapts and changes over time. Repeating and continually monitoring
the processes can help assure maximum coverage of known and unknown risks.
Define EPICS
An epic is a large user story which is too big to fit into a sprint. This high-level story
is usually split into smaller ones, each of which can be completed within a sprint. In that
sense, an epic is a collection of user stories with a unified goal.
A requirement that is just too big to deliver in a single sprint. Epics need to be broken
into smaller deliverables (stories). In simple terms, Scrum Epic in Agile Methodology is a big
chunk of work which can be divided into smaller user stories. An Epic can be spread across
sprints and even across agile teams. An Epic can be a high-level description of what the client
wants, and accordingly, it has some value attached to it. As we mentioned, an Epic is a high-
level requirement, hence its scope can change over the course of time.
JB PORTALS 5
FULL STACK DEVELOPMENT - WEEK 2
JB PORTALS 6
FULL STACK DEVELOPMENT - WEEK 2
How to write user stories
User stories are often expressed in a simple sentence, structured as follows:
“As a [persona], I [want to], [so that].”
As with most things agile, there are varying definitions of acceptance criteria.
● Acceptance Criteria Definition 1: “Conditions that a software product must satisfy
to be accepted by a user, customer or other stakeholder.” (via Microsoft Press)
● Acceptance Criteria Definition 2: “Pre-established standards or requirements a
product or project must meet.” (via Google)
JB PORTALS 7
FULL STACK DEVELOPMENT - WEEK 2
Test Cases
Test cases are instructions for testers to follow to ensure programs are functioning
properly. They describe how the software should work in normal, abnormal, or error
operating conditions. Test case writing converts user requirements into a set of test conditions
and descriptions that indicate how a system is functioning. In an automated test script, more
than one test case can combine to form a test suite.
How to Write Test Cases
Test cases are designed to verify that your application is operating as expected. Test
case writers design test cases so testers can determine whether an app or software system's
feature is working correctly. Applications must be tested thoroughly to find out how the
system behaves under all possible input conditions. A clear understanding of software
functions and the testing process can make writing tests that identify defects easier.
Sprint planning
Sprint Planning initiates the Sprint by laying out the work to be performed for the
Sprint. This resulting plan is created by the collaborative work of the entire Scrum Team.
The Product Owner ensures that attendees are prepared to discuss the most important
Product Backlog items and how they map to the Product Goal. The Scrum Team may also
invite other people to attend Sprint Planning to provide advice.
‘Ready state’
The goal of Product Backlog refinement is to work with the Scrum Team and
stakeholders (when relevant), to get Product Backlog items in a ‘ready state’. What does this
mean? This basically means that the development team has the idea that an item is:
1. Clear enough, so they understand what stakeholders are asking for and why they are
asking for it.
2. Small enough, so the items should be small enough to get done within a sprint
(typically a few days of work) to comply with the definition of done.
This activity is all about interaction between the Product Owner, Development Team
and stakeholders. If you were expecting a blueprint for a ‘ready’ item you clearly need to do
some homework on agility. When an item is ready depends on many different aspects like
experience of the Scrum Team or knowledge about the product. It even differs per item when
a Development Team considers it to be ready. This activity takes time and doing this right
saves a lot of time in Sprint Planning.
JB PORTALS 9
FULL STACK DEVELOPMENT - WEEK 2
Sprint Demo
In a traditional scrum method, the sprint demo comes at the end of a sprint. At the
start of an agile sprint, a team commits to a certain amount of work. That work is based on
input from the project's stakeholders and ideally is the most important work the team could
be doing for that sprint. Sprints vary in length. Some are two weeks. Other teams choose one
week, and I've even seen a few that went as long as a month.
It is that part of the Sprint Review meeting where participants come prepared to see
something – the demo of the last increments. It is the opportunity for the Scrum Team to
showcase to Stakeholders and the Product Owner, things that have been done in a Sprint.
The Product Owner on his part needs to showcase work that meets the predetermined
Stakeholder needs. Feedback is shared, details of the next Sprint are discussed.
JB PORTALS 10
FULL STACK DEVELOPMENT - WEEK 2
WHAT IS A BURNDOWN CHART?
A burndown chart shows the amount of work that has been completed in an epic or
sprint, and the total work remaining. Burndown charts are used to predict your team's
likelihood of completing their work in the time available. They're also great for keeping the
team aware of any scope creep that occurs.
Burndown charts are useful because they provide insight into how the team works. For
example:
● If you notice that the team consistently finishes work early, this might be a sign that
they aren't committing to enough work during sprint planning.
● If they consistently miss their forecast, this might be a sign that they've committed to
too much work.
● If the burndown chart shows a sharp drop during the sprint, this might be a sign that
work has not been estimated accurately, or broken down properly.
This report shows the amount of work to be done in a sprint. It can be used to track
the total work remaining in the sprint, and to project the likelihood of achieving the sprint
goal. By tracking the remaining work throughout the sprint, a team can manage its progress,
and respond to trends accordingly. For example, if the burndown chart shows that the team
may not reach the sprint goal, then they can take the necessary actions to stay on track.
Understanding the sprint burndown chart
1. Estimation statistic: The vertical axis represents the estimation statistic that you've
selected.
2. Remaining values: The red line represents the total amount of work left in the sprint,
according to your team's estimates.
3. Guideline: The grey line shows an approximation of where your team should be,
assuming linear progress.
JB PORTALS 11
FULL STACK DEVELOPMENT - WEEK 2
Sprint retrospective
The purpose of the Sprint Retrospective is to plan ways to increase quality and
effectiveness. The Scrum Team inspects how the last Sprint went with regards to individuals,
interactions, processes, tools, and their Definition of Done. Inspected elements often vary
with the domain of work. Assumptions that led them astray are identified and their origins
explored. The Scrum Team discusses what went well during the Sprint, what problems it
encountered, and how those problems were (or were not) solved.
The Scrum Team identifies the most helpful changes to improve its effectiveness. The
most impactful improvements are addressed as soon as possible. They may even be added
to the Sprint Backlog for the next Sprint. The Sprint Retrospective concludes the Sprint. It is
time boxed to a maximum of three hours for a one-month Sprint. For shorter Sprints, the
event is usually shorter.
JB PORTALS 12
FULL STACK DEVELOPMENT - WEEK 2
Software Design Principles
Software design principles are concerned with providing means to handle the
complexity of the design process effectively. Effectively managing the complexity will not
only reduce the effort needed for design but can also reduce the scope of introducing errors
during design.
Availability
Availability is defined as the probability that the system is operating properly when
it is requested for use. In other words, availability is the probability that a system is not
failing or undergoing a repair action when it needs to be used. At first glance, it might seem
that if a system has a high availability, then it should also have a high reliability. However,
this is not necessarily the case. This article will explore the relationship between availability
and reliability and will also present some of the specified classifications of availability. In
fact, availability builds upon the concept of reliability by adding the notion of recovery—that
is, when the system breaks, it repairs itself.
Performance
Performance is an indicator of how well a software system or component meets its
requirements for timeliness. Timeliness is measured in terms of response time or
throughput. The response time is the time required to respond to a request. It may be the
time required for a single transaction, or the end-to-end time for a user task. For example,
we may require that an online system provide a result within one-half second after the user
presses the "enter" key.
Consistency
Consistency in design means we produce all the elements with similarity. They should
look and work as the parts of one bigger organism. This way, we give the user a much easier
and more pleasant experience with our final product. Consistency is crucial to create
intuitive mobile apps and websites.
It really matters, when it comes to learning things – for example how to use new
software. With consistent design, finding out how it works and where to find functionalities
we are interested in is easy-peasy. Consistency just provides context that is understandable
for most of us, so we can transfer our knowledge from one product we use to another.
Scalability
Scalability is the ability of a system to continue to meet its response time or
throughput objectives as the demand for the software functions increases.The graph in
Figure 1-1 illustrates how increasing use of a system affects its response time.
JB PORTALS 13
FULL STACK DEVELOPMENT - WEEK 2
As you can see from the curve, as long as you are below a certain threshold, increasing
the load does not have a great effect on response time. In this region, the response time
increases linearly with the load. At some point, however, a small increase in load begins to
have a great effect on response time. In this region (at the right of the curve), the response
time increases exponentially with the load.
Manageability
How efficiently and easily a software system can be monitored and maintained to
keep the system performing, secure, and running smoothly. In general, manageability is the
measure of and set of features that support the ease, speed, and competence with which a
system can be discovered, configured, modified, deployed, controlled, and supervised.
Cost
For any new software project, it is necessary to know how much it will cost to develop
and how much development time will it take. These estimates are needed before
development is initiated. Uses of Cost Estimation
1. During the planning stage, one needs to choose how many engineers are required for
the project and to develop a schedule.
2. In monitoring the project's progress, one needs to access whether the project is
progressing according to the procedure and takes corrective action, if necessary.
Software Architecture:
Software architecture is the blueprint of building software. It shows the overall
structure of the software, the collection of components in it, and how they interact with one
another while hiding the implementation. This helps the software development team to
clearly communicate how the software is going to be built as per the requirements of
customers.
Different Software Architecture Patterns:
1. Layered Pattern
2. Monolithic
3. Service oriented
4. Microservices Pattern
JB PORTALS 14
FULL STACK DEVELOPMENT - WEEK 2
1. Layered Pattern
As the name suggests, components(code) in this pattern are separated into layers of
subtasks and they are arranged one above another. Each layer has unique tasks to do and all
the layers are independent of one another. Since each layer is independent, one can modify
the code inside a layer without affecting others. It is the most commonly used pattern for
designing the majority of software. This layer is also known as ‘N-tier architecture’. Basically,
this pattern has 4 layers.
1. Presentation layer (The user interface layer where we see and enter data into an
application.)
2. Business layer (this layer is responsible for executing business logic as per the request.)
3. Application layer (this layer acts as a medium for communication between the
‘presentation layer’ and ‘data layer’.
4. Data layer (this layer has a database for managing data.)
Ideal for: E-commerce web applications development like Amazon.
2. Monolithic
A monolithic architecture is a traditional model of a software program, which is built
as a unified unit that is self-contained and independent from other applications. The word
“monolith” is often attributed to something large and glacial, which isn’t far from the truth
of a monolith architecture for software design. A monolithic architecture is a singular, large
computing network with one code base that couples all of the business concerns together.
To make a change to this sort of application requires updating the entire stack by accessing
the code base and building and deploying an updated version of the service-side interface.
This makes updates restrictive and time-consuming.
JB PORTALS 15
FULL STACK DEVELOPMENT - WEEK 2
3. Service Oriented Architecture
Service-oriented architecture (SOA) is a method of software development that uses
software components called services to create business applications. Each service provides
a business capability, and services can also communicate with each other across platforms
and languages. Developers use SOA to reuse services in different systems or combine several
independent services to perform complex tasks.
For example, multiple business processes in an organization require the user
authentication functionality. Instead of rewriting the authentication code for all business
processes, you can create a single authentication service and reuse it for all applications.
Similarly, almost all systems across a healthcare organization, such as patient management
systems and electronic health record (EHR) systems, need to register patients. These
systems can call a single, common service to perform the patient registration task.
4. Microservices Pattern:
The collection of small services that are combined to form the actual application is
the concept of microservices pattern. Instead of building a bigger application, small
programs are built for every service (function) of an application independently. And those
small programs are bundled together to be a full-fledged application. So, adding new features
and modifying existing microservices without affecting other microservices are no longer a
challenge when an application is built in a microservices pattern. Modules in the application
of microservices patterns are loosely coupled. So, they are easily understandable, modifiable
and scalable.
Example: Netflix is one of the most popular examples of software built-in microservices
architecture. This pattern is most suitable for websites and web apps having small
components.
JB PORTALS 16
FULL STACK DEVELOPMENT - WEEK 2
Authentication
It is the process of verifying the identity of a user or information. User authentication
is the process of verifying the identity of a user when that user logs in to a computer system.
Authentication is used by a server when the server needs to know exactly who is accessing
their information or site. Usually, authentication by a server entails the use of a username
and password. Other ways to authenticate can be through cards, retina scans, voice
recognition, and fingerprints.
Authorization
Is a security mechanism used to determine user/client privileges or access levels
related to system resources, including computer programs, files, services, data and
application features. Authorization is normally preceded by authentication for user identity
verification. System administrators (SA) are typically assigned permission levels covering all
system and user resources.
Authentication and Authorization Methods
1. Token- Based Authentication
A Token is a computer-generated code that acts as a digitally encoded signature of a
user. They are used to authenticate the identity of a user to access any website or application
network. Token-based authentication is a two-step authentication strategy to enhance the
security mechanism for users to access a network. The users once register their credentials,
receive a unique encrypted token that is valid for a specified session time. During this
session, users can directly access the website or application without login requirements.
Authentication process via tokens in a web application:
The user submits login credentials to the backend server. Upon the request, the server
verifies the credentials before generating an encrypted JWT with a secret key and sends it
back to the client. On the client-side, the browser stores the token locally using the local
storage, session storage, or cookie storage.
On future requests, the JWT is added to the authorization header prefixed by the
bearer, and the server will validate its signature by decoding the token before proceeding to
send a response. The content of the header would look like this: Authorization: Bearer
<token>. On the logout operation, the token on the client-side is destroyed without server
interaction.
3. Open ID
OpenID Connect 1.0 is a simple identity layer on top of the OAuth 2.0 protocol. It
allows Clients to verify the identity of the End-User based on the authentication performed
by an Authorization Server, as well as to obtain basic profile information about the End-User
in an interoperable and REST-like manner.
OpenID Connect allows clients of all types, including Web-based, mobile, and
JavaScript clients, to request and receive information about authenticated sessions and end-
users. The specification suite is extensible, allowing participants to use optional features
such as encryption of identity data, discovery of OpenID Providers, and logout, when it makes
sense for them.
JB PORTALS 18
FULL STACK DEVELOPMENT - WEEK 2
4. Third party access
Third-party access refers to the process of an organization granting external vendors
and service providers secure access to corporate IT assets for maintenance, administration
and management purposes. Many organizations rely on third-party vendors and managed
service providers to support their internal IT systems, applications and infrastructure.
Outside vendors and service organizations often require privileged access to on-premises
and cloud-based IT systems and business applications to perform routine support and
administrative functions.
Conventional enterprise security solutions and practices, designed to safeguard
traditional corporate teleworkers and nomadic users, aren’t easily extended to third-party
vendors. Many organizations use:
● Enterprise directory services like Microsoft Active Directory to maintain information
about users and resources
● Access management solutions or virtual private network (VPN) solutions to
authenticate and authorize employees accessing corporate applications and IT
services from outside the enterprise network.
Secondly, it reduces password fatigue and the stress associated with having too many
accounts and entering passwords frequently. Some people use LastPass and feel frustrated
when understanding that they have a lot of saved passwords, which number can be even
400! For instance, an area technology specialist will probably have more passwords than an
average Internet user, but even a regular Internet user has dozens, or even hundreds of
accounts.
And thirdly, third-party authentication is done “without noise and dust, and danger”:
it allows your site to run faster, with the use of existing credentials. If users see that they
need to create another pair of “username and password”, they often simply leave the web
page.
5. SAML
SAML is an XML based framework that stands for Security Assertion Markup
Language. Let us see how SAML is used to enable SSO (Single-Sign-On). SSO is a term used
for a type of login method where a company configures all of its web apps in such a way that
the user can log in to all of these apps by just signing in once.
JB PORTALS 19
FULL STACK DEVELOPMENT - WEEK 2
Example:
When one logs in on gmail.com, they can visit YouTube, Google Drive, and other
Google services without having to sign in to each service separately. The SAML
authentication flow is based on two entities –
1. Service Providers (SP) – The SP receives the authentication from the IdP and
grants the authorisation to the user.
2. Identity Providers (IdP) – The IdP authenticates a user and sends their
credentials along with their access rights for the service to the SP.
In the example given above, SP will be Gmail and IdP will be Google. SAML enabled
SSO, and as it is explained above, a user can log in once and the same credentials will be used
to log into other SPs.
SAML Authentication Workflow –
In the example below, the government is the identity provider, and the airline is the
service provider. Your government-issued identification is the SAML assertion. When you
apply for a government ID, you usually need to complete a form, have your picture taken,
and in some circumstances, your fingerprints as well. The government (identity provider)
then stores these identifying attributes in their database and issues you with a physical ID
associated with your identity. In the airline example, when you arrive at the gate, the airline
(service provider) checks your ID (SAML) assertion. The airline accepts your ID as it contains
your details, and the identity card or passport passes scrutiny as a valid document. After
successful authentication, the airline then allows you to board the aircraft.
JB PORTALS 20
FULL STACK DEVELOPMENT - WEEK 2
SAML Request
Some of the important terms in the SAML request are defined below –
1. ID – Identifier for a particular SAML request.
2. Issuer – The name of the service provider (SP).
3. NameID – The username/email address or phone number which is used to
identify a user.
4. AssertionConsumerServiceURL – The SAML URL interface of the SP where the
IP sends the auth token.
SAML Response
A SAML response consists of two parts:
1. Assertion
It is an XML document that has the details of the user. This contains the
timestamp of the user login event and the method of authentication used (eg. 2
Factor Authentication, Kerberos, etc.)
2. Signature
It is a Base64 encoded string which protects the integrity of the assertion. (If
an attacker tries to change the username in the assertion to the victim’s username,
the signature will prevent the hacker from logging in as the user).
6. Multi-factor authentication
Multi-Factor authentication (MFA) is a security technology that requires multiple
methods of authentication from independent categories of credentials to verify a user's
identity for a login or other transaction. Multifactor authentication combines two or more
independent credentials: what the user knows, such as a password that the user has, such as
a security token; and what the user is, by using biometric verification methods.
The goal of MFA is to create a layered defense that makes it more difficult for an
unauthorized person to access a target, such as a physical location, computing device,
network or database. If one factor is compromised or broken, the attacker still has at least
one or more barriers to breach before successfully breaking into the target.
JB PORTALS 21
FULL STACK DEVELOPMENT - WEEK 2
Encryption
Encryption in cryptography is a process by which a plain text or a piece of information
is converted into cipher text or a text which can only be decoded by the receiver for whom
the information was intended. The algorithm that is used for the process of encryption is
known as cipher. It helps in protecting consumer information, emails and other sensitive
data from unauthorized access to it as well as secures communication networks.
Importance of Data Encryption:
The significance of encryption cannot be overstated in any way. Even though your data is
stored in a standard infrastructure, it is still possible for it to be hacked. There’s always the
chance that data will be compromised, but with data encryption, your information will be
much more secure.
Types of Data Encryption:
1. Symmetric Encryption
2. Asymmetric Encryption
Encryption is frequently used in one of two ways i.e. with a symmetric key or with an
asymmetric key.
Symmetric Key Encryption:
There are a few strategies used in cryptography algorithms. For encryption and
decryption processes, some algorithms employ a unique key. In such operations, the unique
key must be secured since the system or person who knows the key has complete
authentication to decode the message for reading. This approach is known as “symmetric
encryption” in the field of network encryption.
JB PORTALS 22
FULL STACK DEVELOPMENT - WEEK 2
Some cryptography methods employ one key for data encryption and another key for
data decryption. As a result, anyone who has access to such a public communication will be
unable to decode or read it. This type of cryptography, known as “public-key” encryption, is
used in the majority of internet security protocols. The term “asymmetric encryption” is used
to describe this type of encryption.
DATA STORES
A Data Store is a connection to a store of data, whether the data is stored in a database
or in one or more files. The data store may be used as the source of data for a process, or
you may export the written Staged Data results of a process to a data store, or both.
It is normally recommended to connect to the data store via the server. When
connecting to files, this means that the files must exist in the server landing area to ensure
that the server will be able to access them. However, it is also possible to pull the data onto
the server using a client connection. See Client-side data stores for more details.
JB PORTALS 23
FULL STACK DEVELOPMENT - WEEK 2
Design methods for Datastores
1. Structured
2. Semi Structured
3. Unstructured
1. Structured data
Structured data is the data which conforms to a data model, has a well define
structure, follows a consistent order and can be easily accessed and used by a person or a
computer program.
Structured data is usually stored in well-defined schemas such as Databases. It is
generally tabular with columns and rows that clearly define its attributes.
SQL (Structured Query language) is often used to manage structured data stored in
databases.
Advantages of Structured Data:
● Structured data have a well-defined structure that helps in easy storage and access of
data
● Data can be indexed based on text string as well as attributes. This makes search
operation hassle-free
● Data mining is easy i.e knowledge can be easily extracted from data
● Operations such as Updating and deleting is easy due to well-structured form of data
● Business Intelligence operations such as Data warehousing can be easily undertaken
● Easily scalable in case there is an increment of data
● Ensuring security to data is easy
Disadvantages
● Limited usage: Data with a predefined structure can only be used for its intended
purpose, which limits its flexibility and usability.
● Limited storage options: Structured data is generally stored in data storage systems with
rigid schemas (e.g., “data warehouses”). Therefore, changes in data requirements
necessitate an update of all structured data, which leads to a massive expenditure of time
and resources.
JB PORTALS 24
FULL STACK DEVELOPMENT - WEEK 2
Example
Google Sheets and Microsoft Office Excel files are the first things that spring to mind
concerning structured data examples. This data can comprise both text and numbers, such
as employee names, contacts, ZIP codes, addresses, credit card numbers, etc.
2. Semi structured
Semi-structured data refers to data that is not captured or formatted in conventional
ways. Semi-structured data does not follow the format of a tabular data model or relational
databases because it does not have a fixed schema. However, the data is not completely raw
or unstructured, and does contain some structural elements such as tags and organizational
metadata that make it easier to analyze..
Semi-structured data (e.g., JSON, CSV, XML) is the “bridge” between structured and
unstructured data. It does not have a predefined data model and is more complex than
structured data, yet easier to store than unstructured data.
Semi-structured data uses “metadata” (e.g., tags and semantic markers) to identify specific
data characteristics and scale data into records and preset fields. Metadata ultimately
enables semi-structured data to be better cataloged, searched and analyzed than
unstructured data.
HTML code, graphs and tables, e-mails, XML documents are examples of semi-
structured data, which are often found in object-oriented databases.
Semi-structured data has the following advantages and disadvantages, such as:
● Semi-structured data is indeed not limited to a single architecture. So, for instance, a
NoSQL database could even hold any format of data and can be easily scaled to store
massive amounts of data. The downside is that this makes analyzing the data much
more difficult. It must be manually processed (which takes hundreds of human hours)
or first structured into a format that computers can comprehend.
● Semi-structured data is far more storable and mobile than entirely unstructured data,
but the storage cost is typically much higher than structured data.
● Semi-structured data is versatile in that it allows you to start changing the schema.
Still, the schema and data are frequently too tightly linked, so when conducting
queries, you primarily have to know already what data you're looking for.
JB PORTALS 25
FULL STACK DEVELOPMENT - WEEK 2
3. Unstructured
Unstructured data, typically categorized as qualitative data, cannot be processed and
analyzed via conventional data tools and methods. Since unstructured data does not have a
predefined data model, it is best managed in non-relational (NoSQL) databases. Another way
to manage unstructured data is to use data lakes to preserve it in raw form.
The importance of unstructured data is rapidly increasing. Recent projections indicate that
unstructured data is over 80% of all enterprise data, while 95% of businesses prioritize
unstructured data management.
Pros
● Native format: Unstructured data, stored in its native format, remains undefined until
needed.
● Fast accumulation rates: Since there is no need to predefine the data, it can be
collected quickly and easily.
● Data lake storage: Allows for massive storage and pay-as-you-use pricing, which cuts
costs and eases scalability.
Cons
● Requires expertise: Due to its undefined/non-formatted nature, data science
expertise is required to prepare and analyze unstructured data. This is beneficial to
data analysts but alienates unspecialized business users who may not fully
understand specialized data topics or how to utilize their data.
● Specialized tools: Specialized tools are required to manipulate unstructured data,
which limits product choices for data managers.
Unstructured data tools
● MongoDB: Uses flexible documents to process data for cross-platform applications
and services.
● DynamoDB: Delivers single-digit millisecond performance at any scale via built-in
security, in-memory caching and backup and restore.
● Hadoop: Provides distributed processing of large data sets using simple
programming models and no formatting requirements.
● Azure: Enables agile cloud computing for creating and managing apps through
Microsoft’s data centers.
JB PORTALS 26
FULL STACK DEVELOPMENT - WEEK 2
UI & UX
UI refers to the screens, buttons, toggles, icons, and other visual elements that you
interact with when using a website, app, or other electronic device. UX refers to the entire
interaction you have with a product, including how you feel about the interaction. While UI
can certainly have an impact on UX, the two are distinct, as are the roles that designers play.
Developing a product that people love often requires both good UI and good UX. For
example, you could have a banking app that looks great and has intuitive navigation (UI). But
if the app loads slowly or makes you click through numerous screens to transfer money (UX
UX designers focus their work on the experience a user has with a product. The goal
is to make products that are functional, accessible, and enjoyable to use. While the term UX
often applies to digital products, it can also be applied to non-digital products and services
(like a coffee pot or a transportation system). Common tasks for a UX designer might include:
● Conducting user research to identify any goals, needs, behaviors, and pain points
involved with a product interaction
● Developing user personas based on target customers
● Creating user journey maps to analyze how a customer interacts with a product
● Building wireframes and prototypes to hone in on what the final product will look like
● Performing user testing to validate design decisions and identify problems
● Collaborating with stakeholders, UI designers, and developers
Skills
UI and UX designers have some skills in common, but each role also requires its own
unique skill set.
JB PORTALS 27
FULL STACK DEVELOPMENT - WEEK 2
Design principles for – UI / UX
Decide content prioritization — Wireframes naturally reveal space constraints and the
hierarchy of elements on the page, without relying on the content itself. Seeing the elements
laid out anonymously will help everyone decide if the right weight is given to the most
important content.
Test usability with users — When you’re testing out a new idea with someone, they don’t
need to see every little detail for you to determine if the idea is going to work. Wireframes
give you just enough to work with so that you can validate your approach or pinpoint where
adjustments are needed.
JB PORTALS 28
FULL STACK DEVELOPMENT - WEEK 2
Technology, tools and frameworks for application development
A software development tool is a computer program that is used by programmers to
create or build other software. They enable programmers to develop stable software as per
the needs or goals of a customer.
A framework, on the other hand, is like a blueprint with pre-built components which
makes it fast and convenient to build production-ready applications.
Front-End Frameworks
1. Bootstrap
JB PORTALS 29
FULL STACK DEVELOPMENT - WEEK 2
Web Application Frameworks
2. Node.js
3. Django
Django is a free, open-source, and high-level Python framework that promotes rapid
development and pragmatic software design. The framework is developed by experienced
developers and takes care of all the hassles related to web development, allowing developers
to focus on creating the app.
It is considered as one of the most secure web frameworks as it is one of the fastest to react
to new vulnerabilities.
JB PORTALS 30
FULL STACK DEVELOPMENT - WEEK 2
Django Features
• It uses Python – one of the most popular programming languages
• Django offers high security
• It is very simple and easy to use
• Django offers high Scalability
• Provides Rapid Development
• It suits any web application project
Top Websites using Django
• Instagram
• Spotify
• YouTube
• DropBox
• Pinterest
4. Angular JS
AngularJS is an open-source and JavaScript-based framework that is used by
developers to design web applications dynamically. Maintained by Google and by a
community of individuals and corporations, it is aimed at addressing the challenges
encountered in developing single-page applications.
Angular.js Features:
• It is fully expandable and works easily with other libraries.
• Enables you to replace or edit each feature as per project needs
• It works well with data-driven applications
• It offers some of the advanced features, such as directive, form validation, localization,
deep linking, dependency injection, reusable components, data binding.
• AngularJS works on both mobile and desktop browsers, such as Chrome, Safari,
Internet Explorer, and Firefox.
• It offers built-in protection against basic security holes
Top Websites using Angular.js
• PayPal
• Netflix
• Upwork
• Lego
• The Guardian
JB PORTALS 31
FULL STACK DEVELOPMENT - WEEK 2
5. React JS
React JS, also known as just React, is an open-source JavaScript library. It allows you
to develop front-end or GUI of web applications. It is used for building web apps, creating
dynamic libraries, and for building UI’s that are perfectly equipped to render large datasets.
React JS combines the speed of JavaScript and uses a new approach of rendering web pages
to make them dynamic and responsive.
React JS Features:
• It is SEO-friendly
• React JS is a powerful tool that allows you to easily break down complex UI’s
• It uses JSX that allows you to write HTML within JavaScript
• It enables you to store everything that changes in a single place
• Ensures the unidirectional flow of data
• It is used by giants like Uber, Airbnb, Facebook, Instagram, Netflix, Udemy, and Twitter
• React JS has a fully component-based architecture
• It allows developers to reuse the code
• It is faster as compared to other libraries
• Makes it easier to learn React Native and mobile app development
JB PORTALS 32
FULL STACK DEVELOPMENT - WEEK 2
7. GitHub
GitHub is one of the best software development frameworks and tools to learn. It is a
powerful collaboration tool and a website of repositories that enables developers to build
applications and software, review code, manage projects, and host the code. This tool offers
the right tool for different development jobs.It allows developers to share their work without
any effort or cost associated with maintaining their own website. With this tool, developers
can simply upload their project to GitHub and anyone will be able to download and
contribute to it.
GitHub Features:
• GitHub’s project management tools enable you to coordinate easily and stay aligned
• It runs on Windows and Mac OS.
• It allows developers to do all coding in a single place
• Developers can host their documentation directly from repositories
• It enables developers to easily document their code and can host the same from the
repositories
• Some of its unique features include code security, access control, and integration with
other tools
• It is used by some developers for experimenting with new programming languages in
their projects
• It can be hosted on servers and cloud platform
JB PORTALS 33
FULL STACK DEVELOPMENT - WEEK 2
MEAN stack
MEAN stack also comprises four different technologies – MongoDB, ExpressJS,
Angular, and NodeJS. It follows a three-tier architecture where Node and Express handle the
backend. Angular allows organizations to develop web app frontend along with MongoDB’s
database excellence and is popular for developing dynamic web applications.
MEVN stack
MEVN stack is simply MEAN stack with Angular replaced by VueJs. VueJs is a
lightweight and flexible framework for frontend development that enables the full-stack
capabilities of MEVN. Further, VueJS comes with pre-built additive APIs, which help with
flexibility for component logic in the application.
LAMP stack
LAMP stack is different from other tech stacks at its core with no Javascript. It is a
tech stack with four major components- Linux, Apache HTTP server, MySQL, and Python.
However, the P part of LAMP encapsulates three different scripting languages- PHP, Perl, and
Python.
JB PORTALS 34
FULL STACK DEVELOPMENT - WEEK 2
EXTRA QUESTIONS FROM PREVIOUS YEAR QUESTION PAPERS
1. BookMyShow is an online movie ticket booking application that helps its user to
book movie tickets by logging in. Users can find their movie from the listings. After
booking is confirm, the details are sent to user. Identify and write the user stories
for this application. (12 MARKS)
1. Sign-up:
As an unauthorized user, I want to sign up for the BookMyShow application through a sign-
up form, so that I can access to movies list.
Acceptance Criteria:
1. While signing up-Use Name, Username, Email, and Password and Confirm Password.
2. If sign up is successful, it will get automatically logged in.
3. If I sign up with an incorrect detail which are specified in step1, I will receive an error
Message for incorrect information.
4. If we are trying to sign up with an existing email address, we will receive an error
Message saying "email exists."
2. Login
As an authorized user, I want to log in for BookMyShow application, so that I can have
the application.
Acceptance Criteria:
1.While logging in, Username and password are required.
2.After successful log in, it will be redirected to the main page.
3.If we are trying to login with incorrect username or password, then error message will be
displayed as "invalid login".
3. Searching a movie
As an authorized user, I want to search for a movie in BookMyShow application, so that I can
book a movie ticket in a specific theater.
Acceptance Criteria:
1. While searching, Valid theater should be specified.
2. Checking for availability of a movie ticket on specific date always should be current date
and ahead of the current date.
4. Booking ticket
As an authorized user, I want to book a ticket in BookMyShow application, so that I can
reserve the seat in a specific theater and date.
Acceptance Criteria:
1. While booking, accommodation should be allotted according to the room size.
2. One should select the valid payment method based on the price of reserved room.
3. After successful payment one should get the booking details to registered mobile Number
and E-mail id.
JB PORTALS 35
FULL STACK DEVELOPMENT - WEEK 2
5. Logout
As an authorized user, I want to log out of application, so that I can prevent unauthorized
access of my profile.
Acceptance Criteria:
1. When I log out of my account, I will be redirected to the log-in page.
JB PORTALS 36
FULL STACK DEVELOPMENT - WEEK 2
Test Cases for the Payment Gateway:
• Verify that the payment gateway is secure and encrypts user information to prevent
fraud.
• Check that the payment gateway accepts different currencies and displays the correct
conversion rates.
• Ensure that the payment gateway sends a confirmation email or SMS to the user after
the transaction is complete.
By following these test cases, you can ensure that your online ticket booking system is
reliable and user-friendly. Thorough testing will help you identify and fix any issues before
your system goes live, ensuring a positive experience for your customers.
3. Swiggy is an online food ordering application that helps its users to buy variety of
authentic food items. This application allows users to log in for ordering food. Users
can search for their favorite food based on rating or price. Users can select the items
and add to the cart. Once the selection made go to payment page and make payment,
write the user stories for this application. ( 12 MARKS )
1. Registration Sign-up:
As a foodie, I want to sign up for Swiggy application through a New user form, so that I can
get access to order food of my favorite.
Acceptance Criteria:
• While signing up-Valid Phone Number/Email Id and OTP/Password.
• If sign up is successful, it will get automatically logged in.
• If I am trying to sign up with an invalid phone number/Email Id, I will receive an error
message to enter a valid information.
• If we are trying to sign up with an existing phone number/Email Id, we will receive
an error message saying "you are already registered."
2. Login:
As an authorized customer, I want to login for application, so that I can have access to the
application for searching and ordering food.
Acceptance Criteria:
• While logging in, Phone number/Email Id and OTP/Password are required.
• After successful log in, it will be redirected to the main page.
• If we are trying to login with incorrect mobile number/Email Id or OTP/Password, then
error message will be displayed as "invalid credentials".
JB PORTALS 37
FULL STACK DEVELOPMENT - WEEK 2
3. Order Creation
As a customer, I should be able to browse through the menu and look at various food
restaurants and along with their price.
As a customer, I should be able to select items from the menu and add them to cart.
As a customer, I should have cart containing all the chosen items.
As a customer, I should be able to remove items from my cart or increase item count.
As a customer, I should be able to cancel my entire order.
As a customer, I should be able to view the items bill for my order along with price of each
item.
As a customer, I should be able to see the listing of restaurants selling food items.
Acceptance Criteria:
• Categorized menu with prices is visible and enabled with selection choices as soon as the
customer chooses items, the order is created in the database and is visible to the
customer.
• See a thumbnail image for each product
• Click to view details for product
• Add to cart from detail page
• Search for a item View food item by category
4. Order completion
As a customer, I should be able to provide feedback for service and the food.
Acceptance Criteria
All the feedbacks are recorded in database for further improvement.
5. Logout
As a customer, I want to log out of application, so that I can prevent unauthorized access
profile.
Acceptance Criteria:
When I log out of my account, I will be redirected to the log-in
JB PORTALS 39
FULL STACK DEVELOPMENT - WEEK 2
5. Hotel Booking is an online Hotel room booking application that helps the users to
book a room for staying at particular place across Karnataka. This application allows
users to log in for booking a room. Users can search for the room at a hotel for a
specific location. Once found, user can check the availability of a room for specific
dates. Users can book a hotel for required date. Once booked, user can get the booking
details. Identify and write the user stories for this application. (12 MARKS)
1. Registration Sign-up:
As an unauthorized user, I want to sign up for the HotelBooking application through a sign-
up form, so that I can access to book a room.
Acceptance Criteria:
• While signing up-Use Name, Username, Email, and Password and Confirm Password.
• If sign up is successful, it will get automatically logged in.
• If I sign up with an incorrect detail which are specified in step1, I will receive an error
message for incorrect information.
• If we are trying to sign up with an existing email address, we will receive an error
message saying "email exists."
2. Login
As an authorized user, I want to log in for HotelBooking application, so that I can have access
to the application
Acceptance Criteria:
• While logging in, Username and password are required. After successful log in, it will
be redirected to the main page.
• If we are trying to login with incorrect username or password, then error message
will be displayed as "invalid login".
3. Searching a Room
As an authorized user, I want to search for a room in Hotel Booking application, so that I can
book a room in a specific location
Acceptance Criteria:
• While searching. Valid location should be specified.
• Checking for a room at specific date always should be current date and ahead of the
current date.
4. Booking Room
As an authorized user, I want to book a room in Hotel Booking application, so that I can
reserve the room in a specific location and date.
Acceptance Criteria:
• While Booking, accommodation should be allotted according to the room size.
• One should select the valid payment method based on the price of reserved room.
• After successful payment one should get the booking details to registered mobile
number and E-Mail id.
JB PORTALS 40
FULL STACK DEVELOPMENT - WEEK 2
5. Logout
As an authorized user, I want to log out of Hotel Booking application, so that I can prevent
unauthorized access of my profile.
Acceptance Criteria:
• When I log out of my account, I will be redirected to the log-in page.
7. Flipkart is an online shopping application that helps its users to buy variety of
authentic products. This application allows users to log in for buying products. Users
can search for a product, sort the product list based on rating or price. Users can select
the items and add them to the cart. Once the selection is done, users can go to the cart
page for payment. Identify and write the user stories for this application. (12 MARKS)
1. Registration Sign-up:
As a shopper, I want to sign up for the Flipkart application through a new user form, so that
I can get access to buy a variety of products.
JB PORTALS 41
FULL STACK DEVELOPMENT - WEEK 2
Acceptance Criteria:
• While signing up-Valid Phone Number/Email Id and OTP/Password.
• If sign up is successful, it will get automatically logged in.
• If I am trying to sign up with an invalid phone number/Email Id, I will receive an error
message to enter a valid information.
• If we are trying to sign up with an existing phone number/Email Id, we will receive
an error message saying "you are already registered."
2. Login
As an authorized shopper, I want to log in for Flipkart application, so that I can have access
to the application for searching and buying products.
Acceptance Criteria:
• While logging in, Phone number/Email Id and OTP/Password are required.
• After successful log in, it will be redirected to the main page.
• If we are trying to login with incorrect mobile number/Email Id or OTP/Password,
then error message will be displayed as "invalid credentials".
4. Review a Cart
As a Shopper I want to review my cart so I can make adjustments prior to checkout
Acceptance Criteria:
• View quantities and items in the cart
• See a total cost before tax and shipping
• Remove items
• Adjust quantity of items
• Click to navigate to a product detail page
JB PORTALS 42
FULL STACK DEVELOPMENT - WEEK 2
5. Check out
As a Shopper I want to check out so I can get my products shipped to me.
Acceptance Criteria:
• Trigger checkout from any page, if there are items in the cart
• Enter a shipping address
• Enter a billing address
• Enter a credit card number
• Show total including tax and shipping before finalizing
• Show Confirmation message after finalizing
• Verify payment through our payment processor
6. Review Orders
As a Shopper I want to review my orders so I can see what I have purchased in the past.
Acceptance Criteria:
• View a list of open and completed orders
• See the status of the order
• Navigate to the details of the order
• Include a tracking number if the order is shipped but not delivered
• Contact customer service about an order from the details page
7. Logout
As a Shopper, I want to log out of Flipkart application, so that I can prevent unauthorized
access of my profile.
Acceptance Criteria:
• When I log out of my account, I will be redirected to the log-in page.
JB PORTALS 43
FULL STACK DEVELOPMENT - WEEK 2
Test Cases for Flipkart Website Search Page
• Check that the products displayed are related to what was searched for.
• Check that the products should display an image, name, price, and maybe customer
ratings and number of reviews.
• Check the more relevant product for the search term is displayed on the top for a
particular search term.
• Check that all items on the next page are different from the previous page, Le., no
duplicates.
• Check that when both sorts and filters have been applied, they remain as we paginate or
more products are loaded.
• Check that count of products is correctly displayed on the search result page for a
particular search term.
• Check that filtering functionality correctly filters products based on the filter applied.
• Check that filtering works correctly on category pages.
• Check that filtering works correctly on the search result page.
• Check that the correct count of total products is displayed after a filter is applied.
• Check that all the sort options work correctly - correctly sort the products based on the
sort option chosen.
• Check that sorting works correctly on the category pages. Check that sorting works
correctly on the search result page.
• Check that sorting works correctly on the pages containing the filtered result, after
applying filters.
• Check that the product count remains intact irrespective of the sorting option applied.
JB PORTALS 44
FULL STACK DEVELOPMENT - WEEK 2
Payment Page Test Cases
• Check that After fill the shipping address and payment, the product is purchased
successfully.
• Check that Different payment types should be present, e.g., Credit Card, PayPal, Bank
Transfers, Installments, etc.
• Check the security of the client's card details when entered for payment.
9. Passwords alone fail to provide protection because they can be guessed and
phished. How to strengthen authentication for a banking portal?
Digital banking (online and mobile banking) makes managing finances easy. With
digital banking technology, you can pay bills, deposit checks and transfer money from
wherever you’re located.
Banks utilize various security measures to protect customer information. Those measures
can include:
• 128-bit or 256-bit data encryption
• Encrypted email messaging
• Automatic logout functionality for online and mobile banking
• Two-factor authentication
• Continuous account monitoring
• Electronic signature verification
Customers can take some steps on their own to keep their financial and personal details out
of the hands of hackers:
• Choose Strong and Unique Passwords: Update your online banking passwords
regularly. Change them every three to six months to lower the odds of your password being
stolen or decoded by hackers.
JB PORTALS 45
FULL STACK DEVELOPMENT - WEEK 2
• Enable Two-Factor Authentication: Two-factor, or multifactor, authentication can
add a second layer of security verification when logging in to your online or mobile banking
account. First, you enter your login name and password and then you have to pass a second
security test.
• Steer Clear of Public Wi-Fi: It’s best to avoid using online or mobile banking when
you’re on a public Wi-Fi network.
• Sign Up for Banking Alerts: Banking alerts notify you when certain actions occur.
You receive near-instant notifications of any potentially fraudulent or suspicious activity.
• Be Wary of Phishing Scams: Phishing is one of the most common methods identity
thieves use to gain access to personal and financial information. This kind of scam usually
involves tricking you into giving up your information.
• Choose Trustworthy Financial Apps: If you plan to use your bank’s mobile app,
make certain you’re using its official app. The best way to do that is to download the app
from your bank’s website.
JB PORTALS 46
FULL STACK DEVELOPMENT - WEEK 2
Example: Movie application
Monolith Architecture
The salient features of monolith applications are:
• Released, or taken to production, once every few weeks or months or years
• Generally, have a wide range of features and functionality
• Have a development team of over 50 people working on them
• Debugging problems that arise in them, is a huge challenge
Movie Application
LARGEDB
As we can see the databases are also separated out. Microservices architecture involves a
number of small, well-designed microservices, that exchange messages among themselves.
JB PORTALS 47