Module 5 - Introduction To WebApp Design
Module 5 - Introduction To WebApp Design
Overview
Web application design is an important stage when building a web application. It focuses on the look
and feel of the web application. The design stage encompasses several different aspects, including
user interface design (UI), usability (UX), content production, and graphic design.
Objectives
To better understand what you will need during the development process, it helps to know how web
applications work. A web application is designed to execute a number of functions at the request of
the client and/or browser. The client makes a request through the Hypertext Transfer Protocol (HTTP)
network, the server processes that request, and the application tells it what response to send back to
the browser.
This is called client-server architecture, and is the basic structure of all web applications. Your
challenge in development is to figure out how to process each request and return the proper
response. This is done in three main layers.
1. Front-end layer: Creates the appearance and feel of the application through technologies such
as HTML, CSS, and JavaScript.
2. Application layer: Accountable for delivering responses back to the users.
3. Database storage layer: The location where data is stored.
1. Simplicity
Content should be informative but to the point and should use a delivery mode (e.g., text,
graphics, video, audio) that is appropriate to the information that is being delivered.
Architecture should achieve WebApp objectives in the simplest possible manner.
Navigation should be straightforward and navigation mechanisms should be naturally
obvious to the end user.
Functions should be easy to use and easier to understand.
2. Consistency
This design goal applies to virtually every element of the design model.
Content should be constructed consistently
e.g., text formatting and font styles should be the same across all text documents;
Graphic art should have a consistent look, color scheme, and style)
3. Identity
Establish an “identity” that is appropriate for the business purpose.
4. Robustness (Strength)
The user expects robust content and functions that are relevant to the user’s needs.
5. Navigability
Navigation should be simple and consistent.
It should also be designed in a manner that is predictable.
The user should understand how to move about the WebApp without having to search for
navigation links or instructions.
6. Visual appeal
The look and feel of content, interface layout, color coordination, the balance of text,
graphics and other media, navigation mechanisms must appeal to end-users
7. Compatibility
WebApp will be used in a variety of environments (e.g., different hardware, Internet
connection types, operating systems, browsers)
It must be designed to be compatible with each.
1. FIRST DISCUSSION
The first step aims to give an overview of the problem we want to be solved and/or our needs.
If the needs aren’t well understood, it will lead to a failure in building a web app that aims to serve
the purposes. The following questions have to be answered once this first step is done:
2. REQUIREMENTS ANALYSIS
In the previous step, the goal was to identify the objectives of web app implementation. The
objectives can be complex, the business logic being often quite complex in general. It is then
important at this stage that these complex objectives can be broken down into more
manageable tasks and therefore easier to implement, validate, and test.
At the end of this step, the following tasks should have been completed:
Order each task in order to know which one should/must go before another
Analyze dependency between all the tasks
Identify every task that can be done in parallel
Elaborate a timeline according to available resources or in case it is possible to have
all the resources we need, identify the number of resources needed, and then plan the
project
Make an architectural choice.
Generally, at this stage, the financial and technical side of the web application creation is
settled down and we have an idea of the budget.
5. THE DEVELOPMENT
This is the most well-known step. Once the product requirements document is established, the
development phase can start. The goal of this phase is to create an application that meets
the needs identified in the previous steps, and as the needs generally evolve and new ideas
of implementation may arise during the implementation phase, it is generally advised to use a
methodology that allows flexibility and proactivity.
The project manager: manage the project through its completion, mend the gap between the non-
technical and the technical teams
The product owner: the person who will be responsible to validate that the deliverables meet the
organization’s expectations and needs
Back-end developer
Front-end developer (UI/UX)
Quality Assurance Tester
System Administrator
The Internet is no longer about static web pages and longer loading times. Over time, the Internet
has made a shift towards active user engagement as well as extended functionality by means of visually
pleasing and powerful web applications.
A web application is just like a normal computer application except that it works over the Internet.
As everyone is on the web these days, most developers are looking to benefit from web apps and attract
as many users as possible via opportune offerings.
Client-side Code - The code that is in the browser and responds to some user input
Server-side Code - The code that is on the server and responds to the HTTP requests
A web developer (team) developing the web application decides as to what the code on the server will do
with respect to the code in the browser. For writing server-side code, C#, Java, JavaScript, Python, PHP,
Ruby, etc. are used.
Any code that is able to respond to HTTP requests has the ability to run on a server. The server-
side code is responsible for creating the page that the user requested as well as storing different types of
data, including user profiles and user input. It is never seen by the end-user.
A combination of CSS, HTML, and JavaScript is used for writing the client-side code. This code is
parsed by the web browser. Unlike the server-side code, client-side code can be seen as well as modified
by the user. It reacts to user input.
The client-side code communicates only via HTTP requests and is not able to read files off a server
directly.
There are three primary types of web application architecture. Each one of them is explained as
follows:
Single-Page Applications (SPAs) – Instead of loading completely new pages from the server
each time for a user action, single page web applications allow for a dynamic interaction by
means of providing updated content to the current page. SPAs are designed in a way so
that they request for most necessary content and information elements. This leads to the
procurement of an intuitive as well as interactive user experience.
Microservices – These are small and lightweight services that execute a single functionality.
The Microservices Architecture framework has a number of advantages that allows developers
to not only enhance productivity but also speed up the entire deployment process.
The Serverless Architecture is best when the development company doesn’t want to manage
or support the servers as well as the hardware, they have developed the web application for.
1. Input Controls: buttons, text fields, checkboxes, radio buttons, dropdown lists, list boxes, toggles,
date field
2. Navigational Components: breadcrumb, slider, search field, pagination, slider, tags, icons
Informational Components: tooltips, icons, progress bar, notifications, message boxes, modal
windows
3. Containers: accordion
There are times when multiple elements might be appropriate for displaying content. When this
happens, it’s important to consider the trade-offs. For example, sometimes elements that can help save
you space, put more of a burden on the user mentally by forcing them to guess what is within the dropdown
or what the element might be.
Keep the interface simple - The best interfaces are almost invisible to the user. They avoid unnecessary
elements and are clear in the language they use on labels and in messaging.
Create consistency and use common UI elements - By using common elements in your UI, users feel
more comfortable and are able to get things done more quickly. It is also important to create patterns in
language, layout and design throughout the site to help facilitate efficiency. Once a user learns how to do
something, they should be able to transfer that skill to other parts of the site.
Be purposeful in page layout - Consider the spatial relationships between items on the page and
structure the page based on importance. Careful placement of items can help draw attention to the most
important pieces of information and can aid scanning and readability.
Strategically use color and texture. You can direct attention toward or redirect attention away from items
using color, light, contrast, and texture to your advantage.
Make sure that the system communicates what’s happening - Always inform your users of location,
actions, changes in state, or errors. The use of various UI elements to communicate status and, if
necessary, next steps can reduce frustration for your user.
Think about the defaults - By carefully thinking about and anticipating the goals people bring to your
site, you can create defaults that reduce the burden on the user. This becomes particularly important
when it comes to form design where you might have an opportunity to have some fields pre-chosen or
filled out.
Functional Design
• Users of modern WebApps expect that robust content will be coupled with sophisticated functionality
• This functionality will allow them to magnify their understanding of content, characterize content in
different ways, personalize their interaction, and provide added value to their website visit.
• The designer must consider the substantial constraints imposed by the Web infrastructure—such as a
distributed model (which complicates aspects like information handling and user responsiveness), security
issues, and the limited interface model inherent in Web browsers.
Group yourselves with 5 members each respectively. Based from what you’ve learned so far
from our previous lessons, apply and create your own website (Please refer to different
websites that we’ve tackled from the previous lessons) and present it in our next online
virtual class.