You are on page 1of 68

1

` ASSIGNMENT 1 FRONT SHEET

Qualification BTEC Level 5 HND Diploma in Computing

Unit number and title 13: Website Design & Development

Submission date 5/3/2024 Date Received 1st submission 7/3/2024

Re-submission Date Date Received 2nd submission

Student Name Student ID BS

Class SE06201 Assessor name NGUYEN VAN QUANG

Student declaration

I certify that the assignment submission is entirely my own work and I fully understand the consequences of plagiarism. I understand that
making a false declaration is a form of malpractice.

Student’s signature NHAT

Grading grid

P1 P2 P3 P4 M1 M2 M3 D1
2

r Summative Feedback: r Resubmission Feedback:

Grade: Assessor Signature: Date:


Internal Verifier’s Comments:

Signature & Date:


3

Catalog
A. INTRODUCTION........................................................................................................................................................................4
B. CONTENT...................................................................................................................................................................................4
1. IDENTIFY THE PURPOSE AND TYPES OF DNS, INCLUDING EXPLANATIONS ON HOW DOMAIN NAMES ARE
ORGANISED AND MANAGED. (P1)...........................................................................................................................................4
1.1. Website:.....................................................................................................................................................................................4
1.2 How the website works...............................................................................................................................................................5
1.3 Domain Name System................................................................................................................................................................6
2. EXPLAIN THE PURPOSE AND RELATIONSHIPS BETWEEN COMMUNICATION PROTOCOLS, SERVER
HARDWARE, OPERATING SYSTEMS AND WEB SERVER SOFTWARE WITH REGARDS TO DESIGNING,
PUBLISHING AND ACCESSING A WEBSITE (P2)....................................................................................................................8
2.1 Web communication protocols...................................................................................................................................................8
2.2 Server hardware........................................................................................................................................................................19
2.3 Operating systems.....................................................................................................................................................................19
2.4 Web server software..................................................................................................................................................................22
2.5 Relationship between communication protocols, server hardware, operating systems and web server software with regards
to designing, publishing and accessing a website...........................................................................................................................24
3. DISCUSS THE CAPABILITIES AND RELATIONSHIPS BETWEEN FRONT-END AND BACK-END WEBSITE
TECHNOLOGIES AND EXPLAIN HOW THESE RELATE TO PRESENTATION AND APPLICATION LAYERS. (P3)...25
3.1 Front-end technologies such as HTML, CSS, JS… Give advantages and disadvantages........................................................25
3.2 Back-end technologies such as .NET, PHP, Java, Python... Định nghĩa, công dụng,Give advantages and disadvantages......27
3.3 Explain how these relate to presentation and application layers...............................................................................................30
4. DISCUSS THE DIFFERENCES BETWEEN ONLINE WEBSITE CREATION TOOLS AND CUSTOM BUILT SITES
WITH REGARDS TO DESIGN FLEXIBILITY, PERFORMANCE, FUNCTIONALITY, USER EXPERIENCE (UX) AND
USER INTERFACE (UI) (P4)........................................................................................................................................................32
4.1 Some of tool to create online website.......................................................................................................................................32
4.2 Discuss the differences between online website creation tools and custom built sites with regards to design flexibility,
performance, functionality, User Experience (UX) and User Interface (UI)..................................................................................32
5. EVALUATE THE IMPACT OF COMMON WEB DEVELOPMENT TECHNOLOGIES AND FRAMEWORKS WITH
REGARDS TO WEBSITE DESIGN, FUNCTIONALITY AND MANAGEMENT. (M1)..........................................................34
5.1 State the role of framework in job website design and development.......................................................................................34
5.2 List a few frameworks for front end and back end...................................................................................................................35
5.3 List the characteristics, advantages and disadvantages of 2 frameworks for front end and 2 frameworks for back end.........35
5.4 Choose the appropriate framework for the scenario and give reasons......................................................................................38
6. REVIEW THE INFLUENCE OF SEARCH ENGINES ON WEBSITE PERFORMANCE AND PROVIDE EVIDENCE-
BASED SUPPORT FOR IMPROVING A SITE’S INDEX VALUE AND RANK THROUGH SEARCH ENGINE
OPTIMISATION (M2)...................................................................................................................................................................39
6.1 Define SEO...............................................................................................................................................................................39
6.2 Role...........................................................................................................................................................................................39
6.3 Types of SEO............................................................................................................................................................................40
6.4 How are search engine rankings established?...........................................................................................................................41
6.5 SEO standard website design criteria........................................................................................................................................42
6.6 Impact of search engines on website performance...................................................................................................................43
6.7 Analyze ranking factors that affect website performance and how page loading speed affects SEO......................................44
6.8 Provide examples demonstrating how to improve search rankings through SEO....................................................................45
7. EVALUATE A RANGE OF TOOLS AND TECHNIQUES AVAILABLE TO DESIGN AND DEVELOP A CUSTOM
BUILT WEBSITE (M3).................................................................................................................................................................46
7,1 About tools:...............................................................................................................................................................................46
7.2 Technically:...............................................................................................................................................................................50
8. JUSTIFY THE TECHNIQUES, MANAGEMENT SERVICES, TOOLS AND SOFTWARE CHOSEN TO REALISE A
CUSTOM BUILT WEBSITE. (D1)...............................................................................................................................................54
C. CONCLUSION..........................................................................................................................................................................56
D. REFERENCES...........................................................................................................................................................................57
4

Figure:

Figure 1.
Wedsite.................................................................................................................................. .........5

Figure 2. website works.................................................................................................................................5

Figure 3 DNS.................................................................................................................................. ................7

Figure 4. communication protocols...............................................................................................................9

Figure 5. Server hardware.............................................................................................................................9

Figure 6. Operating systems........................................................................................................................10

Figure 7. Web server software....................................................................................................................10

Figure 8. HTML, CSS and JS..........................................................................................................................14

Figure 9. NET, PHP,Java, Python..................................................................................................................17

Table:

Table 1. Compare...........................................................................................................................................21

A. INTRODUCTION

I'm on a team where I'm tasked with creating an engaging presentation to train junior staff on basic
web technologies, including hosting, site management, and server technology. The presentation will
not only explain the architectural mechanics in this area, but also highlight the impact of these
technologies on website design, functionality, management and performance.
5

B. CONTENT

1. IDENTIFY THE PURPOSE AND TYPES OF DNS, INCLUDING EXPLANATIONS ON


HOW DOMAIN NAMES ARE ORGANISED AND MANAGED. (P1)

1.1. Website:

- The Web is the common name for the World Wide Web, a subset of the Internet that includes pages that
can be accessed using a Web browser. Websites often contain text, images, videos and many other content
formats, stored on the server. [1]

Figure 1. Wedsite

1.2 How the website works.

Figure 2. website works

1. Domain Name: The user enters the domain name (e.g...) in the web browser.

2. DNS Lookup: The browser sends a request to a DNS (Domain Name System) server to translate the
domain name into an IP (Internet Protocol) address. The IP address uniquely identifies the web server
where the website is hosted.
6

3. Establishing Connection: The browser establishes a connection with the web server using the IP
address obtained from the DNS lookup. This connection is typically made over the HTTP (Hypertext
Transfer Protocol) or HTTPS (HTTP Secure) protocol.

4. Request and Response: The browser sends an HTTP request to the web server, specifying the specific
web page or resource it wants to retrieve (e.g., index.html). The request may also include additional
information such as cookies or user input.

5. Server Processing: The web server receives the HTTP request and processes it. It locates the requested
resource on its file system or generates it dynamically based on the server-side code.

6. Resource Retrieval: The web server retrieves the requested resource, which could be an HTML file,
CSS stylesheet, JavaScript file, image, video, or any other type of file.

7. Response Generation: The web server generates an HTTP response containing the requested resource.
The response includes metadata, such as the response status code (e.g., 200 for success, 404 for not
found) and headers.

8. Transmission: The web server sends the HTTP response back to the browser over the established
connection.

9. Rendering: The browser receives the HTTP response and starts rendering the web page. It interprets
the HTML markup, applies CSS styles, and runs any JavaScript code to display the content and
functionality of the website.

10. Additional Requests: As the browser renders the web page, it may encounter additional resources
referenced in the HTML, such as images, stylesheets, or scripts. It sends additional HTTP requests to
fetch these resources from the web server.

11. Interaction: The user can interact with the website by clicking links, submitting forms, or performing
other actions. These interactions trigger additional HTTP requests and responses, enabling dynamic
content and interactivity.

12. Website Updates: Website owners can update their websites by modifying the underlying files or
databases on the web server. When changes are made, subsequent requests to the website will reflect
the updated content. [2]
7

1.3 Domain Name System

Figure 3 DNS

1. What is a domain name?


A domain name is a unique, human-readable label that is used to identify and locate websites or
other resources on the internet. It provides a more user-friendly way to access websites compared
to using IP addresses. Domain names often consist of a combination of words and an extension
(such as .com, .org, .net) that indicates the type or category of the website.

2. How are domain names organized and managed?


Domain names are organized hierarchically from right to left, with the top-level domain (TLD) on
the rightmost side and subdomains on the left. The organization and management of domain names
are overseen by various organizations. The Internet Corporation for Assigned Names and Numbers
(ICANN) is responsible for coordinating and managing the overall domain name system, including
the assignment and administration of TLDs. ICANN accredits domain registrars, which are entities
that offer domain name registration services to individuals and organizations.

3. What is the Domain Name System (DNS)?


The Domain Name System (DNS) is a decentralized system that translates domain names into IP
addresses. It acts as a directory or phonebook for the internet, allowing users to access websites by
using domain names instead of remembering complex IP addresses. DNS enables the mapping of
human-readable domain names to their corresponding IP addresses, facilitating the routing of
network traffic to the appropriate destination.

4. Purpose and types of DNS:

 DNS Resolution: The primary purpose of DNS is to resolve domain names to their associated IP
addresses. When a user enters a domain name in a web browser, the DNS system is responsible for
translating that domain name into the corresponding IP address, enabling the browser to establish a
connection with the appropriate web server.
8

 DNS Management: DNS also enables the management of various DNS records associated with a
domain name, such as A records (mapping a domain to an IP address), MX records (specifying mail
server information), CNAME records (aliasing one domain to another), and more.

5. How does DNS work?


The DNS system works through a series of steps:

 When a user enters a domain name in a web browser, the browser sends a DNS query to a recursive
DNS server.

 The recursive DNS server checks its cache to see if it has the IP address corresponding to the
requested domain name. If not, it acts as a client and sends a query to other DNS servers to resolve the
domain name.

 The recursive DNS server queries the root DNS servers to determine the authoritative DNS servers
responsible for the TLD of the requested domain.

 The recursive DNS server then queries the appropriate TLD DNS server to obtain the IP address of
the authoritative DNS server for the specific domain.

 Finally, the recursive DNS server queries the authoritative DNS server for the domain and receives
the IP address associated with the domain name. It caches this information for future use and returns
the IP address to the user's browser.

 The user's browser can then establish a connection with the web server associated with the IP address,
enabling the user to access the desired website

2. EXPLAIN THE PURPOSE AND RELATIONSHIPS BETWEEN COMMUNICATION


PROTOCOLS, SERVER HARDWARE, OPERATING SYSTEMS AND WEB SERVER
SOFTWARE WITH REGARDS TO DESIGNING, PUBLISHING AND ACCESSING A
WEBSITE (P2)

2.1 Web communication protocols

- Web communication protocols are standardized sets of rules and formats that enable communication
between different devices and systems on the internet. They define how data is transmitted, formatted, and
interpreted, ensuring that information can be exchanged reliably and efficiently. [3]
9

Figure 4. communication protocols

 some protocols

1. TCP/IP(Transmission Control Protocol/ Internet Protocol)

These are a set of standard rules that allows different types of computers to communicate with each
other. The IP protocol ensures that each computer that is connected to the Internet is having a specific
serial number called the IP address. TCP specifies how data is exchanged over the internet and how it
should be broken into IP packets. It also makes sure that the packets have information about the source of
the message data, the destination of the message data, the sequence in which the message data should be
re-assembled, and checks if the message has been sent correctly to the specific destination. The TCP is
also known as a connection-oriented protocol. [4]

 Purpose of using TCP/IP

 The main work of TCP/IP is to transfer the data of a computer from one device to another. The main
condition of this process is to make data reliable and accurate so that the receiver will receive the
same information which is sent by the sender. To ensure that, each message reaches its final
destination accurately, the TCP/IP model divides its data into packets and combines them at the other
end, which helps in maintaining the accuracy of the data while transferring from one end to another
end.

2. SMTP(Simple Mail Transfer Protocol)

SMTP (Simple Mail Transfer Protocol) is a protocol used to transmit and send emails over networks. The
main purpose of SMTP is to support sending email from a source email server to a destination email
server over the Internet.

 Purpose of using SMTP

 Communication between sender and receiver: The sender's user agent prepares the message and sends
it to the MTA. It is the MTA's responsibility to deliver mail over the network to the recipient's MTA.
10

To send mail, the system must have a client MTA, and to receive mail, the system must have a server
MTA.

 Sending Email: Messages are sent using a series of request and response messages between the client
and the server. The message sent includes a title and content. The null line is used to end the message
header, and everything after the null line is considered the body of the message, which is a sequence
of ASCII characters. The message body contains the actual information read by the receipt.

 Receive emails: The user agent on the server side checks mailboxes at a specific interval. If any
information is received, it notifies the user about the mail. When a user tries to read a message, it
displays a list of emails with a brief description of each message in the mailbox. By selecting any
message, the user can view its content on the terminal.

3. PPP(Point-to-Point Protocol)

It is a communication protocol that is used to create a direct connection between two communicating
devices. This protocol defines the rules using which two devices will authenticate with each other and
exchange information with each other. For example, A user connects his PC to the server of an Internet
Service Provider and also uses PPP. Similarly, for connecting two routers for direct communication it uses
PPP.

 Purpose of using PPP

 Connecting to the Internet via telephone lines: PPP is often used to connect personal computers or
servers to the Internet via telephone lines. When a user wants to access the Internet, PPP is used to
establish a phone connection with the Internet service provider (ISP) and authenticate the user to
transmit data over the phone line.

 Remote network connection: PPP provides remote connection capabilities, allowing users to access
the internal network remotely. Users can use PPP to establish a connection to a local network via a
mobile phone network, a leased line, or a wireless connection.

 LAN-to-LAN connection: PPP is also used to connect two local area networks (LANs) together
through a wide network (WAN). When two offices or corporate locations need to be interconnected,
PPP can be used to establish connections and transfer data between LANs.

 Authentication and data encryption: PPP supports authentication protocols to verify user identity
before establishing a connection. In addition, PPP also provides data encryption to ensure security
during transmission.

 Connection management and control: PPP provides connection management and control mechanisms,
including determining and maintaining connection status, monitoring and monitoring connections,
and managing notifications error and control.
11

4. FTP (File Transfer Protocol)

This protocol is used for transferring files from one system to the other. When a machine requests for file
transfer from another machine, the FTO sets up a connection between the two and authenticates each other
using their ID and Password. And, the desired file transfer takes place between the machines.

 Purpose of using FTP

 File transfer: FTP allows users to transfer files from a source computer to a destination computer over
a network. Users can upload (upload) files from a personal computer to an FTP server or download
(download) files from an FTP server to their personal computer.

 File sharing: FTP provides a mechanism that allows users to share files with others on the network.
Users can create folders and grant access to other users in the FTP system, allowing them to upload
and download files from shared folders.

 Backup and restore data: FTP can be used to back up and restore important data. By uploading files
from a computer to an FTP server, users can create a backup copy of the data and store it in a safe
place. They can then restore the data by downloading it from an FTP server.

 Remote file management: FTP allows users to manage and control files remotely through the FTP
console. Users can create, delete, rename and move files and folders on a remote FTP server without
directly accessing the server.

 Automate file transfers: FTP provides commands and protocols to automate the file transfer process.
This allows for automated processes, such as regular data backups or file synchronization between
computers.

5. SFTP(Secure File Transfer Protocol)

SFTP which is also known as SSH FTP refers to File Transfer Protocol (FTP) over Secure Shell (SSH) as it
encrypts both commands and data while in transmission. SFTP acts as an extension to SSH and encrypts
files and data then sends them over a secure shell data stream. This protocol is used to remotely connect to
other systems while executing commands from the command line.

 Purpose of using SFTP

 Secure File Transfer: The main purpose of SFTP is to provide a safe and secure method of file
transfer. SFTP uses encryption to protect data as it travels over the network, ensuring that information
is not leaked or modified during transmission.

 Remote file management: SFTP allows users to manage and control files remotely through the SFTP
console. Users can create, delete, rename, move and copy files and folders on remote servers.
12

 Authentication and authorization: SFTP provides authentication methods to verify user identity before
accessing the SFTP server. It also supports decentralization mechanisms to manage user access and
permissions on the server.

 Automate file transfers: SFTP supports commands and protocols to automate file transfers. This
enables automated processes such as regular data backups, file synchronization or remote data
transfers through scripts or automation tools.

 Secure file sharing: SFTP allows users to securely share files with others on the network, allowing
them to securely transfer and access files over the network.

6. HTTP(Hyper Text Transfer Protocol)

This protocol is used to transfer hypertexts over the internet and it is defined by the www(world wide
web) for information transfer. This protocol defines how the information needs to be formatted and
transmitted. And, it also defines the various actions the web browsers should take in response to the calls
made to access a particular web page. Whenever a user opens their web browser, the user will indirectly
use HTTP as this is the protocol that is being used to share text, images, and other multimedia files on the
World Wide Web.

 Purpose of using HTTP

 Accessing and displaying websites: The main purpose of HTTP is to allow users to access and display
websites on the browser. When a user enters a URL into the browser, HTTP is used to establish a
connection to the web server and transfer HTML, CSS, JavaScript, and image files to display the web
page to the user.

 Sending and receiving data on the network: HTTP allows sending and receiving data on the network.
Users can use HTTP to send data from the browser to the server, for example when filling out a form
on a website. In addition, HTTP also allows the server to send response data back to the browser, such
as downloaded web pages or error messages.

 Interacting with web APIs: HTTP provides the mechanism for interacting with web APIs. Web
applications and services can use HTTP to send requests and receive responses from web APIs,
allowing the transfer of data and performing operations such as logging in, querying data, or updating
resources .

 Downloading and transferring files: HTTP is used to download and transfer files over the network.
Users can use HTTP to download files from websites or file sharing services. In addition, HTTP also
supports streaming data transmission, allowing media content such as video and audio to be streamed
directly over the network.
13

 Session management: HTTP provides a mechanism for managing sessions on the network. This
allows the server and browser to determine and maintain the user's session state during interactions
across multiple requests and responses, such as credentials and login state.

7. HTTPS(HyperText Transfer Protocol Secure)

HTTPS is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication
over a computer network with the SSL/TLS protocol for encryption and authentication. So, generally, a
website has an HTTP protocol but if the website is such that it receives some sensitive information such as
credit card details, debit card details, OTP, etc then it requires an SSL certificate installed to make the
website more secure

 Purpose of using HTTPS

 Data security: The main purpose of HTTPS is to provide a safe and secure transmission channel for
data. By using encryption, HTTPS ensures that information transmitted between the browser and web
server cannot be stolen or edited by a third party. This is especially important when sending sensitive
information such as personal information, passwords, and credit card information over the Internet.

 Identity authentication: HTTPS uses digital certificates to authenticate the identity of the web server.
Digital certificates issued by reputable certification organizations are used to prove that the web
server is trustworthy and trusted by the user accessing it. This helps prevent server spoofing attacks
and ensures that users connect to the correct server.

 Compatible with modern web standards: HTTPS meets the security requirements of modern web
standards. Many web features such as Service Workers, Web Push, and HTML5 features require
HTTPS to function. By using HTTPS, web applications can take advantage of these advanced features
without security barriers.

 SEO (Search Engine Optimization): HTTPS also has a positive impact on search engine optimization.
Search engines like Google have announced that using HTTPS can have a positive impact on website
rankings in search results. So, using HTTPS can help improve your website's performance and find
ability in search engines.

8. TELNET(Terminal Network)

TELNET is a standard TCP/IP protocol used for virtual terminal service given by ISO. This enables one
local machine to connect with another. The computer which is being connected is called a remote
computer and which is connecting is called the local computer. TELNET operation lets us display
anything being performed on the remote computer in the local computer. This operates on the client/server
principle. The local computer uses the telnet client program whereas the remote computer uses the telnet
server program.

 Purpose of using TELNET


14

 Remote Control: The main purpose of TELNET is to allow users to remotely control other devices,
computers or systems through the network. Users can use TELNET to access network devices such as
servers, routers, and network switches and control them remotely, performing management and
configuration tasks.

 Debugging and troubleshooting: TELNET is used as a debugging tool to test and identify remote
system and connection problems. Users can use TELNET to test network connectivity, identify
problems, and take troubleshooting steps to repair problems.

 Access to remote servers and operating systems: TELNET allows users to access servers and
operating systems remotely to perform management and configuration tasks. Users can use TELNET
to access remote servers and perform operations such as logging in, creating and deleting files,
checking system status, and executing system commands.

 Testing and controlling remote applications: TELNET is also used to test and control remote
applications. Users can use TELNET to remotely access an application and interact with it, send and
receive data, execute commands, and check the application's status.

9. POP3(Post Office Protocol 3)

POP3 stands for Post Office Protocol version 3. It has two Message Access Agents (MAAs) where one is
client MAA (Message Access Agent) and another is server MAA(Message Access Agent) for accessing
the messages from the mailbox. This protocol helps us to retrieve and manage emails from the mailbox on
the receiver mail server to the receiver’s computer. This is implied between the receiver and the receiver
mail server.

 Purpose of using POP3

 Receive emails: The main purpose of POP3 is to allow users to receive emails from an email server.
When users use an email client or email server that supports POP3, they can connect and download
emails from their email account. POP3 allows users to retrieve all new emails from the server or
retrieve only parts of emails based on the user's settings.

 Storing emails on the client: One of the important purposes of POP3 is to allow users to store emails
on the client. When emails are downloaded from an email server, they are typically stored on the
user's computer or device. This allows users to access email even without a network connection and
manage email in their own way.

 Delete emails from the server: POP3 also allows users to delete emails from the server after they have
been successfully downloaded. Once the user has viewed and processed the email on their email client
or email server, they can submit a request to delete the email from the server. This helps reduce the
storage load on the email server and frees up storage space.
15

 Email synchronization: One of the other purposes of POP3 is to synchronize emails between email
servers and clients. When a user downloads email from the server, the email status (read, replied,
deleted) on the server is also updated on the client. This ensures that the state of emails is maintained
and synchronized between different devices and email clients.

10. IPv4

The fourth and initially widely used version of the Internet Protocol is called IPv4 (Internet Protocol
version 4). It is the most popular version of the Internet Protocol and is in charge of distributing data
packets throughout the network.

 Purpose of using IPv4

 IP address identification: One of the main purposes of IPv4 is to uniquely identify devices on the
network. Each device connected to the network will be assigned a unique IP address, allowing
different devices to be distinguished and interact with each other through the IP protocol.

 Network Routing: IPv4 provides routing information to address the destination of packets in the
network. This allows data packets to be forwarded and routed through different network devices to
reach their final destination. IPv4 uses routing tables and routing algorithms to determine the optimal
path for data transmission across the network.

 Communication and data transfer: IPv4 allows devices connected to the network to communicate and
transfer data to each other. Data packets are divided into smaller units and encapsulated in IP packets
for transmission over the network. IPv4 provides information fields in IP packets to identify the
source, destination, and other information related to data transmission.

 Network management and control: IPv4 provides tools and mechanisms for network management and
control. Network administrators can use IP addresses to identify and manage devices on the network,
assign static or dynamic IP addresses to devices, and implement security and access control measures.

11. IPv6

The most recent version of the Internet Protocol, IPv6, was created to address the IPv4 protocol’s
drawbacks. A maximum of 4.3 billion unique addresses are possible with IPv4’s 32-bit addresses.
Contrarily, IPv6 uses 128-bit addresses, which enable a significantly greater number of unique addresses.
This is significant because IPv4 addresses were running out and there are an increasing number of devices
that require internet access. Additionally, IPv6 offers enhanced security features like integrated
authentication and encryption as well as better support for mobile devices. IPv6 support has spread among
websites and internet service providers, and it is anticipated to gradually displace IPv4 as the main internet
protocol.

 Purpose of using IPv6


16

 IP address identification: The main purpose of IPv6 is to provide a larger IP address space. IPv6 uses
128-bit IP addresses, while IPv4 only uses 32-bit. This allows for the creation of a huge number of IP
addresses, meeting the expanding needs of the Internet and supporting connectivity for billions of
smart devices and the Internet of Things (IoT).

 Larger network support: IPv6 is designed to support larger and more expansive networks. With its
wider IP address space, IPv6 allows for the creation of salable networks with a large number of
connected devices. This is useful in environments such as smart cities, intelligent transportation
systems, and industrial networks.

 Durability and security: IPv6 provides improvements in durability and security compared to IPv4.
IPv6 includes auto configuration mechanisms that allow devices to automatically configure their IP
addresses and other network parameters. In addition, IPv6 also supports security features such as data
encryption and authentication, ensuring privacy and safety in data transmission on the network.

 New protocol support: IPv6 supports new and improved protocols such as ICMPv6 (Internet Control
Message Protocol version 6), Multicast Listener Discovery (MLD) and Neighbor Discovery Protocol
(NDP). These protocols provide features such as IP address discovery and management, network
device discovery, and support for more efficient multicast data transmission.

 Backward compatible with IPv4: IPv6 is designed to be backward compatible with IPv4. This allows
networks to use both IPv4 and IPv6 protocols in parallel during IPv6 migration and deployment. IPv6
devices and applications can communicate with IPv4 devices and applications through packet
transformation and encapsulation mechanisms.

12. ICMP

ICMP (Internet Control Message Protocol) is a network protocol that is used to send error messages and
operational information about network conditions. It is an integral part of the Internet Protocol (IP) suite
and is used to help diagnose and troubleshoot issues with network connectivity. ICMP messages are
typically generated by network devices, such as routers, in response to errors or exceptional conditions
encountered in forwarding a datagram.

 Purpose of using ICMP

 Error notifications: ICMP is used to notify errors that occur during network communication. For
example, when a packet cannot be delivered to its destination or a service is unavailable, an ICMP
error message is sent back to the source device to notify it of this error condition.

 Connectivity and Availability Check: ICMP provides connectivity and availability check messages to
network devices. For example, the ICMP Echo Request message is used to check whether a network
device is responding. If the target device receives the request and sends back a response message
(ICMP Echo Reply), this shows that the connection to the target device is working well.
17

 Network address discovery: ICMP provides messages to discover network addresses in the network.
For example, the network address check message (ICMP Address Mask Request) is used to request a
device on the network to send back its network address (ICMP Address Mask Reply). This helps
other devices recognize that network's network address.

 Network performance measurement: ICMP enables performance measurement and network testing.
For example, the ICMP Time Exceeded message is used to measure the time a packet takes during
transmission. The ICMP Time to Live Exceeded message is used to check the maximum lifetime of a
packet on the network.

 Multicast and any cast messages: ICMP provides messages to support the transmission of multicast
and any cast data. For example, the ICMP Multicast Listener Query is used to identify responding
devices in a multicast group.

13. UDP

UDP (User Datagram Protocol) is a connection less, unreliable transport layer protocol. Unlike TCP, it
does not establish a reliable connection between devices before transmitting data, and it does not
guarantee that data packets will be received in the order they were sent or that they will be received at all.

 Purpose of using UDP

 Fast data transmission: UDP provides a faster data transmission method than TCP (Transmission
Control Protocol). UDP does not have a packet acknowledgment or connection state management
mechanism like TCP, which helps reduce latency and overhead during data transmission. UDP is
suitable for applications that require fast data transmission such as live streaming, online games, and
real-time services.

 Sending multicast data: UDP supports multicast data transmission within the network. With UDP, a
packet only needs to be sent once and it can be received by multiple devices in a multicast group. This
is useful in applications such as live broadcasting, online video, and multi-player games.

 Simple and effective: UDP is a simple and lightweight protocol that does not require a lot of system
resources. This makes UDP a suitable choice for applications with low resource requirements and low
latency. UDP is also less complex than TCP, so it is easier to deploy and use.

 Supports applications that do not require reliability: UDP does not guarantee complete and reliable
delivery like TCP. This makes UDP suitable for applications that do not require high reliability, such
as sending short, simple, and non-critical data. For example, in applications where the loss of some
packets is not important, such as video streaming, it may be more efficient to use UDP.

14. IMAP

IMAP (Internet Message Access Protocol) is a protocol used for retrieving emails from a mail server. It
allows users to access and manage their emails on the server, rather than downloading them to a local
18

device. This means that the user can access their emails from multiple devices and the emails will be
synced across all devices.

 Purpose of using IMAP

 Remote email access: IMAP allows users to access and manage email from any location via a network
connection. Users can use email applications on computers, mobile phones or tablets to connect and
view emails from IMAP servers. This provides flexibility and convenience to users, allowing them to
access their mailboxes from any device with an Internet connection.

 Manage emails on the server: With IMAP, emails are not only downloaded to the destination
computer but also stored on the email server. Users can organize and manage emails directly on the
server, including creating folders, moving emails between folders, deleting emails, and marking
emails as read/unread. These changes are synced to the server, so users can see and manage their
email the same way across devices.

 Sync emails across multiple devices: One of the key advantages of IMAP is that it allows email
synchronization across multiple devices. When a user reads, deletes, or moves email on one device,
those changes are reflected on all other devices connected to the same IMAP account. This ensures
that users always have the latest email status and can continue to read and manage emails from any
device.

 Store emails on the server: With IMAP, emails are stored on the email server, not just on the user
device. This reduces the storage load on the device and also allows users to access their entire email
history from anywhere. Users do not need to worry about losing email data when the device is
damaged or lost, because emails are still securely stored on the server.

15. SSH

SSH (Secure Shell) is a protocol used for secure remote login and other secure network services. It
provides a secure and encrypted way to remotely access and manage servers, network devices, and other
computer systems. SSH uses public-key cryptography to authenticate the user and encrypt the data being
transmitted, making it much more secure than traditional remote login protocols such as Telnet.

 Purpose of using SSH

 Remote login and server management: SSH allows users to log in to a remote computer through a
secure connection. By using SSH, users can access and manage servers from any location with a
network connection. This is very useful in remote server management or when working with
computers on a local network.

 Secure file transfer: SSH provides a secure file transfer mechanism between computers. Users can
copy, move or delete files on a remote computer through an SSH connection. File transfers via SSH
are encrypted, ensuring data security during transmission.
19

 Remote network and network device management: SSH provides the ability to remotely manage and
control network devices such as routers, switches, servers, IoT devices, etc. Users can use SSH to
securely perform tasks such as configuring, monitoring, debugging, and managing network devices
remotely.

 Create VPN tunnels: SSH provides the ability to create secure VPN (Virtual Private Network)
tunnels. By using SSH tunneling, users can securely access internal networks or remote network
resources. This is useful when users want to access internal network resources through an insecure
public network.

 Connect and control remote computers: SSH provides the ability to connect and control remote
computers through a command-line interface. This allows users to perform tasks, run commands and
processes on remote computers safely and securely.

16. Gopher

Gopher is a type of file retrieval protocol that provides downloadable files with some description for easy
management, retrieving, and searching of files. All the files are arranged on a remote computer in a
stratified manner.

 Purpose of using Gopher

 Transmitting and searching for information: Gopher is designed to transmit and search for
information online. Users can use Gopher browsers to browse categories and search for informational
content on Gopher servers. Gopher is commonly used to transmit text, images, sounds, and other
documents.

 Information organization: Gopher provides a catalog structure and information classification,


allowing users to find and access documents by category. Information on Gopher is organized into
directory trees, with links between pages and documents creating a web of information that is easy to
browse.

 Resource sharing: Gopher allows users to share and access resources on the network. Users can create
Gopher servers to share documents, services and applications with other users on the network. This
creates an environment for sharing information and resources on the Internet.

 Scalability: Gopher is an open protocol, allowing developers to create new applications and tools.
Developers can build Gopher browsers, Gopher servers, and other applications to extend the usability
and features of Gopher.

2.2 Server hardware

- Server hardware refers to the physical components and equipment that make up a server, which is a
computer or system responsible for providing services, resources, and data to other devices on a network.
20

Server hardware is designed to handle the demands of running server applications and services reliably
and efficiently. Eg CPU, RAM, Storage, NICs, PSU, Cooling System, Expansion Slots, Management
Interfaces, Rack Mounting. [5]

Figure 5. Server hardware

2.3 Operating systems

- An operating system (OS) is a software that manages computer hardware and software resources and
provides common services to computer programs. It acts as an intermediary between the user and the
computer hardware, facilitating the execution of applications and providing a user-friendly interface. eg.
Windows, macOS, Linux, Unix, Android, iOS, Chrome OS. [6]

Figure 6. Operating systems

 Some examples of operating systems (OS)

1. Windows: Popular operating system developed by Microsoft for personal computers and servers.
21

2. macOS: Operating system exclusively for Apple Mac computers.

3. Linux: Free and open source operating system, available in many versions and variants such as
Ubuntu, Fedora, Debian, CentOS, etc.

4. Unix: Powerful and stable operating system developed in the 1970s, often used in server and large
system environments.

5. Android: Popular mobile operating system based on Linux, developed by Google for devices such as
smartphones, tablets and smart TVs.

6. iOS: Mobile operating system for Apple devices such as iPhone, iPad and iPod Touch.

7. Chrome OS: Linux-based operating system developed by Google for Chromebook devices, focused
on using the Chrome browser and web applications.

 Popular characteristics

1. Windows:

 Developed by Microsoft.

 Easy-to-use graphical user interface (GUI).

 Extensive support for many applications and games.

 Integrates Microsoft services and applications such as Microsoft Office, Edge, Cortana, and more.

 Supports multitasking and multi-user.

2. macOS:

 Developed by Apple for Mac computers.

 Beautiful and friendly user interface design.

 Integrates well with Apple products and services like iCloud, Siri, iTunes, etc.

 Powerful support for multimedia processing and graphic design.

 Stable and secure operating system.

3. Linux:

 Free and open source operating system.

 There are many versions and variants such as Ubuntu, Fedora, Debian, CentOS, etc.

 Flexible and highly customizable.


22

 Strong support for programming and system work.

 Popular in server and embedded device environments.

4. Unix:

 Powerful and stable operating system developed since the 1970s.

 Widely used in server and large system environments.

 Supports multitasking, multi-user and network routing.

 The design focuses on security and reliability.

5. Android:

 Popular mobile operating system based on Linux.

 Developed by Google for mobile devices such as smartphones, tablets, smart TVs, etc.

 Extensive support for mobile apps from the Google Play Store.

 Integrates Google services like Gmail, Google Maps, Google Assistant, etc.

 Provides multimedia and networking features.

6. iOS:

 Mobile operating system specifically for Apple devices such as iPhone, iPad, iPod Touch.

 The user interface is simple, smooth and easy to use.

 High quality apps from the App Store.

 Integrates well with Apple services and products like iCloud, Siri, Apple Music, etc.

 Strictly controlled by Apple to ensure safety and stability.

7. Chrome OS:

 Linux-based operating system developed by Google for Chromebook devices.

 Focus on using the Chrome browser and web applications.

 Simple design and quick startup.

 Synchronize data with Google account. Provides security and stability in the use of online
applications and services.
23

2.4 Web server software

- Web server software refers to the software that runs on a server and handles the processing and delivery
of web content over the internet. It receives incoming requests from clients (typically web browsers) and
responds by serving web pages, files, or other resources.

Figure 7. Web server software

- Some examples and special features of each web server

 Apache HTTP Server:

 Apache is one of the most popular Web servers in the world.

 Cross-platform and free.

 Supports many programming languages and network protocols.

 Provides high extensibility and customization through modules.

 Nginx:

 Nginx is a very popular Web server and reverse proxy server.

 High performance and resource saving.

 Supports processing thousands of connections simultaneously.

 Has good load capacity and load balance.

 Microsoft IIS (Internet Information Services):

 IIS is a Web server integrated into the Windows Server operating system.

 Tight integration with Microsoft technologies such as ASP.NET, .NET Framework.


24

 Supports popular web protocols such as HTTP, HTTPS, FTP, SMTP.

 Provides powerful resource management and control tools.

 Lighttpd:

 Lighttpd (also known as "Lighty") is a lightweight and optimized Web server.

 Consumes less system resources and memory.

 Supports flexible configuration and high performance.

 Especially suitable for simple and static web applications.

 Caddy:

 Caddy is a Web server and reverse proxy server that is easy to install and configure.

 Supports automatic SSL/TLS installation for websites.

 Provides a simple and friendly management interface.

 Supports many features such as HTTP/2, WebSocket, FastCGI, etc.

 Gunicorn:

 Gunicorn is a Web server used for Python applications.

 Designed to handle Python applications quickly and efficiently.

 Supports many protocols such as HTTP, HTTPS and Unix sockets.

 Integrates well with frameworks like Django and Flask.

2.5 Relationship between communication protocols, server hardware, operating systems


and web server software with regards to designing, publishing and accessing a website.

a, Relationship

1. Communication Protocols:
Communication protocols define the rules and standards for transmitting data between systems. In
the context of designing, publishing, and accessing a website, communication protocols such as
HTTP (Hypertext Transfer Protocol) and HTTPS (HTTP Secure) are used. These protocols enable
the exchange of data and requests/responses between web browsers and web servers.

2. Server Hardware:
Server hardware refers to the physical equipment that runs the web server software and hosts the
25

website. It includes components like processors, memory, storage devices, and network interfaces.
The choice of server hardware depends on factors such as the expected traffic volume, scalability
requirements, and budget.

3. Operating Systems:
The operating system (OS) is the software that manages computer hardware and software
resources and provides services for running applications. The choice of operating system for a web
server depends on the web server software being used. Popular operating systems for web servers
include Linux distributions (such as Ubuntu, CentOS, or Debian) and Windows Server. Different
operating systems may have varying performance, security, and compatibility characteristics.

4. Web Server Software:


Web server software handles the processing of HTTP requests and serves web pages and other web
resources to clients (web browsers). Common web server software includes Apache HTTP Server,
Nginx, and Microsoft Internet Information Services (IIS). The web server software interacts with
the operating system to handle incoming requests, access website files, and deliver responses to
clients.

b, To design, publish, and access a website.

 The website is designed and developed using web technologies (HTML, CSS, JavaScript, etc.).

 The web pages and associated resources are stored on the server's storage devices.

 The web server software running on the server, along with the operating system, handles incoming
HTTP requests from clients.

 The communication protocols (HTTP/HTTPS) facilitate the transfer of data between the web
server and the client's web browser.

 The server hardware ensures that the website can handle the expected traffic volume and provides
the necessary resources for the web server software to run efficiently.

3. DISCUSS THE CAPABILITIES AND RELATIONSHIPS BETWEEN FRONT-END AND


BACK-END WEBSITE TECHNOLOGIES AND EXPLAIN HOW THESE RELATE TO
PRESENTATION AND APPLICATION LAYERS. (P3)

3.1 Front-end technologies such as HTML, CSS, JS… Give advantages and disadvantages

- The front-end of a website is the part of the website that interacts with users. Everything the user sees
from the text, front text size, color, font style, movements on the website such as dragging the mouse over
the menu, the mouse moves from the arrow to the hand or the drop-down menus... are the What tasks does
the front-end perform. [7]
26

a, HTML

- Define : HTML - Hyper Text Markup Language, is a type of hypertext markup language, often used in
web documents. [8]

- Advantage

 Structure and Semantics: HTML provides a structured way to organize content on a web page,
making it easier for search engines and assistive technologies to understand and navigate the
content.

 Cross-Platform Compatibility: HTML is supported by all major web browsers, making it a


universal language for displaying content on different devices and platforms.

 Easy to Learn: HTML has a simple syntax and is relatively easy to learn, especially for beginners.

- Disadvantages

 Limited Styling Capability: HTML alone has limited capabilities for visual styling. It primarily
focuses on structuring the content and lacks advanced styling features.

 Lack of Interactivity: HTML is primarily a markup language and does not provide extensive
interactivity on its own. It requires the use of JavaScript or other technologies to add dynamic
behavior to web pages.

b, CSS

- Define: CSS Cascading Style Sheets, is a formatting language used to describe the layout of web pages,
including colors, layout and fonts, helping the content express its own style for the overall website.

- Advantage

 Styling and Layout Control: CSS allows developers to define the visual appearance of HTML
elements, including colors, fonts, layouts, and responsive design.

 Separation of Concerns: CSS separates the visual presentation from the underlying HTML
structure, making it easier to maintain and update the design of a website.

 Reusability: CSS enables the creation of reusable stylesheets that can be applied to multiple web
pages, ensuring consistency throughout a website.

- Disadvantages

 Browser Compatibility Issues: Different web browsers may interpret CSS rules differently, leading
to inconsistencies in the visual appearance of a website.
27

 Learning Curve: CSS can be complex, especially when dealing with advanced layouts or cross-
browser compatibility. It may require time and practice to master.

c, JS

- Define: JavaScript, also abbreviated as JS, is one of the popular programming languages used by many
programmers to turn boring static websites into attractive dynamic pages, and at the same time has the
ability to create excitement. interactivity, improve server performance and enhance user experience.

- Advantage

 Interactivity: JavaScript is a powerful scripting language that enables interactivity and dynamic
behavior on web pages. It allows for actions like form validation, animations, and real-time
updates.

 Extensibility: JavaScript can be used to extend the functionality of HTML and CSS, allowing
developers to create more advanced features and interactive user experiences.

 Wide Adoption: JavaScript is supported by all major web browsers, making it a standard choice
for client-side scripting.

- Disadvantages

 Browser Compatibility: While JavaScript is widely supported, different browsers may have
variations in how they interpret JavaScript code, requiring developers to test and ensure
compatibility.

 Security Risks: JavaScript executed on the client-side is visible to users and can be manipulated,
potentially exposing security vulnerabilities if not properly secured.

 Performance Impact: Poorly optimized JavaScript code or excessive use of JavaScript can
negatively impact website performance, leading to slower page load times.

Figure 8. HTML, CSS and JS


28

3.2 Back-end technologies such as .NET, PHP, Java, Python... Definition, uses,Give
advantages and disadvantages

- Back-end technologies are the technologies and frameworks used to build the server-side components of
a web application. They handle the processing of data, business logic, and database interactions.

a, Net

 Definition: .NET is a framework developed by Microsoft that supports multiple programming


languages, including C#, VB.NET, and F#. It provides a comprehensive set of tools and libraries for
building Windows, web, and mobile applications.

 Use Cases: .NET is widely used for developing enterprise-level web applications, APIs, and services
on the Microsoft ecosystem.

 Advantages:

 Strong Integration with Windows: .NET offers seamless integration with the Windows platform,
making it a preferred choice for developing applications targeting the Microsoft ecosystem.

 Rich Framework: .NET provides a vast library ecosystem, robust development tools (Visual
Studio), and excellent support from Microsoft.

 Scalability and Performance: .NET applications can handle high traffic loads and offer good
performance, especially when utilizing the ASP.NET framework.

 Disadvantages:

 Limited Cross-Platform Support: While .NET Core has improved cross-platform support, some
legacy .NET components may only be compatible with Windows.

 Learning Curve: The complexity of the .NET framework may require a steeper learning curve,
especially for beginners.

b, PHP

 Definition: PHP (Hypertext Preprocessor) is a popular open-source scripting language used for server-
side web development. It is embedded within HTML code and executed on the server.

 Use Cases: PHP is commonly used for building dynamic websites, content management systems
(CMS), e-commerce platforms, and web applications.

 Advantages:
29

 Wide Adoption and Community: PHP has a large and active developer community, which means
abundant resources, frameworks (e.g., Laravel, Symfony), and libraries are available.

 Easy to Learn: PHP has a relatively easy learning curve, making it accessible for beginners.

 Platform Independence: PHP is compatible with various operating systems and can run on
different web servers (e.g., Apache, Nginx).

 Disadvantages:

 Inconsistent Standard Library: PHP's standard library is known to have inconsistencies and
deprecated features, which can lead to code maintenance challenges.

 Performance: PHP's performance can be a concern for high-traffic and computationally intensive
applications. However, performance can be improved with opcode caching and optimization
techniques.

c, Java

 Definition: Java is a versatile and widely-used programming language known for its "write once, run
anywhere" principle. It has a robust set of libraries, frameworks, and tools for building various
applications.

 Use Cases: Java is used for enterprise-level applications, web services, large-scale systems, and
Android app development.

 Advantages:

 Platform Independence: Java applications can run on any platform with a Java Virtual Machine
(JVM), providing great portability.

 Strong Ecosystem: Java has a vast ecosystem of frameworks (e.g., Spring, Hibernate), libraries,
and tools that facilitate rapid application development.

 Performance and Scalability: Java's efficient memory management and threading capabilities
contribute to its performance and scalability.

 Disadvantages:

 Verbosity: Java code tends to be more verbose compared to some other languages, which can
increase development time and code complexity.

 Learning Curve: Java has a steeper learning curve than some other languages due to its extensive
features and concepts.

d, Python
30

 Definition: Python is a versatile, high-level, and interpreted programming language known for its
simplicity and readability. It emphasizes code readability and productivity.

 Use Cases: Python is used for web development, scientific computing, data analysis, artificial
intelligence, and automation.

 Advantages:

 Easy to Learn and Readable Syntax: Python's clean and readable syntax makes it beginner-friendly
and promotes rapid development.

 Rich Library Ecosystem: Python has a vast collection of libraries and frameworks (e.g., Django,
Flask, NumPy, Pandas) that simplify development tasks.

 Versatility: Python can be used for various applications, ranging from web development to data
analysis and machine learning.

 Disadvantages:

 Performance: While Python is highly productive, it may not be as performant as lower-level


languages for computationally intensive tasks. However, performance-critical parts can be
optimized using compiled extensions.

 Global Interpreter Lock (GIL): The GIL in Python restricts multi-threaded performance, which can
be a limitation for some applications.

Figure 9. NET, PHP,Java, Python

3.3 Explain how these relate to presentation and application layers.

a, Role of presentation and application layers

1. Presentation Layer:
The presentation layer, also known as the UI (User Interface) layer, is responsible for presenting
31

data and interacting with the users. It focuses on the visual representation and user experience of
the application. This layer includes front-end technologies like HTML, CSS, and JavaScript.

 Role of the Presentation Layer:

 User Interface: The presentation layer handles the rendering of user interfaces and controls, enabling
users to interact with the application.

 Data Presentation: It formats and presents the data retrieved from the application layer in a user-
friendly manner.

 User Input Handling: The presentation layer captures user input and sends it to the application layer
for processing.

 Client-Side Validation: It performs basic validation of user input to ensure data integrity and prevent
unnecessary requests to the application layer.

 Relationship with the Application Layer:


The presentation layer communicates with the application layer to retrieve data and update the
application's state. It sends requests to the application layer to perform actions or retrieve specific data
required for the user interface. The presentation layer receives responses from the application layer
and updates the UI accordingly.

2. Application Layer:
The application layer, also known as the business logic layer or server-side layer, contains the core
business logic and functionality of the application. It processes requests from the presentation
layer, interacts with databases or external services, and performs the necessary operations to fulfill
those requests.

 Role of the Application Layer:

 Business Logic: The application layer implements the business rules, algorithms, and workflows that
drive the application's functionality and behavior.

 Data Processing: It handles data validation, manipulation, and transformation to ensure data integrity
and consistency.

 Communication with Data Sources: The application layer interacts with databases, file systems, or
external services to retrieve or store data.

 Security and Access Control: It enforces security measures, authentication, and authorization to
protect sensitive data and control access to application features.

 Relationship with the Presentation Layer:


The application layer receives requests from the presentation layer, processes them, and generates
32

appropriate responses. It encapsulates the business logic and communicates with the data layer
(database or external services) to retrieve or store data. The application layer then provides the
necessary data or instructions to the presentation layer for rendering the UI and updating the user
interface state.

b, Relationship between Front-end and Back-end Website Technologies and


Presentation/Application Layers:

 Front-end Technologies and Presentation Layer: Front-end technologies such as HTML, CSS, and
JavaScript are primarily used in the presentation layer. HTML provides the structure and semantic
markup of the user interface, CSS is used for styling and layout, and JavaScript adds interactivity and
dynamic behavior to the UI. These technologies work together to render the user interface and capture
user input. They communicate with the back-end through API calls or AJAX requests to retrieve or
update data.

 Back-end Technologies and Application Layer: Back-end technologies such as .NET, PHP, Java, or
Python are used in the application layer. These technologies handle the business logic, data
processing, and communication with databases or external services. The back-end technologies
receive requests from the front-end, validate and process the data, perform necessary operations,
retrieve or store data in databases, and generate responses to be sent back to the front-end.

- The front-end and back-end technologies work together to create a complete web application:

 The front-end technologies handle the presentation layer, rendering the user interface, capturing user
input, and making requests to the back-end for data or updates.

 The back-end technologies handle the application layer, executing the business logic, processing data,
and providing responses to the front-end.

4. DISCUSS THE DIFFERENCES BETWEEN ONLINE WEBSITE CREATION TOOLS


AND CUSTOM BUILT SITES WITH REGARDS TO DESIGN FLEXIBILITY,
PERFORMANCE, FUNCTIONALITY, USER EXPERIENCE (UX) AND USER INTERFACE
(UI) (P4)

4.1 Some of tool to create online website

1. WordPress: WordPress is a popular content management system (CMS) that allows users to create
and manage websites easily. It offers a wide range of themes, plugins, and customization options.
Key features include a user-friendly interface, blogging capabilities, SEO optimization, and e-
commerce integration.

2. Wix: Wix is a website builder that offers drag-and-drop functionality, making it easy for users to
create visually appealing websites. It provides a variety of templates, customization options, and
33

integrations with third-party apps. Key features include a user-friendly interface, mobile
optimization, e-commerce capabilities, and SEO tools.

3. Joomla: Joomla is another powerful CMS that enables users to build and manage websites. It
offers a flexible platform with a wide range of extensions and templates. Key features include
content management, user management, multilingual support, and e-commerce functionality.

4. SiteSpinner: SiteSpinner is a user-friendly website design software that allows users to create
responsive websites without coding knowledge. It offers a visual editor, pre-designed templates,
and various customization options. Key features include drag-and-drop functionality, mobile
optimization, and e-commerce support.

5. CoffeeCup Free HTML Editor: CoffeeCup Free HTML Editor is a code-based editor that provides
users with the flexibility to create custom websites. It offers a range of tools for HTML and CSS
coding, including syntax highlighting, code validation, and auto-completion. Key features include
code editing capabilities, website preview, and FTP functionality. [9]

4.2 Discuss the differences between online website creation tools and custom built sites with
regards to design flexibility, performance, functionality, User Experience (UX) and User
Interface (UI).

a, Definition of UI, UX

 UI: UI stands for User Interface, which refers to the visual elements and design of a website or
application that users interact with. It includes the layout, color scheme, typography, buttons, and
other visual elements that contribute to the overall look and feel of the site.

 UX: UX stands for User Experience, which focuses on how users interact with a website or
application and their overall satisfaction with the experience. It encompasses factors such as ease of
use, navigation, responsiveness, and the ability to accomplish tasks effectively and efficiently.

Comparison Online website creation tools Custom built sites


criteria
Flexibility These tools offer pre-designed Custom-built sites provide
templates and drag-and-drop extensive design flexibility as
editors, limiting design flexibility to developers have full control over
some extent. Users can customize the design process. They can create
elements within the provided unique layouts, implement custom
templates but may face constraints visual elements, and tailor the
in achieving a truly unique design. design to match specific branding
34

requirements.

Performance These tools often provide optimized With custom-built sites, developers
hosting and performance features, can optimize the website's
improving website speed and load performance from the ground up.
times. However, the underlying They have control over server
infrastructure may not be as robust configurations, caching
as custom-built sites, potentially mechanisms, and code
impacting scalability and overall optimization, resulting in faster
performance. load times and improved
scalability.

Functionality These tools offer a range of built-in Custom-built sites provide the
functionalities and integrations, flexibility to implement any desired
such as e-commerce, blogging, and functionality based on specific
social media. However, the requirements. Developers can
available functionality may be create custom features, integrate
limited compared to custom-built with third-party systems, and tailor
sites, and reliance on the functionality to meet unique
plugins/extensions may be needs.
necessary.

User Experience UX in online tools is often focused Custom-built sites allow designers
(UX) on providing user-friendly and developers to create a highly
interfaces and intuitive drag-and- tailored user experience. They have
drop editors. However, the level of control over user flow, navigation,
customization and optimization for and interactive elements, ensuring a
specific user experiences may be seamless and intuitive experience
limited. for visitors.

User Interface (UI) The UI of online tools is designed Custom-built sites offer the
to be user-friendly, accessible, and advantage of creating a UI that is
suitable for individuals with limited completely tailored to the brand's
design or coding experience. The identity, target audience, and
interfaces often provide intuitive specific requirements. Designers
controls and options for can develop unique visual elements,
customization. layouts, and interactions to enhance
the overall user interface.

Table 1. Compare
35

5. EVALUATE THE IMPACT OF COMMON WEB DEVELOPMENT TECHNOLOGIES


AND FRAMEWORKS WITH REGARDS TO WEBSITE DESIGN, FUNCTIONALITY AND
MANAGEMENT. (M1)

5.1 State the role of framework in job website design and development

 Providing infrastructure: The framework provides an infrastructure for website development,


including necessary components such as libraries, tools, and project structure. This helps speed up the
development process and minimize repetitive work.

 Performance optimization: Frameworks often have optimized features and structures to enhance
website performance. For example, they can provide effective caching, page load optimization, and
resource management mechanisms to ensure the website runs quickly and stably.

 Support for rapid development: The framework provides tools and utility libraries to help developers
build websites quickly. They provide standardized design patterns and source code, helping to reduce
repetitive work and speed up the development process.

 Easy Management: The framework makes project and source code management easier. They provide
rules and standards for organizing source code, helping to maintain consistency and make it easier to
extend the project in the future.

 Security: Frameworks often come with built-in security features or provide instructions on
implementing security measures. This helps increase website security and protect against attacks.

5.2 List a few frameworks for front end and back end

- Frameworks in web development play an important role in speeding up development, improving


performance and project management. Frameworks provide a structure and a set of tools for building web
applications, helping to reduce the time and effort required to develop from scratch.

 Front-end:

1. React.js: A JavaScript library for building user interfaces. It offers a component-based approach
and is widely used for building single-page applications.

2. Angular: A comprehensive JavaScript framework for building web applications. It provides


features like state management, routing, and data handling.

 Back-end:

1. Express.js: A minimal and flexible Node.js framework for building web applications and APIs. It
simplifies server-side development and provides features like routing and middleware.
36

2. Django: A powerful Python framework for web development. It follows the Model-View-
Controller (MVC) pattern and provides features like database management, user authentication,
and an admin interface.

5.3 List the characteristics, advantages and disadvantages of 2 frameworks for front end
and 2 frameworks for back end

a, Frontend frameworks:

 React.js:

 Definition: React.js (or React) is an open source JavaScript library used to build interactive and
reliable user interfaces (UI) on web applications. React uses the "Virtual DOM" mechanism to
optimize performance and provides a component-based approach to interface development. With
React, developers can build independent UI components and reuse them throughout the application.

 Features: React.js focuses on building reusable and flexible user interfaces. It has a large community
and strong support.

 Advantages:
 High Performance: React.js utilizes a virtual DOM that improves performance by efficiently updating
and rendering only the necessary components.

 Component-based Architecture: React follows a component-based approach, allowing developers to


build reusable and modular UI components, resulting in code reusability and maintainability.

 Strong Support for Single Page Applications (SPAs): React is well-suited for building SPAs, where
the application updates and renders specific components without refreshing the entire page.

 Thriving Community: React has a large and active community, which means there are plenty of
resources, libraries, and community-driven solutions available.

 Disadvantages:

 Learning Curve: React has a learning curve, especially for developers who are new to component-
based architectures and JSX syntax.

 Boilerplate Code: Building a complete application with React may require writing more code
compared to other technologies.

 Complex State Management: Managing complex application state in React can become challenging,
and developers may need to rely on additional libraries like Redux or MobX.

 Angular:
37

 Definition: Angular (or AngularJS or Angular 2+) is an open source web application development
framework developed by Google. Angular uses TypeScript, an extended version of JavaScript, to
build complex single-page web applications (SPAs). Angular provides a client-side architecture and
MVC (Model-View-Controller) model to build powerful and easy-to-maintain web applications.

 Features: Angular is a complete framework with many features such as application state
management, routing, and data processing.

 Advantages:

 MVC Architecture and Component-based Approach: Angular follows the MVC (Model-View-
Controller) architecture and embraces a component-based approach, making it easy to organize and
reuse code.

 Built-in Features: Angular provides a comprehensive set of built-in features such as routing, form
validation, dependency injection, and a powerful command-line interface (CLI).

 Scalability: Angular is well-suited for complex and large-scale applications, offering features like lazy
loading modules and hierarchical dependency injection.

 Large Community and Rich Documentation: Angular has a large and supportive community, along
with extensive documentation and resources.

 Disadvantages:

 Steep Learning Curve: Angular has a steep learning curve, especially for developers who are new to
TypeScript and the Angular ecosystem.

 Complex Syntax: Angular's syntax can be more complex compared to other technologies, which may
lead to initial development challenges.

 Performance: Angular's performance may not be as high as React in certain scenarios due to its
extensive features and complex architecture.

b, Backend frameworks:

 Node.js (Express.js):

 Definition: Node.js is a server-side JavaScript code execution environment based on Google's V8


JavaScript Engine. Node.js enables the development of web applications and network services using
JavaScript. Express.js is a Node.js web application development framework used to build simple and
powerful server-side web applications. Express.js provides features and tools to help manage routing,
process requests and responses, and create RESTful web applications.
38

 Features: Node.js allows writing server-side code in JavaScript, effectively taking advantage of using
the same language on both the frontend and back end. Express.js is a compact framework and focuses
on building simple and fast web applications.

 Advantages:

 High Performance and Scalability: Node.js excels in handling concurrent requests and has excellent
scalability, making it suitable for building high-performance applications.

 JavaScript Everywhere: Node.js enables developers to use JavaScript both on the server-side and
client-side, promoting code reuse and reducing context switching.

 Large Community and Rich Ecosystem: Node.js has a vast and active community, along with a
plethora of third-party modules and libraries available through npm (Node Package Manager).

 Real-time and Single Page Applications: Node.js, combined with frameworks like Express.js, is well-
suited for building real-time applications and single-page applications (SPAs).

 Disadvantages:

 Asynchronous Programming: The asynchronous nature of Node.js may introduce complexities when
dealing with synchronous operations or CPU-intensive tasks.

 Scalability Limitations: Node.js is primarily designed for building scalable network applications and
may not be suitable for CPU-intensive applications or applications requiring multithreading.

 Error Handling: Proper error handling and debugging can be challenging in Node.js due to the
asynchronous nature and event-driven architecture.

 Django: [10]

 Definition: Django is an open source web application development framework written in Python.
Django provides a server-side architecture and MTV (Model-Template-View) model to build web
applications quickly and securely. Django comes with many built-in features such as database
management, security, routing management and admin interface, helping to reduce the time and effort
of web application development.

 Features: Django is a powerful Python framework and provides many features such as database
management, user management, and admin interface.

 Advantages:

 MVC Architecture and MTV Pattern: Django follows the MVC architecture and implements the
MTV (Model-Template-View) pattern, making it easy to separate concerns and maintain code.
39

 Batteries Included: Django provides a comprehensive set of built-in features, such as an ORM
(Object-Relational Mapping) for database management, authentication, security, and an admin
interface.

 Rapid Development: Django's built-in features and conventions enable developers to build web
applications quickly and efficiently.

 Python Integration: Django integrates well with the Python ecosystem, allowing developers to
leverage the vast range of Python libraries and tools.

 Disadvantages:

 Complexity: Django's features and conventions can introduce complexity, especially for developers
who are new to the framework and its concepts.

 Boilerplate Code: Django may require writing more code compared to lightweight frameworks, which
can be considered unnecessary for simple applications.

 Performance: In certain cases, Django's performance may not be as high as more lightweight
frameworks like Node.js, especially for applications with high traffic or heavy computation.

5.4 Choose the appropriate framework for the scenario and give reasons

- Among the 4 frameworks I mentioned above, I chose Django because Django complies with the MVC
architecture and implements the MTV (Model-Template-View) pattern, which helps separate parts of the
application and easily maintain the source code. Django provides a built-in feature set, including ORM
(Object-Relational Mapping) for database management, authentication, security, and an administration
interface. Django's built-in features and conventions help developers build web applications quickly and
efficiently. Finally, Django integrates well with the Python ecosystem, allowing developers to take
advantage of a variety of Python libraries and tools.

6. REVIEW THE INFLUENCE OF SEARCH ENGINES ON WEBSITE PERFORMANCE


AND PROVIDE EVIDENCE-BASED SUPPORT FOR IMPROVING A SITE’S INDEX
VALUE AND RANK THROUGH SEARCH ENGINE OPTIMISATION (M2)

6.1 Define SEO

- SEO stands for Search Engine Optimization. It refers to the practice of optimizing a website or online content to
improve its visibility and ranking in search engine results pages (SERPs). The main goal of SEO is to increase organic
(non-paid) traffic to a website by making it more relevant and authoritative in the eyes of search engines. [11]
40

6.2 Role

1. Keyword Research: Conducting research to identify relevant keywords and search terms that users are
using to find information related to a website's content or products. This involves analyzing search
volume, competition, and user intent to optimize content and target the right keywords.

2. On-Page Optimization: Optimizing individual web pages to improve their visibility and relevance to
targeted keywords. This includes optimizing meta tags, headings, URLs, and content elements such as text,
images, and videos.

3. Technical SEO: Ensuring the website's technical aspects are optimized for search engines. This involves
optimizing site speed, mobile-friendliness, website structure, URL structure, and ensuring proper indexing
and crawling by search engine bots.

4. Content Strategy: Developing and implementing a content strategy that aligns with SEO goals. This
includes creating high-quality, relevant, and optimized content that satisfies user search intent, attracts
organic traffic, and encourages engagement and conversions.

5. Link Building: Implementing strategies to acquire high-quality backlinks from reputable websites. Link
building involves outreach, relationship building, and content promotion to earn natural links that improve
the website's authority and ranking.

6. Performance Monitoring and Reporting: Tracking and analyzing key SEO metrics such as keyword rankings,
organic traffic, conversion rates, and user engagement. SEO professionals use tools and analytics platforms
to monitor performance, identify trends, and make data-driven decisions to optimize strategies.

7. SEO Audits and Recommendations: Conducting regular audits of the website to identify technical issues,
on-page optimization opportunities, and areas for improvement. Based on the audit findings, SEO
professionals provide recommendations and implement necessary changes to enhance the website's SEO
performance.

8. Keeping Up with Industry Trends: Staying up to date with the latest developments, algorithm changes, and
best practices in the SEO industry. This includes researching and implementing emerging SEO techniques,
staying informed about search engine guidelines, and continuously learning and adapting strategies to
maintain or improve organic visibility.

6.3 Types of SEO

1. On-Page SEO: On-Page SEO refers to optimization techniques that are implemented directly on
individual web pages to improve their visibility and relevance to search engines. It involves optimizing
various elements within the web page, including: [12]
41

 Keyword optimization: Incorporating relevant keywords in page titles, headings, meta descriptions,
URLs, and throughout the content.

 Content optimization: Creating high-quality, informative, and engaging content that satisfies user
search intent and provides value. This includes optimizing content length, readability, structure, and
incorporating relevant keywords naturally.

 Meta tags optimization: Writing compelling and keyword-rich meta titles and meta descriptions that
accurately describe the page's content.

 URL structure: Ensuring URLs are concise, descriptive, and include relevant keywords.

 Internal linking: Creating a logical and well-structured internal linking system to enhance navigation
and distribute link equity within the website.

2. Off-Page SEO: Off-Page SEO involves optimization techniques that are implemented outside of the
website to improve its authority, reputation, and visibility in search engine results. The main focus of off-
page SEO is to acquire high-quality backlinks from other reputable websites. Some common off-page
SEO techniques include:

 Link building: Earning natural and relevant backlinks from authoritative websites through strategies
such as guest blogging, influencer outreach, content promotion, and social media sharing.

 Social media marketing: Leveraging social media platforms to promote content, engage with the
audience, and build brand awareness and visibility.

 Online reputation management: Monitoring and managing online reviews, mentions, and comments to
maintain a positive brand image.

3. Technical SEO: Technical SEO involves optimizing the technical aspects of a website to improve its
crawlability, indexability, and overall performance in search engines. It focuses on ensuring that search
engine bots can easily access, understand, and index the website's content. Some key elements of technical
SEO include:

 Website speed optimization: Optimizing page load times and overall website performance to provide
a better user experience.

 Mobile-friendliness: Ensuring the website is responsive and optimized for mobile devices, as mobile-
friendliness is a significant ranking factor.

 URL canonicalization: Implementing canonical tags to prevent duplicate content issues and
consolidate link equity.

 XML sitemap creation: Generating an XML sitemap to help search engines discover and index all
pages on the website.
42

 Robots.txt optimization: Configuring the robots.txt file to control search engine crawling and
indexing.

6.4 How are search engine rankings established?

- A website's ranking on search engines is determined using search engines' classification and ranking
algorithms. Search engines like Google use hundreds of factors to determine rankings, including content,
links to the site, page load speed, user experience, and many other factors.

1. Content relevance: Search engines evaluate a website's relevance to a given search query by analyzing
factors such as keyword usage, grammatical relevance, and relevance. meaning and thematic focus.
Pages that are highly relevant to the search query are more likely to rank higher.

2. Quality and Authority: Search engines place a premium on pages that are considered authoritative and
trustworthy. Factors that contribute to a site's authority include the number and quality of backlinks
from reputable websites, as well as the site's overall reputation and trustworthiness.

3. User Experience: Search engines aim to provide the best possible user experience. Factors like page
load speed, mobile-friendliness, ease of navigation, and presence of intrusive ads or pop-ups can
affect rankings. Websites that provide a positive user experience are more likely to be ranked higher.

4. On-page optimization: On-page elements, such as meta tags (titles and descriptions), headings,
content structure, and keyword usage, contribute to optimizing the site for companies. search engine.
Properly optimizing these elements can improve your page's visibility and relevance.

5. User engagement: User engagement metrics, such as click-through rate (CTR), bounce rate, and time
on page, provide signals to search engines about the quality and relevance of the website. Pages that
generate higher levels of user engagement are often considered more valuable and may be rewarded
with higher rankings.

6. Freshness and updates: Search engines often prioritize new and updated content. Websites that
regularly publish new and relevant content or update existing content tend to have a better chance of
ranking.

7. Geographic relevance: For location-based searches, search engines consider the geographic relevance
of websites. Local SEO factors, such as the presence of location-specific keywords, consistent
business information across directories, and local citations, play a role in determining rankings for
queries local search. [13]
43

6.5 SEO standard website design criteria

 Mobile-Friendly Design: With the increasing use of mobile devices for internet browsing, having a
mobile-friendly design is important for SEO. Make sure your website is responsive and adapts well to
different screen sizes and devices.

 Fast page load speed: Site speed is an important ranking factor and affects user experience. Optimize
your site's performance by minimizing file sizes, leveraging caching techniques, and using a content
delivery network (CDN) to ensure fast page load times.

 Clear and intuitive navigation: Design an intuitive navigation structure that allows users and search
engines to easily navigate through your website. Use descriptive and user-friendly URLs, organized
menus, and breadcrumb navigation to improve usability and crawl ability.

 SEO-friendly URL structure: Use keyword-rich, descriptive URLs that accurately reflect the content
of the page. Avoid using complex or lengthy URLs with unnecessary parameters or numbers.

 Proper title tags: Use title tags (H1, H2, H3, etc.) to structure your content and highlight important
sections. Use relevant keywords in your titles to signal the topic and hierarchy of your content.

 Optimized images: Optimize images by compressing them without losing quality to reduce file size.
Use descriptive alt text and file names that include relevant keywords to help search engines
understand the image content.

 Schema markup: Implement structured data or schema markup to provide additional context and
information to search engines. This can improve your site's visibility in search results by displaying
rich snippets, such as star ratings, reviews, and product information.

 XML sitemap: Create and submit XML sitemaps to search engines. This file lists all the pages on
your site and helps search engines discover and index them more effectively.

 User-friendly URLs: Create user-friendly URLs that are easy to read and remember. Avoid using
numbers, special characters, and too many parameters in your URLs.

 Social media integration: Integrate social media sharing buttons and links to encourage content
sharing and engagement, which can indirectly benefit your SEO efforts you by increasing visibility
and driving traffic.

 Accessibility: Make sure your website is accessible to people with disabilities by following web
accessibility guidelines. This includes providing alt text for images, using appropriate title structure,
and ensuring keyboard navigation is possible.
44

 Content organization: Organize your content into logical categories and sections, making it easier for
users and search engines to understand your site's structure and hierarchy.

6.6 Impact of search engines on website performance

1. Organic traffic: Search engines are the main source of organic traffic for websites. When a website
ranks high in search engine results pages (SERPs) for relevant keywords, it is more likely to attract
organic traffic from active users. search for information, products or services related to the content of
the website. Higher organic traffic can lead to increased visibility, brand exposure, and potential
conversions.

2. Visibility and brand awareness: Search engine rankings play a vital role in determining a website's
visibility and brand awareness. Higher rankings mean increased visibility to potential visitors, who
are more likely to click through to the website. Improved visibility in search engine results can
enhance a brand's online presence, allowing it to reach a wider audience and build credibility.

3. Reliability and Trustworthiness: Websites that consistently rank high in search engine results tend to
be viewed by users as more trustworthy and reliable. Search engines act as gatekeepers by evaluating
the quality, relevance, and authority of websites. When a website appears prominently in search
results, it signals to users that the website is reputable and trustworthy, which can positively impact
user trust and engagement. use.

4. User Experience: Search engines prioritize websites that provide a positive user experience. Factors
such as page load speed, mobile friendliness, ease of navigation, and quality content are all
considered in search engine algorithms. Websites that meet these criteria are more likely to rank
higher in search results and provide a better user experience, leading to increased user satisfaction and
engagement.

5. Conversion potential: Higher search engine rankings can improve a website's conversion potential.
When a website appears prominently in search results for relevant keywords, it attracts users who are
actively searching for a product or service. This targeted traffic has a higher likelihood of converting
into leads or customers, which can positively impact your website's performance and business goals.

6. Competitor analysis: Search engine rankings provide valuable insights into competitor performance
and strategies. By tracking and analyzing the rankings of competing websites, businesses can better
understand industry trends, identify potential opportunities, and make informed decisions to improve
website performance theirs.

7. Continuous improvement: Search engine optimization (SEO) efforts to improve rankings can lead to
ongoing improvements in website performance. SEO involves optimizing various aspects of a
website, including content, technical elements, user experience, and more. Implementing SEO best
practices not only helps achieve higher rankings but also
45

6.7 Analyze ranking factors that affect website performance and how page loading speed
affects SEO

- Ranking factors can significantly impact website performance in search engine results.

 Relevance and quality of content: Relevance and quality of content on a website are important
ranking factors. Websites with well-written, informative, and unique content that meets the user's
search intent are more likely to rank higher.

 Backlinks and Link Authority: The quantity and quality of backlinks, which are links from other
websites pointing to your website, play an important role in search engine rankings . Sites with a
strong backlink profile from authoritative and relevant sources tend to perform better.

 On-page optimization: Proper on-page optimization, which includes using relevant keywords in titles,
headings, meta tags, and content, helps search engines understand the topic and its relevance.
website's relevance. On-page optimization also includes factors such as URL structure, image
optimization, and internal linking.

 User experience signals: Search engines consider user experience signals, such as click-through rate
(CTR), bounce rate, and dwell time, as signs of quality and relevance. webpage. Websites that provide
a positive user experience and engage visitors are more likely to rank higher.

 Mobile Friendly: With the increasing use of mobile devices, search engines prioritize mobile-friendly
websites. Having a responsive design that adapts to different screen sizes and provides a seamless
user experience on mobile devices can positively impact rankings.

 Page Load Speed: Page load speed is an essential ranking factor and directly affects website
performance. Pages that load slowly can lead to higher bounce rates and lower user satisfaction.
Search engines prioritize websites that load quickly to provide a better user experience.

- How does page load speed affect SEO?

 User Experience: Slow loading pages frustrate users and lead to poor user experience. Users are more
likely to abandon a site that takes too long to load, which can increase bounce rate. Search engines
look at user experience signals, and a high bounce rate can negatively impact rankings.

 Crawl budget: Search engines have a limited crawl budget, which is the number of pages they can
crawl and index in a given time. Slow-loading pages consume more crawl budget, limit the number of
pages search engines can crawl, and potentially impact indexing and visibility.

 Mobile Ranking: Page load speed is especially important for mobile rankings. Mobile users often
have slower Internet connections, and slow-loading pages can hinder mobile users and lead to lower
rankings for mobile search results.
46

 Web Vitals: Web Vitals are a set of user-centric metrics that measure website performance, including
page load speed. Google has made Core Web Vitals an important ranking factor, and websites that
provide a fast and smooth user experience are more likely to rank higher.

6.8 Provide examples demonstrating how to improve search rankings through SEO

1. Keyword Optimization: Conduct keyword research to identify relevant keywords for your website's
content. Incorporate these keywords naturally into your page titles, headings, meta descriptions, and
throughout the content. For example, if you have a website selling hiking gear, optimize your product
pages with keywords like "best hiking boots" or "durable camping equipment."

2. High-Quality Content: Create informative, engaging, and unique content that provides value to your
target audience. Develop blog posts, articles, or guides that address common questions or challenges
in your industry. Aim to become a reliable resource, and search engines will recognize the value you
provide. For example, if you have a cooking website, create in-depth recipes with step-by-step
instructions, tips, and high-quality images.

3. Link Building: Build a strong backlink profile by earning links from reputable and relevant websites.
Guest posting, outreach campaigns, and creating shareable content can help attract backlinks. For
example, if you run a fashion blog, reach out to fashion influencers or collaborate with other bloggers
to obtain backlinks.

4. On-Page Optimization: Optimize your website's technical elements for search engines. This includes
optimizing meta tags (titles and descriptions), using descriptive URLs, utilizing header tags, and
optimizing image alt tags. Also, ensure your website is mobile-friendly and has a fast loading speed.
For example, if you have an e-commerce site, optimize your product pages with unique meta tags,
clear URLs, and compelling product descriptions.

5. User Experience: Enhance the user experience on your website to improve search rankings. Ensure
your website is easy to navigate, has a clear and intuitive design, and loads quickly. Improve
readability by using proper formatting, headings, and white space. For example, if you have a travel
website, make it easy for users to find destinations, book accommodations, and access helpful travel
guides.

6. Local SEO: If you have a local business, optimize for local search results. Claim and optimize your
Google My Business listing, include your business address and phone number on your website, and
encourage customer reviews. For example, if you own a coffee shop in a specific city, optimize your
website for local keywords like "best coffee shop in [city]."[7]
47

7. EVALUATE A RANGE OF TOOLS AND TECHNIQUES AVAILABLE TO DESIGN AND


DEVELOP A CUSTOM BUILT WEBSITE (M3)

7,1 About tools:

a, IDE (Integrated Development Environment):

 Visual Studio

 Definition: Visual Studio is an integrated development environment (Integrated Development


Environment - IDE) developed by Microsoft. It provides a set of tools and features for developing,
debugging, and deploying applications on Microsoft platforms. [14]

 Advantage:

 Friendly and easy-to-use interface: Visual Studio provides an intuitive and accessible user interface,
making it easy for users to learn and use the IDE's features.

 Multi-language support: Visual Studio supports many programming languages such as C#, VB.NET,
C++, Python, JavaScript and many others, allowing for diverse and cross-platform application
development.

 Powerful debugging tools: The IDE provides professional debugging tools, allowing users to track
and fix errors during application development effectively.

 Backed tool integration: Visual Studio integrates well with backed tools like Git for source code
management, Nu Get for library package management, and Azure for deploying and managing
applications in the cloud

 Defect:

 High system resource requirements: Visual Studio has quite high system resource requirements,
especially when working with large projects. This can reduce performance and increase response
times during development.

 Limited cross-platform integration: Although Visual Studio supports a number of non-Microsoft


languages and platforms, integration and support for these platforms may be limited compared to
platform-specific IDEs separate platform.

 Limited to non-Microsoft projects: Visual Studio is designed primarily for application development
on the Microsoft platform, so it may have limited support and integration with non-Microsoft
technologies and frameworks. Microsoft.

 Vs-code
48

 Definition: Visual Studio Code (Vs-code) is a free and open source code editor developed by
Microsoft. It supports many programming languages and provides many features and tools to support
software development.

 Advantage:

 Multi-platform: Vs-code supports many platforms such as Windows, macOS and Linux, allowing
programmers to use it on different operating systems without difficulty.

 Easy to use and configure: Vs-code has a simple and intuitive interface, easy to use even for
beginners. It also offers powerful customization through keyboard shortcuts, themes, and extensions,
allowing users to customize according to their individual needs.

 High performance: Vs-code is designed for high performance and good optimization in source code
processing and compilation. It runs smoothly and responds quickly, especially when working with
large projects.

 Diverse language support: Vs-code supports many popular programming languages and provides
features such as syntax error checking, code hints, syntax highlighting, and previewing results during
development.

 Extensible ecosystem: Vs-code has a large and vibrant community, offering many extensions and
themes to enhance features and customize the experience. Users can install extensions from the
Marketplace to expand Vs-code's capabilities.

 Defect:

 System resource requirements: Some features of Vs-code, especially when working with large
projects and using many extensions, may require high system resources. This may affect performance
on low-spec computers.

 Lack of deep integration features: Compared to Ides (Integrated Development Environment) like
Visual Studio, Vs-code has less deep integration features and support for specific technologies. This
may leave out some necessary development features in some cases.

 Limited debugging capabilities: Although VSCode has debugging support, compared to some other
Ides, it has some limitations in complex or language-specific debugging.

 Depends on extensions: Although Vs-code extensions provide many extended features, it may depend
on the community and development of the extensions. This means that some specific features may not
be well supported or available without the corresponding extension.

b, Source control (Source code management):

 SVN
49

 Definition: SVN (Subversion) is an open source version management system, used to track and
manage versions and changes in software source code. It provides change history tracking, version
merging, and concurrent version management for software development projects. [15]

 Advantage:

 Track change history: SVN allows detailed tracking of the change history of source code. Users can
view, compare and restore previous versions of source code, making error management and recovery
easy.

 Version merging: SVN supports version merging, allowing multiple developers to work on the same
source code and merge changes safely and automatically.

 Simultaneous version management: SVN allows multiple users to work on the same project and
manage versions simultaneously. It helps avoid conflicts and supports effective teamwork.

 Large project support: SVN supports source code management for large projects with large numbers
of files and folders, making it easy to organize and maintain source code.

 Defect:

 Complex branching process: The process of creating and managing branches in SVN can be complex
and confusing, especially for new users. This can lead to version management issues.

 Network connection required: SVN requires a network connection to access the repository and
perform version management operations. This can make it difficult to work in environments with no
network connection or unstable connection.

 Slow performance with large change history: When the change history of an SVN repository becomes
large, performance may suffer. Retrieving history and performing version management operators can
take considerable time.

 Git

 Definition:Git is a distributed version control system. It allows programmers to store, track, and
manage source code changes within a project. Git allows working independently on separate branches
and supports merging branches together.

 Advantage:

 Effective version management: Git allows storing and managing the change history of source code.
Users can track and restore previous versions, compare changes, and see who changed the source
code.
50

 Easy Collaboration: Git allows working simultaneously on the same project. Users can create and
work on separate branches, then merge changes back to the master branch. This helps increase
collaboration and reduce conflict in project development.

 Distributed and secure: Git is a distributed version management system that allows source code and
change history to be stored on multiple computers. This helps ensure security and disaster recovery.

 Flexibility and speed: Git works quickly and efficiently, allowing users to perform operations such as
commit, branch, merge, and revert flexibly and easily.

 Development tool support: Git integrates well with many popular development tools such as IDE
(Integrated Development Environment), compilers, and software testing support tools.

 Defect:

 Complicated initial learning and use: Git has a fairly complex initial learning curve, especially for
beginners. Grasping concepts like branch, commit, and merge can take time and require
concentration.

 Merge conflicts: During multi-user work on the same project, merge conflicts can occur when
merging changes from different branches. This requires users to manually resolve conflicts to ensure
source code consistency.

 Complexity of large version work: When working on large projects with many branches and complex
changes, managing and resolving conflicts can become difficult and time-consuming.

 Dependent on internet connection: Using Git requires a stable internet connection to be able to access
remote repositories and interact with other project members. This can make it difficult to work in
environments where a reliable internet connection is not available.

 GitHub

 Definition: GitHub is a web-based platform that provides version control and collaboration for
software development projects. It is built on Git, a distributed version control system, and offers a
range of features for developers to manage and track changes to their co debase.

 Advantage:

 Version Control: GitHub provides powerful version control capabilities, allowing developers to track
changes, revert to previous versions, and collaborate on code easily. It enables multiple developers to
work on the same project simultaneously, merging their changes seamlessly.

 Collaboration: GitHub facilitates collaboration among developers by providing features like pull
requests, code reviews, and issue tracking. It allows teams to discuss and review code changes,
suggest improvements, and resolve issues effectively.
51

 Community and Open Source: GitHub has a large and active community of developers. It serves as a
platform for open-source projects, enabling developers worldwide to contribute, share, and
collaborate on projects. It fosters knowledge sharing and collaboration within the software
development community.

 Project Management: GitHub offers project management features, such as project boards, milestones,
and task tracking. It helps teams organize and prioritize work, set goals, and track progress throughout
the development life cycle.

 Defect:

 Learning Curve: Git and GitHub have a learning curve, especially for newcomers to version control
systems. Understanding concepts like branches, commits, and pull requests may require some initial
effort and training.

 Dependency on Internet and Server: GitHub is a cloud-based platform, and its availability depends on
an internet connection and the GitHub server infrastructure. If there are connectivity issues or server
outages, it can impact access to repositories and collaboration.

 Limited Privacy for Free Accounts: While GitHub offers free accounts, they have limitations on
private repositories. Free accounts are primarily designed for open-source projects, and if privacy and
security are crucial, users may need to upgrade to a paid plan.

 Reliance on Third-Party Service: GitHub is a third-party service, and its availability and future
development depend on the policies and decisions of GitHub (owned by Microsoft). This reliance on
an external service may raise concerns for organizations with strict data governance requirements.

c, Database management tool (Database management tool):

 MS

 Definition: Is a tool or software used for database management. MS DB Management Tool is a set of
tools and user interfaces provided by Microsoft for managing databases in their database management
systems, such as Microsoft SQL Server.[16]

 Advantage:

 Friendly User Interface: MS DB Management Tool provides an easy to use and friendly user
interface. Users can intuitively and easily perform database management tasks, including creating,
editing, and deleting databases, tables, queries, and other objects.

 Convenient database management: MS DB Management Tool provides many features and tools to
support database management. This includes creating and managing tables, editing data, executing
SQL queries, creating and managing constraints, indexes, and authentication in the database.
Whether.
52

 Integration with Microsoft database management systems: MS DB Management Tool is specifically


designed to interact and work with Microsoft database management systems, such as Microsoft SQL
Server. This ensures compatibility and good integration with database management system
technologies and features.

 Provides scheduling and automation capabilities: MS DB Management Tool allows users to schedule
and automate database management tasks. This reduces the effort and time spent performing routine
tasks such as backup and recovery, database optimization, and data integrity checking.

 Defect:

 Limited platform support: Microsoft's MS DB Management Tool typically provides the best support
for their database management systems, such as Microsoft SQL Server. This can create difficulties
when working with other database management systems or in cross-platform environments.

 Depends on license and cost: MS DB Management Tool may require a license and have usage costs.
This can be a barrier for projects that have limited resources or do not want to invest in commercial
software.

 Requires specific knowledge: Using MS DB Management Tool requires users to have specific
knowledge and skills in database management and this task can be challenging for beginners or those
with no experience. Experience with MS DB Management Tool.

 Limited flexibility: MS DB Management Tool may have limited flexibility compared to other
database management tools. Features and options may be limited or not flexible enough to meet
unique project requirements.

 SQLyog

 Definition: SQLyog is a popular graphical user interface (GUI) tool for managing and interacting
with MySQL databases. It provides a user-friendly interface that allows users to perform various
database tasks such as executing queries, managing database objects, and administering MySQL
servers.

 Advantage:

 User-Friendly Interface: SQLyog offers an intuitive and user-friendly interface, making it easy for
users to navigate and interact with their MySQL databases. It provides visual query builders, syntax
highlighting, and result visualization, enhancing the user experience.

 Query Execution and Optimization: SQLyog provides tools for executing and optimizing SQL
queries. It offers features like query profiling, explain plans, and index analyzer, which help identify
and resolve performance issues, optimizing query execution.
53

 Database Management: SQLyog allows users to manage database objects, such as tables, views,
stored procedures, and triggers. Users can create, modify, and delete database objects conveniently,
simplifying database administration and maintenance tasks.

 Remote Database Management: SQLyog supports remote database management, enabling users to
connect to and administer MySQL servers located on different machines or remote locations. This
feature is particularly beneficial for distributed teams or managing databases in a remote environment.

 Defect:

 Limited Compatibility: SQLyog is specifically designed for MySQL databases and may not be
compatible with other database management systems (DBMS). If you are working with databases
other than MySQL, you may need to use a different tool or switch to a more generic DBMS client.

 Licensing and Cost: SQLyog is available in both free and paid versions, with additional features and
advanced functionalities included in the paid versions. The licensing and cost structure may be a
consideration, depending on the specific needs and budget of the user or organization.

 Platform Limitations: SQLyog is primarily designed for Windows operating systems. While there are
workarounds available to use it on other platforms, the official support is limited to Windows. Users
on other operating systems may need to explore alternative tools or virtualization options.

 Learning Curve: Like any software tool, SQLyog has a learning curve, especially for users who are
new to the MySQL environment. Understanding the features, functionalities, and workflows of
SQLyog may require some initial training and familiarization.

 Heidi-SQL

 Definition: HeidiSQL is a free and open-source graphical user interface (GUI) tool used for
managing and interacting with databases, primarily MySQL, MariaDB, Microsoft SQL Server, and
PostgreSQL. It provides a convenient way to execute queries, manage database objects, and
administer database servers.

 Advantage:

 User-Friendly Interface: HeidiSQL offers a user-friendly and intuitive interface, making it easy for
users to navigate and interact with their databases. It provides features like syntax highlighting, code
completion, and result visualization, enhancing the overall user experience.

 Multi-Platform Support: HeidiSQL is available for Windows operating systems and can also be used
on Linux and macOS through compatibility layers or virtualization. This multi-platform support
allows users to work with their preferred operating system.
54

 Query Execution and Optimization: HeidiSQL provides tools for executing and optimizing SQL
queries. It allows users to analyze query performance, view execution plans, and optimize queries for
better database performance.

 Database Management: HeidiSQL allows users to manage various database objects such as tables,
views, stored procedures, and triggers. Users can create, modify, and delete database objects
conveniently, simplifying database administration tasks.

 Defect:

 Limited Compatibility: While HeidiSQL supports popular database systems like MySQL, MariaDB,
Microsoft SQL Server, and PostgreSQL, it may not be compatible with all database management
systems (DBMS). If you are working with a different DBMS, you may need to use a different tool or
explore alternative solutions.

 Advanced Functionality: While HeidiSQL provides essential database management features, it may
lack some advanced functionalities offered by other commercial tools. Users requiring specific
advanced features may need to consider alternative tools or paid solutions.

 Learning Curve: HeidiSQL, like any database management tool, has a learning curve, particularly for
users who are new to the specific DBMS or GUI tools. Users may need to invest some time in
understanding the features, workflows, and capabilities of HeidiSQL.

 Community Support: As an open-source tool, the level of community support and regular updates
may vary. While HeidiSQL has an active community of users and developers, the availability of
support and updates may not be as consistent as commercial tools.

7.2 Technically:

a, Programming language:

 Python

 Definition: Python is an open source, high-level programming language, developed in 1991. It is


designed for easy reading, simple syntax, and a focus on clarity. Python has a strong ecosystem with
many supporting libraries and tools, and is widely used in many fields such as web development,
artificial intelligence, data analysis and automation.[17]

 Advantage:

 Easy reading and simple syntax: Python has a clear and simple syntax, making it easy for
programmers to read, understand, and write code.
55

 Flexibility and versatility: Python is a versatile language that can be used for web application
development, data analysis, artificial intelligence, automation, and many other fields.

 Powerful ecosystem and rich libraries: Python has a strong ecosystem with many rich libraries and
support tools, helping to reduce application development time and effort.

 Cross-platform support: Python is available for multiple operating system platforms, including
Windows, macOS, and Linux, allowing applications to be developed and run in a variety of
environments.

 Defect:

 Execution speed is slower than some other languages: Python has a slower execution speed than some
other programming languages such as C++ or Java. This can be a problem for applications that
require high speed and large processing.

 Version overriding: Python does not support version overriding natively like some other languages.
This can make it difficult to manage versions of libraries and dependencies in large projects.

 User Interface: Python does not provide a default graphical user interface (GUI). This means that
when developing applications that require complex graphical user interfaces, programmers need to
use third-party libraries or tools to build the interface.

 Resource Consumption: Python has higher resource consumption compared to some other languages.
This can be a limitation for systems with limited resources, such as embedded devices.

 C#

 Definition: Is a general programming language, developed by Microsoft. It is designed to build


applications on the .NET Framework platform. C# is highly regarded for its safety, performance, and
ease of learning, and it is commonly used in developing desktop applications, mobile applications,
and web applications.

 Advantage:

 Easy to learn and use: C# is designed to have a clear and easy-to-understand syntax, making it easy
for beginners to learn programming. It also has some syntax and programming conventions in
common with other programming languages in the C family, such as C++ and Java, so people who
have worked with these languages can easily switch to C#. easy way.

 Safety and control: C# is designed with a high safety and control model in mind. It has an automatic
memory management system (garbage collector) to free up memory and reduce the risk of errors such
as memory overflow. C# also has style and access control mechanisms, which help prevent errors in
execution and protect data.
56

 Strong support from .NET Framework: C# is part of the .NET Framework, a powerful application
development platform from Microsoft. The .NET Framework provides a large library of pre-built
classes and methods, helping to reduce application development time and effort. It also supports many
features such as multi-threading, network communication, XML data processing and many other
useful libraries.

 Cross-platform: C# not only supports application development on the Windows platform but also has
the ability to develop on many different platforms such as Linux and macOS through .NET Core. This
increases flexibility and code reuse.

 Defect:

 Limitations in mobile application development: Although C# can be used for mobile application
development through frameworks like Xamarin, it does not have the same popularity as languages
like Swift (for iOS) and Java/Kotlin (for Android). This can limit your ability to find documentation
and support from the community.

 Depends on Microsoft technology: C# and .NET Framework are closely dependent on Microsoft
technology. This means that C# application development may require the use of Microsoft tools and
software, creating constraints and dependencies on this technology family.

 Limited performance: Some objections to C# are that its performance is not as optimized as other
programming languages

 PHP

 Definition:PHP (Hypertext Preprocessor) is a server-side scripting language primarily used for web
development. It is an open-source language that can be embedded within HTML code and executed
on a web server to generate dynamic web pages. PHP is widely used for building websites, web
applications, and web services.

 Advantage:

 Easy to Learn and Use: PHP has a relatively easy learning curve, especially for those with prior
knowledge of programming concepts. Its syntax is similar to C and Perl, making it accessible for
developers to start building web applications quickly.

 Wide Community and Support: PHP has a vast and active community of developers. This community
provides extensive documentation, tutorials, forums, and resources, making it easier to find help,
share knowledge, and collaborate with other PHP developers.

 Platform Independence: PHP is a cross-platform language, which means it can run on various
operating systems such as Windows, Linux, macOS, and more. This platform independence allows
developers to deploy PHP applications on different servers and infrastructure without significant
modifications.
57

 Integration with Databases: PHP has excellent support for database integration. It provides built-in
extensions and libraries to connect to popular databases like MySQL, PostgreSQL, SQLite, and more.
This enables developers to easily interact with databases and perform CRUD (Create, Read, Update,
Delete) operations.

 Extensive Frameworks and Libraries: PHP has a vast ecosystem of frameworks and libraries that
simplify web development tasks. Frameworks like Laravel, Symfony, and CodeIgniter provide ready-
to-use components, MVC architecture, and robust features, saving development time and effort.

 Defect:

 Inconsistent Standard Library: PHP's standard library can be inconsistent in terms of naming
conventions, function parameters, and behavior across different versions. This can sometimes lead to
confusion and make code maintenance more challenging.

 Security Vulnerabilities: PHP, like any programming language, can be susceptible to security
vulnerabilities if not used correctly. Inadequate input validation, improper handling of user data, and
insecure coding practices can lead to vulnerabilities such as SQL injection, cross-site scripting (XSS),
and code injection.

 Performance: While PHP has improved its performance over the years, it may not be as fast and
efficient as some other programming languages. Certain factors, such as inefficient code, heavy
database queries, or lack of caching mechanisms, can impact the performance of PHP applications.

 Scalability: PHP, by default, is not designed for handling extremely high traffic or large-scale
applications. Scaling PHP applications may require additional architectural considerations, such as
load balancing, caching strategies, and distributed systems.

b, Framework:

 Django

 Definition: Django is an open source web application development framework written in Python. It
helps programmers build complex web applications quickly and easily by providing convenient tools
and libraries.[18]

 Advantage:

 Fast and efficient: Django helps programmers develop web applications quickly by providing
convenient tools and libraries. It supports Rapid Development and has many pre-built features
available.

 MTV model (Model-Template-View): Django uses the MTV model, which helps clearly separate data
(Model), interface (Template) and processing logic (View). This increases modularity and makes it
easier to maintain and extend the application.
58

 Strong Security: Django comes with built-in security features like user authentication, secure
password handling, protection against common attacks like CSRF and SQL injection attacks.

 Large ecosystem and vibrant development community: Django has a strong development community,
providing extensive documentation, libraries, and support tools. This community helps solve
problems, provides suggestions, and ensures the continuous development of the framework.

 Defect:

 Learn the initial syntax: Django has a number of unique concepts and syntax that require
programmers to learn and understand before using it effectively. This can create an initial entry
threshold for Django beginners.

 Too heavy and difficult to customize: Due to Django's comprehensive nature, it can become
burdensome for small and simple applications. This can increase development time and make
customization difficult for the specific needs of the project.

 Some performance limitations: Although Django is a powerful framework, its performance may not
be as good as other frameworks like Flask or Node.js in some special cases, especially when dealing
with numbers Large numbers of concurrent requests or real-time processing requirements.

 Too dependent on ORM: Django uses ORM (Object-Relational Mapping) to interact with the
database. However, reliance on an ORM can cause some performance issues and limitations in
optimizing complex database queries.

 ASP.NET

 Definition: is a free and open source framework used to build web applications and services on
the .NET platform. It provides a flexible and powerful development environment, allowing
programmers to build high-quality and high-performance web applications.

 Advantage:

 Compatibility: ASP.NET has broad compatibility with .NET Framework versions. It supports
multiple programming languages such as C#, VB.NET and F#, allowing programmers to use
languages they are already familiar with.

 High performance: ASP.NET is optimized to provide high performance for web applications. It uses
technologies like Just-In-Time Compilation (JIT) and Caching to increase processing speed and
reduce server load.

 Strong Security: ASP.NET provides strong security features like authentication and authorization,
protecting against attacks like Cross-Site Scripting (XSS) and Cross-Site Request Forgery (CSRF).
59

 Cross-platform support: ASP.NET Core, a version of ASP.NET, supports running on multiple


platforms such as Windows, Linux and macOS. This allows writing a web application once and
deploying it across multiple environments.

 Laravel

 Definition: Laravel is a popular open-source PHP framework used for web application development.
It provides an elegant syntax, a robust set of tools and libraries, and follows the Model-View-
Controller (MVC) architectural pattern. Laravel simplifies the development process by offering
features like routing, database access, caching, authentication, and more.

 Advantage:

 Elegant Syntax and Developer-Friendly: Laravel has a clean and expressive syntax that makes writing
code more enjoyable and readable. It focuses on developer productivity and provides conventions and
shortcuts for common tasks, reducing the amount of boilerplate code.

 MVC Architecture: Laravel follows the MVC architectural pattern, which promotes separation of
concerns and improves code organization. This structure allows developers to work on different
components independently, enhancing maintainability and scalability.

 Rich Ecosystem and Packages: Laravel has a vast ecosystem with numerous packages and libraries
contributed by the Laravel community. These packages provide ready-to-use functionality for
common tasks like user authentication, API integration, payment gateways, and more, saving
development time and effort.

 Powerful ORM and Database Abstraction: Laravel comes with an Object-Relational Mapping (ORM)
called Eloquent, which simplifies database operations by providing an intuitive and expressive syntax.
Eloquent allows developers to interact with the database using PHP objects, making database
operations more readable and efficient.

 Robust Routing and Middleware: Laravel offers a powerful routing system that allows developers to
define clean and flexible routes for their application. It also supports middleware, which provides a
convenient way to filter HTTP requests and perform tasks like authentication, CSRF protection, and
more.

 Defect:

 Learning Curve: While Laravel aims to be developer-friendly, it still has a learning curve for
newcomers. Understanding the framework's concepts, conventions, and best practices may require
some time and effort, especially for developers who are new to PHP frameworks or MVC
architecture.

 Performance Overhead: Laravel is a feature-rich framework, and some of these features may
introduce a performance overhead compared to leaner frameworks or plain PHP. However, with
60

proper configuration, optimization techniques, and caching mechanisms, the performance impact can
be mitigated.

 Version Compatibility: Upgrading Laravel to newer versions may require adjustments and
modifications to the existing codebase. Changes in syntax, deprecated features, or breaking changes
can cause compatibility issues when migrating from older versions to the latest ones.

 Community Support: While Laravel has a large and active community, the support and availability of
resources may vary for less common or niche requirements. Some specialized functionalities or
specific edge cases may have limited resources or documentation compared to more popular aspects
of Laravel.

c, Database servers (Database management system):

 SQL server

 Definition: SQL Server is a powerful and reliable relational database management system. It provides
an environment for storing, querying and managing data based on SQL (Structured Query Language).

 Advantage:

 Reliable and Stable: SQL Server is designed to ensure high reliability and stability. It supports
features such as transaction log and backup to ensure data is not lost and recoverable.

 High performance: SQL Server optimized to provide high performance for database operations. It
uses techniques such as query optimization, indexing, and caching to speed up data retrieval.

 Powerful features: SQL Server provides many powerful features for database management, including
distributed processing, replication capabilities, and Business Intelligence technology integration.

 Cross-platform support: SQL Server can run on multiple platforms, including Windows and Linux.
This allows deploying the database across a variety of environments and taking advantage of SQL
Server features on different operating systems.

 Defect:

 Price and hardware configuration: SQL Server is expensive and requires strong hardware
configuration to ensure good performance. This can be a barrier for small businesses and projects with
limited resources.

 Complex and requires skills: SQL Server is a complex database management system, its management
and adjustment requires in-depth database knowledge and skills.

 Limits on scalability: Although SQL Server is scalable, in some special cases or with large volumes
of data, it can reach its limits in scalability and performance.
61

 MySQL

 Definition: MySQL is a popular and powerful relational database management system. It provides an
environment for storing, querying and managing data based on SQL (Structured Query Language).

 Advantage:

 Ease of Use and Familiarity: MySQL has a user-friendly interface and a straightforward SQL syntax,
making it relatively easy to learn and use, especially for developers familiar with SQL. Its popularity
also means that there are abundant resources, tutorials, and community support available.

 High Performance: MySQL is optimized for performance, allowing it to handle a large number of
concurrent users and high-volume transactions efficiently. It employs various performance
optimization techniques, such as indexing, caching, and query optimization, to deliver fast response
times.

 Scalability and Flexibility: MySQL offers scalability options, allowing businesses to handle
increasing data loads and user demands. It supports replication, sharding, and clustering techniques to
distribute data across multiple servers and ensure high availability and performance.

 Strong Security Features: MySQL provides robust security features to protect data integrity and
confidentiality. It supports user authentication, access control, encryption, and auditing capabilities to
safeguard sensitive information. Additionally, regular security updates and patches are released to
address any identified vulnerabilities.

 Wide Platform Support and Integration: MySQL is compatible with various operating systems,
including Windows, Linux, macOS, and BSD. It also integrates seamlessly with popular
programming languages, web frameworks, and tools, making it versatile for building applications
across different environments.

 Defect:

 Limited Support for Complex Data Structures: MySQL is primarily designed for structured data and
may have limitations when dealing with complex data structures or unstructured data. It may not
provide the same level of support and performance for handling hierarchical, graph, or document-
oriented data as specialized No SQL databases.

 Sub optimal Performance for Highly Concurrent Workloads: While MySQL performs well under
normal workloads, it may face performance challenges when dealing with highly concurrent
scenarios. In such cases, advanced configuration, optimization techniques, and fine-tuning may be
necessary to achieve optimal performance.

 Lack of Advanced Analytic Features: MySQL's focus is primarily on transaction processing rather
than advanced analytic. While it provides basic analytical capabilities, it may lack some advanced
62

features and functions found in dedicated analytical databases. For complex analytic requirements,
integrating MySQL with specialized analytic tools or platforms may be necessary.

 Database Administration Complexity: Managing and administrating a MySQL database can be


complex, especially as the database grows in size and complexity. Tasks such as backup and recovery,
performance tuning, and high availability configurations may require specialized knowledge and
expertise.

 MongoDB

 Definition:MongoDB is a popular open-source No-SQL database management system that is


designed for handling unstructured, semi-structured, and structured data. It belongs to the document-
oriented database category and stores data in flexible, JSON-like documents. MongoDB provides high
scalability, high availability, and automatic sharing capabilities.

 Advantage:

 Flexible and Scalable Data Model: MongoDB's document-based data model allows for flexibility in
data representation. It can handle unstructured and semi-structured data with ease, making it suitable
for evolving data schemas. MongoDB's automatic sharding feature enables horizontal scalability,
allowing applications to handle large volumes of data and high traffic loads.

 High Performance: MongoDB is known for its high-performance capabilities. It offers fast read and
write operations by utilizing in-memory computing, indexing, and efficient data storage. Its flexible
data model also eliminates complex join operations, resulting in faster query execution.

 Distributed Data and High Availability: MongoDB supports replication and automatic failover,
ensuring high availability and data redundancy. It allows for the creation of replica sets, which consist
of multiple copies of data that are synchronized across different servers. In the event of a server
failure, MongoDB automatically promotes a secondary replica to the primary role, minimizing
downtime.

 Ad Hoc Queries and Indexing: MongoDB allows for ad hoc queries, meaning that queries can be
written on the fly without the need to define a predefined schema or structure. This flexibility enables
developers to iterate quickly during the development process. Additionally, MongoDB provides
various indexing options to optimize query performance.

 Horizontal Scalability: MongoDB offers horizontal scalability through its sharding feature. Sharding
distributes data across multiple servers or shards, enabling applications to scale horizontally and
handle increased data and traffic loads. This allows for seamless expansion as the application grows.

 Defect:

 Lack of Transactions: MongoDB's earlier versions did not support multi-document transactions.
Although recent versions have incorporated limited support for transactions, they are not as
63

comprehensive as in traditional relational databases. The absence of full ACID (Atomicity,


Consistency, Isolation, Durability) transactions may require developers to handle complex business
logic or integrity constraints outside the database.

 Increased Memory Usage: MongoDB's indexing and in-memory computing features contribute to its
high performance but can also result in increased memory usage. Storing large indexes or frequently
accessed data in memory may require careful memory management to ensure optimal performance
and avoid resource constraints.

 Data Integrity and Schema Evolution: MongoDB's flexible data model allows for schema-less data
storage. While this flexibility is advantageous, it can also introduce challenges related to data integrity
and schema evolution. Ensuring data consistency and managing schema changes across a large-scale
MongoDB deployment may require careful planning and implementation.

 Maturity and Tooling: Although MongoDB has been widely adopted and used in production
environments, it may be perceived as less mature compared to traditional relational databases. Some
organizations may find the ecosystem of tools, frameworks, and third-party integrations for
MongoDB to be less extensive or mature compared to more established databases.

8. JUSTIFY THE TECHNIQUES, MANAGEMENT SERVICES, TOOLS AND SOFTWARE


CHOSEN TO REALISE A CUSTOM BUILT WEBSITE. (D1)

1. Front-end framework (ReactJS / VueJS / ...):

→ReactJS and VueJS are two of the popular and powerful front-end frameworks. They provide tools and
libraries to build highly interactive and responsive user interfaces. These frameworks help separate logic
and user interface, making application development easier by using reusable components and managing
application state effectively. [19]

 Strengths: Provides powerful tools and libraries for building highly interactive user interfaces.
Supported by a large community, with extensive documentation and examples available, helps
increase development productivity.

2. Back-end framework ASP.NET:

→ASP.NET is a powerful framework for web application development. It provides a good object-oriented
architecture, supporting many programming languages such as C# and VB.NET. ASP.NET has built-in
important features such as routing, session management, caching, security and error management. It also
supports MVC (Model-View-Controller) pattern to separate application logic and user interface, making it
easy to maintain and test. [20]
64

 Strengths: ASP.NET is a powerful and reliable framework for web application development. It
provides a good object-oriented architecture, supports many programming languages (C#, VB.NET),
and has built-in features such as routing, session management, caching, security and error
management. [21]

 ASP.NET also supports web application development according to the MVC (Model-View-
Controller) model, helping to separate logic and user interface, making it easy to maintain and test.

3. Visual Studio (IDE):

→ Visual Studio is a popular and powerful IDE (Integrated Development Environment) for .NET
development. It provides diverse support tools and features for programming, debugging, testing, and
deploying applications. Visual Studio has a friendly interface, allowing for quick and efficient application
development. It also integrates well with other Microsoft tools and services, like Azure and Source
Control (Github).

 Strengths: Visual Studio is a popular and powerful IDE for .NET development. It provides diverse
support tools and features for programming, debugging, testing, and application deployment. Visual
Studio has a friendly interface and integrates well with other Microsoft tools and services.

4. HeidiSQL (SQL tool):

→ HeidiSQL is a popular and easy-to-use SQL database management tool. It provides an intuitive
graphical interface for manipulating databases, performing queries, managing tables, editing data, and
backing up/recovering data. HeidiSQL supports many popular database management systems such as MS-
SQL Server, MySQL and PostgreSQL. This makes managing and interacting with the database easy and
convenient. [22]

 Strengths: HeidiSQL is a popular and easy-to-use SQL database management tool. It provides an
intuitive graphical interface that allows manipulating databases, performing queries, managing tables,
editing data, and backing up/recovering data. HeidiSQL supports many popular database management
systems such as MS-SQL Server, MySQL, PostgreSQL.

5. Source Control: GitHub:

→GitHub is a popular and powerful source code version management platform. It offers features like
version management, change tracking, branching, and multi-user collaboration. GitHub has a large
community, allowing source code sharing, interaction with open source projects and seamless integration
with other services such as CI/CD (Continuous Integration/Continuous Deployment). Using GitHub
makes source code management and teamwork easy and effective. [23]

 Strengths: GitHub is a popular and powerful source code version management platform. It provides
features such as version management, change tracking, branching, and multi-user collaboration.
65

GitHub has a large community, allowing for code sharing, interaction with open source projects, and
seamless integration with other services like CI/CD.

6. Database: MS-SQL Server:

→ MS-SQL Server is a relational database management system (RDBMS) developed by Microsoft. It


provides a robust and reliable data storage environment for web and enterprise applications. MS-SQL
Server supports the SQL query language to perform query operations, create tables, manage access rights,
and perform other database-related operations. It also provides security features, data backup and
recovery, and scalability to handle high loads and large projects. [24]

 Strengths: MS-SQL Server is a relational database management system (RDBMS) developed by


Microsoft. It provides powerful features for data management, efficient queries, security, and
scalability. MS-SQL Server supports features such as data locking, ACID transactions, data
backup/recovery, and the ability to combine with other Microsoft technologies.

7. OS: Windows Server:

→Windows Server is an operating system developed by Microsoft, specifically designed to run


applications and services on a server environment. It provides features and tools that support management,
security, networking, storage, and stability for enterprise and web applications. Windows Server can be
deployed on physical servers or in a virtualized environment. [25]

 Strengths: Windows Server is an operating systemWindows Server is a popular operating system and
is optimized for running .NET applications. It provides a stable development environment and is well
compatible with Microsoft technologies. Windows Server supports security features, resource
management, and flexible scalability. [26]

8. Webserver: IIS (Internet Information Services):

→IIS is a web server developed by Microsoft, built into Windows Server. It provides services and
functions to serve web applications on Windows environment. IIS supports multiple protocols such as
HTTP, HTTPS, FTP, and SMTP, allowing it to serve static and dynamic websites, ASP.NET web
applications, and other web services. IIS provides security, management, and performance features to
ensure the stable and efficient operation of web applications on Windows servers. [27]

 Strengths: IIS is a popular and powerful web server developed by Microsoft. It provides a stable,
high-performance running environment and good support for ASP.NET applications. IIS provides
features such as managing web applications, load distribution, security, and SSL certificate
management.
66

C. CONCLUSION

- We have given a lot of detail and detailed each section defining the pros and cons of each language and
website and how the website works. Based on the comparison between online website builders and
custom-built websites, it can be concluded that both have their own advantages. Online website builders
offer convenience and ease of use for those without programming skills. They offer built-in design
templates and a drag-and-drop interface, helping users create interfaces that are intuitive and easy to use.

D. REFERENCES

[1] (No date). Available at: https://fptshop.com.vn/tin-tuc/danh-gia/website-la-gi-169249 (Accessed: 7


March 2024).

[2]K., A. (2023) What Is a Website? Understanding the Components and Different Categories, Hostinger
Tutorials. Available at: https://www.hostinger.com/tutorials/what-is-website/?
ppc_campaign=google_search_generic_hosting_all&bidkw=defaultkeyword&lo=1028581&gad_source=1
&gclid=CjwKCAiA0bWvBhBjEiwAtEsoWzANxs8LhcYVJJdUhcnjrYdjypvyA18RzvV7uvAYgd0tE_2c
yqq7LhoCdZwQAvD_BwE (Accessed: 10 March 2024)

[2] Viettuanvn (2024) Giao thức truyền thông là gì? Các giao thức được ứng dụng phổ biến, Việt Tuấn -
Phân Phối Thiết Bị Mạng, Wifi, Thiết Bị Lưu Trữ NAS. Available at: https://viettuans.vn/giao-thuc-
truyen-thong-la-gi (Accessed: 7 March 2024).

[3] GfG (2023) Types of Internet Protocols, GeeksforGeeks. GeeksforGeeks. Available at:
https://www.geeksforgeeks.org/types-of-internet-protocols/ (Accessed: 10 March 2024).

[4] What is Server Hardware? + Types of Server Hardware (no date) N6 Cloud Blog. Available at:
https://n6cloud.com/blog/server-hardware/ (Accessed: 7 March 2024).

[5] IMTA, D. M. (2023) Front End là gì? Những Kỹ Năng Frontend Cần Học Để Làm Tốt, Trung Tâm
Đào Tạo IMTA. Available at: https://imta.edu.vn/font-end-la-gi/#h-frontend-la-gi (Accessed: 7 March
2024).

[6] Computer Basics: Understanding Operating Systems (no date) GCFGlobal.org. GCFGlobal Learning.
Available at: https://edu.gcfglobal.org/en/computerbasics/understanding-operating-systems/1/ (Accessed:
10 March 2024).

[6] Thành công và hạnh phúc nằm trong bạn. Quyết tâm hạnh phúc and Daisy (no date) HTML, CSS,
JavaScript là gì?, Tự học lập trình. Available at: https://tuhoclaptrinh.edu.vn/html-css-javascript-la-gi-
806.html#:~:text=HTML%20c%C3%B3%20nhi%E1%BB%87m%20v%E1%BB%A5%20x%C3%A2y
%20d%E1%BB%B1ng%20n%E1%BB%99i%20dung%2C%20c%E1%BA%A5u%20tr%C3%BAc,qu
67

%C3%A1%20tr%C3%ACnh%20x%C3%A2y%20d%E1%BB%B1ng%20website. (Accessed: 7 March


2024).

[7] (No date) Checking your browser - reCAPTCHA. Available at: https://www.semrush.com/blog/seo-
ranking/ (Accessed: 7 March 2024).

[8] Vue.js vs React.js: Discovering the Frontend Framework Paradox (no date) Lucent Innovation.
Available at: https://www.lucentinnovation.com/blogs/technology-posts/vue-js-vs-react-js-which-one-is-
the-best-choice-for-cutting-edge-web-development-in-2023 (Accessed: 10 March 2024).

[9] Top Web Design Tools for Designers in 2024 (2024) BrowserStack. Available at:
https://www.browserstack.com/guide/top-web-design-tools (Accessed: 10 March 2024).

[10] Top 10 Frontend & Backend Frameworks (2023) Back4App Blog. Available at:
https://blog.back4app.com/front-end-and-back-end-frameworks/#2_Angular_Frontend (Accessed: 10
March 2024).

[11] What Is SEO - Search Engine Optimization? (2023) Search Engine Land. Available at:
https://searchengineland.com/guide/what-is-seo (Accessed: 10 March 2024).

[12] Simplilearn (2024) 12 Types of SEO: Top SEO Techniques to Increase Traffic in
2024, Simplilearn.com. Simplilearn. Available at: https://www.simplilearn.com/main-types-of-seo-
techniques-in-digital-marketing-article (Accessed: 10 March 2024).

[13] Search engine ranking => Content Marketing Glossary (2023) clickworker.com. Available at:
https://www.clickworker.com/content-marketing-glossary/search-engine-ranking/ (Accessed: 10 March 2024).

[14] GfG (2023) Introduction to Visual Studio, GeeksforGeeks. GeeksforGeeks. Available at:
https://www.geeksforgeeks.org/introduction-to-visual-studio/ (Accessed: 10 March 2024).

[15] Linode (2023) Git vs SVN: Pros and Cons of Each Version Control System, Linode Guides &
Tutorials. Linode. Available at: https://www.linode.com/docs/guides/svn-vs-git/ (Accessed: 10 March
2024).

[16] ScaleupAlly (2024) Advantages & Disadvantages of MS Access, ScaleupAlly. Available at:
https://scaleupally.io/blog/advantages-disadvantages-of-ms-access/ (Accessed: 10 March 2024).

[17] Advantages and Disadvantages of Python: Python Language Overview (2024) Startup House.
Available at: https://startup-house.com/blog/advantages-and-disadvantages-of-python (Accessed: 10
March 2024)

[18] Nader, Y. (no date) What is Django? Advantages and Disadvantages of using Django, Hackr.io.
Available at: https://hackr.io/blog/what-is-django-advantages-and-disadvantages-of-using-django
(Accessed: 10 March 2024).
68

[19]“What Is ASP.NET?: .NET.” 2024. Microsoft. Accessed March 10. https://dotnet.microsoft.com/en-


us/learn/aspnet/what-is-aspnet.

[20] Build Your Own ASP.NET Website With C# And VB.NET: Chapter 1 (no date) SitePoint. Available
at: https://www.sitepoint.com/asp-dot-net-introduction/#google_vignette (Accessed: 10 March 2024).

[21] Containerize (no date) Open Source Administration Tool for MySQL and Other DBMS, HeidiSQL |
Administration Tool for MySQL and Other DBMS. Available at:
https://products.containerize.com/database-management/heidisql/ (Accessed: 10 March 2024).

[22] Guide, Y. D. (2023) Git, GitLab, and GitHub: Powering Collaboration and Version
Control, LinkedIn. Available at: https://www.linkedin.com/pulse/git-gitlab-github-powering-
collaboration-version-control/ (Accessed: 10 March 2024).

[23] What is MSSQL?: MSSQL Tutorial (no date) What is MSSQL? | MSSQL Tutorial. Available at:
https://hasura.io/learn/database/microsoft-sql-server/what-is-mssql/ (Accessed: 10 March 2024).

[24] Walat, T. (2017) What is Microsoft Windows Server OS (operating system)?: Definition from
TechTarget, SearchWindowsServer. TechTarget. Available at:
https://www.techtarget.com/searchwindowsserver/definition/Microsoft-Windows-Server-OS-operating-
system (Accessed: 10 March 2024).

[25] GrantMeStrength (no date) Windows Server - Win32 apps, Win32 apps | Microsoft Learn. Available
at: https://learn.microsoft.com/en-us/windows/win32/srvnodes/windows-server (Accessed: 10 March
2024).

[26] Vuollet, P. (2024) What is IIS Web Server: (Internet Information Services)?, Stackify. Available at:
https://stackify.com/iis-web-server/ (Accessed: 10 March 2024).

[27] Rosencrance, L. and Bigelow, S. J. (2019) What is IIS (Internet Information Services) and How Does
it Work?, SearchWindowsServer. TechTarget. Available at:
https://www.techtarget.com/searchwindowsserver/definition/IIS (Accessed: 10 March 2024).

You might also like