0% found this document useful (0 votes)
18 views76 pages

Swabhiman Rawal

The document outlines the CS6P05NI Final Year Project titled 'Smart Voting Nepal' by Swabhiman Rawal, focusing on the development of a Multi Online Voting System to address Nepal's electoral challenges. Utilizing the MERN stack, the system aims to enhance accessibility, security, and transparency in voting, particularly for remote areas, thereby increasing voter participation. The report includes a detailed assessment of the project's methodology, development progress, and comparisons with similar e-voting systems globally.

Uploaded by

swabhimanrawal06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views76 pages

Swabhiman Rawal

The document outlines the CS6P05NI Final Year Project titled 'Smart Voting Nepal' by Swabhiman Rawal, focusing on the development of a Multi Online Voting System to address Nepal's electoral challenges. Utilizing the MERN stack, the system aims to enhance accessibility, security, and transparency in voting, particularly for remote areas, thereby increasing voter participation. The report includes a detailed assessment of the project's methodology, development progress, and comparisons with similar e-voting systems globally.

Uploaded by

swabhimanrawal06
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 76

Module Code & Module Title

CS6P05NI Final Year Project

Assessment Weightage & Type

25% Interim Report

Pure Motion

“Smart Voting Nepal”

Student Name: Swabhiman Rawal

London Met ID: 20049080

College ID: np01CP4S210130

Internal Supervisor: Mr. Dipeshor Silwal

External Supervisor: Mr. Ashutosh Chauhan

Assignment Due Date: 8th January 2024

Assignment Submission Date: 8th January 2024


Word Count : 11000

I confirm that I understand my coursework needs to be submitted online via My Second Teacher under the
relevant module page before the deadline in order for my assignment to be accepted and marked. I am
fully aware that late submissions will be treated as non-submission and a mark of zero will be awarded.

Table of content
1. Introduction.................................................................................................................. 1
1.1. Problem Domain ................................................................................................... 2
1.2. Project as a Solution ............................................................................................. 2
2.1. About the Client .................................................................................................... 3
2.2. Understanding the Solution ................................................................................... 3
2.3. Similar Projects ..................................................................................................... 4
2.3.1. Review on Similar Projects ............................................................................. 6
2.3.1.3. Brazil’s Electronic Voting System ................................................................ 7
2.3.2. Comparison between the Similarity of the Systems ....................................... 8
2.4. Software Development Methodology .................................................................... 9
2.4.1. Considered Methodology ............................................................................... 9
2.4.2. Selected Methodology .................................................................................. 10
2.4.3. Methodologies Comparison .......................................................................... 12
3. Development to Date ................................................................................................. 12
3.1. Requirement Gathering....................................................................................... 13
3.2. Data Flow Diagram ............................................................................................. 13
3.3. Use Case Diagram.............................................................................................. 14
3.4. High Level Use Case Diagram ............................................................................ 17
3.5. Software Requirement Specification ................................................................... 17
3.6. Activity Diagram / Flowchart ................................................................................ 17
3.7. Sequence Diagram ............................................................................................. 20
3.8. Collaboration Diagram ........................................................................................ 22
3.9. Block Diagram .................................................................................................... 23
3.10. Mind Map Diagram............................................................................................ 23
3.11. Wireframe Design ............................................................................................. 26
3.12. Entity Relationship Diagram .............................................................................. 33
3.13. Class Diagram .................................................................................................. 34
3.14. Architecture Design ........................................................................................... 37
3.15. Database Migrations ......................................................................................... 40
3.16. System Development ........................................................................................ 41
3.16.1. Frontend Development ............................................................................... 42
3.16.2. Backend Development ............................................................................... 44
4. Progress Analysis ...................................................................................................... 47
4.1. Progress Review ................................................................................................. 48
4.2. Progress Timeline ............................................................................................... 50
5. Future Work ........................................................................................................... 51
7. Appendix.................................................................................................................... 54
7.2. Problem Solving Measures .................................................................................... 56
7.3. Technology and Stack Implementation ............................................................... 59
7.4 Purpose ............................................................................................................... 62
7.4.1. Intended Audience........................................................................................ 62
7.4.2. Project Scope ............................................................................................... 62
7.4.3. Existing System ............................................................................................ 63
7.4.4 Reliability ....................................................................................................... 63
7.4.5 Security ......................................................................................................... 63
7.4.6 Maintainability................................................................................................ 64
7.4.7 Performance .................................................................................................. 64
7.4.8 Availability...................................................................................................... 64
7.9. Revision of Work Breakdown Structure .............................................................. 65
7.12.1. RUP Methodology ...................................................................................... 66
7.12.2. RAD Methodology ...................................................................................... 67
7.12.3. Kanban Methodology ................................................................................. 68
7.13. Selected Methodology (Personal Scrum Model) ............................................... 68
Bibliography................................................................................................................... 69
Table of figure

Figure 1: DFD diagram .................................................................................................. 14


Figure 2: User case Diagram......................................................................................... 16
Figure 3: Flow Chart ...................................................................................................... 19
Figure 4: Sequence Diagram......................................................................................... 21
Figure 5: Collaboration Diagram.................................................................................... 22
Figure 6: Mind Map Diagram ......................................................................................... 25
Figure 7: Wireframe diagram 1 ...................................................................................... 27
Figure 8: Wireframe diagram 2 ..................................................................................... 28
Figure 9: Wireframe diagram 3 ..................................................................................... 29
Figure 10: Wireframe diagram 4 ................................................................................... 30
Figure 11: Wireframe diagram 5 ................................................................................... 31
Figure 12: Wireframe diagram 6 ................................................................................... 32
Figure 13: Wireframe diagram 7 .................................................................................... 33
Figure 14: ERD diagram ................................................................................................ 34
Figure 15: Class Diagram .............................................................................................. 36
Figure 16: Architechture Diagram .................................................................................. 38
Figure 17: progress Timeline ......................................................................................... 50
Figure 18: Work Breakdown Structure........................................................................... 65
CS6P05NI Final Year Project

1. Introduction
E-voting applications are transforming the way elections are conducted, offering secure, efficient,
and transparent alternatives to traditional voting methods. These platforms address critical issues
like logistical challenges, accessibility barriers, and concerns over election security, making them
particularly relevant for nations with unique geographical and infrastructural constraints.

In Nepal, a country renowned for its cultural richness and geographic diversity, elections are an
integral part of its democratic framework. However, the nation’s rugged terrain, encompassing the
towering Himalayas, remote hills, and low-lying plains, often poses significant challenges to
organizing traditional voting. Establishing polling stations in remote areas is a logistical hurdle,
while ensuring inclusivity and transparency remains a persistent issue.

The Multi Online Voting System aims to tackle these challenges by introducing a secure, web-
based platform that modernizes the electoral process. Built using the MERN stack (MongoDB,
Express, React, Node.js), the system is designed to enable seamless voting experiences while
ensuring security and transparency. Key features include robust authentication, encrypted voting,
real-time results reporting, and efficient event management.

This e-voting solution aspires to bridge geographical gaps, promote voter participation, and
enhance the credibility of elections in Nepal. By leveraging technology, the platform not only
addresses existing challenges but also sets a foundation for a more inclusive and efficient
democratic process in the country.

1 20049080
CS6P05NI Final Year Project

1.1. Problem Domain


The problem domain of the Multi Online Voting System revolves around overcoming the
significant challenges that Nepal faces in conducting elections, particularly due to its unique
geographical and logistical constraints. Nepal’s diverse topography, with its rugged mountains,
remote hills, and plains, makes it difficult to establish polling stations in every region, leaving
many voters in rural and isolated areas without easy access to voting locations. This
geographical barrier results in lower voter participation and challenges in ensuring inclusivity.
Additionally, the logistical complexities of transporting election materials to remote areas are
costly, time-consuming, and prone to delays. These issues are compounded by concerns
regarding the security and transparency of the voting process, as traditional methods are
vulnerable to ballot tampering, unauthorized access, and human error in vote counting. To
address these issues, there is a pressing need for a secure, efficient, and accessible voting
system that can overcome Nepal’s geographic challenges while enhancing the accuracy,
transparency, and inclusivity of elections. The Multi Online Voting System aims to solve these
problems by leveraging technology to ensure a more reliable and transparent electoral process.

1.2. Project as a Solution


The Multi Online Voting System presents a modern solution to the complex challenges Nepal faces
in conducting elections. By leveraging the power of technology, specifically the MERN stack
(MongoDB, Express, React, Node.js), this project aims to address the logistical, geographical, and
security-related issues inherent in the traditional voting process. The system allows citizens to cast
their votes securely from anywhere, bypassing the need for physical polling stations and
overcoming geographical barriers. Voters in remote regions, who have historically struggled to
participate in elections due to inaccessibility, can now access the platform from any device with an
internet connection, ensuring greater inclusivity and higher voter turnout.

The system incorporates robust authentication and encryption techniques to safeguard voter
identity and vote integrity, addressing concerns over security and transparency. Real-time results
reporting provides immediate, accurate, and tamper-proof election outcomes, fostering trust in the
electoral process. The ability to manage voting events, candidates, and voter registrations
electronically also streamlines administrative tasks, reducing the logistical burden and the potential
for human error.

2 20049080
CS6P05NI Final Year Project

Overall, the Multi Online Voting System serves as a comprehensive solution to the electoral
challenges faced by Nepal, offering an accessible, transparent, and secure voting platform that can
strengthen democratic participation and build greater confidence in the electoral process.

2.1. About the Client


The client for the Multi Online Voting System is a governmental body or an electoral organization
seeking to improve and modernize Nepal’s electoral process. This client recognizes the urgent
need for an innovative solution to address the challenges posed by the country’s diverse
geography, which complicates the traditional voting process. With the aim of enhancing voter
participation, ensuring transparency, and promoting security, the client envisions a digital platform
that empowers all citizens, regardless of their location, to participate in elections.

The client values the integration of advanced technology, prioritizing a secure, user-friendly, and
accessible voting system. Their goal is to create an electoral system that is reliable, efficient, and
capable of handling both local and national elections seamlessly. The client is deeply committed to
fostering democratic values, increasing the credibility of election results, and making the election
process more inclusive, fair, and transparent for every citizen in Nepal.

The Multi Online Voting System aligns with the client’s mission to modernize the electoral process,
streamline administrative tasks, and provide a more inclusive and accessible platform for voters
across Nepal.

2.2. Understanding the Solution

The Multi Online Voting System is designed to address Nepal’s electoral challenges by
leveraging modern technology to ensure greater accessibility, transparency, and security. With its
use of the MERN stack (MongoDB, Express, React, Node.js), the system allows citizens, even
those in the most remote areas of Nepal, to participate in elections through a secure online
platform. By eliminating the need for physical polling stations, it overcomes geographical barriers
and makes voting more accessible for all. Robust security features, including user authentication
and encryption, safeguard the voting process, reducing the risk of tampering and ensuring the
integrity of the election. The system provides real-time updates on voting results, offering
immediate, accurate, and transparent reporting, which builds trust in the electoral process.

3 20049080
CS6P05NI Final Year Project

Additionally, it streamlines election management by allowing election authorities to easily set up


and manage voting events, track progress, and monitor real-time voting statuses. With its user-
friendly interface and scalable design, the system can efficiently handle both small and large-scale
elections, making it a reliable and inclusive solution for Nepal’s future electoral processes.

2.3. Similar Projects


While each project is unique in its features and approach, there are several eVoting
applications and platforms that share similarities with your envisioned project. Here are a
few examples:

Estonian e-Residency & E-Voting System:

Internet voting is a unique solution that conveniently engages citizens in the governance
process. This system allows voters to cast their ballots from any internet-connected
computer anywhere in the world. During a designated pre-voting period, the voter logs
into the system using their government-issued e-ID and casts a ballot. The voter’s identity
is removed from the ballot before it reaches the National Electoral Commission for
counting, thereby ensuring anonymity. (251)

India’s Electronic Voting Machine (EVM):

Electronic voting is the standard means of conducting elections using Electronic Voting
Machines (EVMs) in India. The system was developed for the Election Commission of India by
state-owned Electronics Corporation of India and Bharat Electronics. Starting in the late 1990s,
they were introduced in Indian elections in a phased manner. (htt)

Swiss E-Voting Pilot Programs:


Since 1 July 1992, Swiss Abroad have been able to vote by mail at national level. However,
depending on where people live, it can take a great deal of time for the voting documents to be
delivered, which means that eligible voters are unable to return their votes in time for the ballot
count. In some cases, the documents never reach the Swiss Abroad.

4 20049080
CS6P05NI Final Year Project

This makes electronic voting an important voting alternative for the more than 800 000 Swiss
Abroad, as e-voting is often the only way for them to participate in a referendum or election. The
Organisation of the Swiss Abroad (OSA), SwissCommunity, has thus been advocating for years for
Swiss Abroad to be given the option of electronic voting (e-voting). (Swiss E-Voting Pilot Programs)

Swiss E-Voting Pilot Programs:


Switzerland has tested several e-voting pilot programs at the cantonal level, offering citizens the
option to vote online securely. The system employs strong encryption and cryptographic measures
to ensure voter anonymity and the security of the election process. These initiatives aim to make
voting more accessible for citizens, especially those who live abroad or are unable to travel to
polling stations due to various reasons. Similar to Nepal’s needs, the Swiss e-voting system
addresses geographical challenges and enhances voter participation.

Brazil’s Electronic Voting System:


Brazil has long used electronic voting machines in its elections, which have been recognized for
their speed and accuracy in vote counting. The system is designed to be highly secure, with
measures to prevent tampering, and it is user-friendly for the general population. Brazil’s adoption
of electronic voting has helped eliminate many logistical issues seen with traditional voting, such
as long waiting times and difficulties in counting ballots. This project mirrors the objectives of the
Multi Online Voting System in Nepal, with a focus on increasing accessibility, security, and trust in
the electoral process

5 20049080
CS6P05NI Final Year Project

2.3.1. Review on Similar Projects


Some comparable projects that share some of the proposed project's features are listed
and described below:

2.3.1.1. Estonian e-Residency & E-Voting System:


Estonia is a pioneer in implementing digital governance and has successfully integrated e-voting in
its election process. The country introduced the i-Voting (Internet Voting) system, enabling
citizens to vote securely online in national elections. The system is built on advanced cryptographic
techniques to ensure voter identity, vote integrity, and election transparency. Like the proposed
Multi Online Voting System for Nepal, Estonia’s platform eliminates geographical barriers,
providing citizens living abroad or in remote areas the ability to participate in elections seamlessly.
Cost: Free

Ease of use:
Estonia's e-Residency and e-Voting system is designed to be highly user-friendly. The
process begins with a secure and simple login through the digital ID card, which uses a
PIN code for authentication. This card can be used across various devices, including
computers and smartphones, making the system accessible to a wide range of users. The
voting platform itself is intuitive and easy to navigate, allowing voters to select candidates
and submit their votes in just a few steps. Additionally, the system provides real-time
feedback, allowing voters to verify that their vote has been properly recorded, further
enhancing user confidence. The e-Voting system is accessible from any location,
ensuring that users can vote conveniently from home, abroad, or while on the move, as
long as they have an internet connection. Furthermore, alternative voting methods are
available for citizens who may face difficulties with the digital platform, ensuring inclusivity
and ease of use for all.

2.3.1.2. India’s Electronic Voting Machine (EVM)


India’s Electronic Voting Machine (EVM) is a widely adopted system designed to facilitate
secure, accurate, and fast elections across the country. Introduced in the 1990s, EVMs have
revolutionized the voting process in India, replacing traditional paper-based ballots with digital

6 20049080
CS6P05NI Final Year Project

machines. India’s Electronic Voting Machine (EVM) is designed to be easy to use, both for voters
and election officials. For voters, the process is simple: they press a button corresponding to their
chosen candidate on the ballot unit, and the vote is immediately recorded. The user-friendly design
of the EVM ensures that even individuals with minimal technical knowledge can participate in the
election process with ease. Additionally, the introduction of the Voter Verifiable Paper Audit Trail
(VVPAT) allows voters to verify their vote before it is cast, adding a layer of transparency and
confidence. Election officials also find the machines easy to operate, as they are intuitive and
require minimal training. With minimal setup and user-friendly interfaces, EVMs have made the
voting process more efficient, accessible, and faster, reducing human errors and the need for
complicated procedures

2.3.1.3. Brazil’s Electronic Voting System

Brazil’s Electronic Voting System is one of the most advanced and widely used systems for
digital elections, having been in operation since 1996. The system allows Brazilian citizens to vote
electronically, and it has revolutionized the way elections are conducted in the country. With over
150 million voters, Brazil's electronic voting system is known for its efficiency, security, and
accessibility.

Key Features

1. Electronic Voting Machines (Urna Eletrônica):

o The primary component of Brazil’s electronic voting system is the Urna Eletrônica, a
voting machine designed to be simple and fast. The machines are used to cast votes
electronically, replacing the traditional paper ballots.

o Voters use a touch screen to select their preferred candidate from a list, and their
vote is recorded digitally. The machine then stores the vote securely in memory, and
at the end of the election, it automatically prints a paper audit trail to ensure
transparency and accuracy.

2. Security Features:

7 20049080
CS6P05NI Final Year Project

o End-to-End Encryption: The system employs robust encryption to ensure that votes
remain confidential and tamper-proof. The data is encrypted both during transmission
and storage, making it extremely difficult to alter or access without authorization.

o Audit Trails: Every vote cast is accompanied by a printed paper audit trail, which is
stored in the machine and can be verified if needed. This adds a layer of
transparency and helps verify the accuracy of the vote counting process.

o Multi-level Authentication: Access to the system is tightly controlled through multi-


level authentication processes, ensuring that only authorized individuals can manage
the election.

3. Transparency and Real-time Results:

o The electronic voting system enables quick, accurate, and real-time vote counting.
Once the polls close, the results can be generated instantly, ensuring that the public
receives timely election outcomes.

o The system also enables monitoring of election processes by independent observers,


further enhancing its transparency and trustworthiness.

4. Accessibility:

o The voting machines are designed to be user-friendly and accessible to all citizens,
including those with disabilities. The machines have a tactile interface, and in some
cases, they include audio support for visually impaired voters.

o Voter identification is also simple, with the use of biometric data or identification
documents that help authenticate voters.

2.3.2. Comparison between the Similarity of the Systems


The Estonian e-Voting System, India's Electronic Voting Machine (EVM), and Brazil's
Electronic Voting System share several key similarities, despite their distinct
technological foundations and regional contexts. All three systems rely on digital
technology to facilitate voting, eliminating the need for paper ballots and ensuring a
faster, more efficient process. They emphasize security, utilizing encryption, multi-level

8 20049080
CS6P05NI Final Year Project

authentication, and tamper-resistant features to ensure the integrity of votes.


Additionally, each system has mechanisms for voter verification—Estonia uses e-ID
cards, India utilizes voter IDs and biometrics, and Brazil uses identification documents
and biometric data—ensuring only eligible voters can cast their votes. All three systems
also integrate audit trails, either digitally or through paper, to ensure transparency and
allow for verification of votes. The speed and efficiency of these systems are another
shared trait, with results being tallied almost immediately after voting ends, making the
electoral process faster and more reliable. Moreover, they prioritize accessibility by
allowing voting to take place remotely in Estonia, with portable voting machines in India
and Brazil, ensuring that even remote or underserved populations can participate. These
systems also work to reduce fraud and manipulation, implementing robust security
measures and protocols to maintain election integrity. Finally, each system is designed to
be user-friendly, ensuring that voters can easily cast their votes with minimal complexity.
Overall, these similarities reflect a global movement towards digital voting as a way to
enhance the democratic process by improving security, efficiency, accessibility, and
transparency. A few key characteristics are compared in the table below:

2.4. Software Development Methodology


According to Cambridge Dictionary, a methodology is a system of ways of doing, teaching,
or studying something (Cambridge, 2023). Similarly, a software development
methodology is a technique or set of techniques employed during the creation of software.
Although it is a broad category, it not only includes stages such as planning and creation
but every engineering structure of distinct stages from start to the end of a software
development. Its purpose is to explain the mechanics behind a program's development
and maintenance (Alliance Software, 2023).

2.4.1. Considered Methodology


Out of all the possible software development methodologies, a few of the reviewed and
considered methodologies are as follows:

9 20049080
CS6P05NI Final Year Project

• Rational Unified Process Methodology


• Rapid Application Development Methodology
• Kanban Methodology

Each of the aforementioned models for creating software was examined in detail, right
down to the smallest details. In the appendix section, a brief overview of each approach
is provided and discussed on why it wasn’t put into practice.

2.4.2. Selected Methodology


For the development of the Online Voting System, the Kanban methodology has been selected
as the project management approach. This methodology will guide the overall flow of the project,
ensuring an efficient and streamlined development process while maintaining flexibility and
responsiveness to changes and challenges. (Kissflow)

Case Study Scenario Developing a system where continuous collaboration and


communication are essential for resolving issues.

Features Kanban fosters continuous communication and collaboration


between the team and stakeholders, addressing issues in
real-time.
Justification Regular updates and transparent task management in
Kanban ensure that challenges are quickly identified and
resolved.

Case Study Scenario Developing a system while maintaining a focus on incremental


improvement and continuous delivery.
Features Kanban supports incremental releases, providing regular,
functional updates throughout the development process.

Justification Scrum encourages and promotes creative approaches and


allows analyzing of all those ideas into newer innovation.

Case Study Scenario Developing a system allowing any dynamic modifications.


Features By breaking tasks into smaller pieces, Kanban ensures
frequent, incremental improvements and rapid delivery of
system features.

10
20049080
CS6P05NI Final Year Project

Justification Regular updates and transparent task management in


Kanban ensure that challenges are quickly identified and
resolved.

Case Study Scenario Developing a system with continuous interaction between


stakeholders to resolve any communication gap.

Features The development process allows reciprocity between the


team and the client.

Justification Scrum incorporates meetings which helps in identifying and


resolving any sorts of challenges.

Case Study Scenario Developing a system not in just an application level but also
following all sets of guidelines for a proper documentation.

Features The development process allows smooth transparent


monitoring of work done and its task divided.

Justification Full visibility into task status allows for better decision-making
and ensures accountability among team members and
stakeholders.

The Kanban methodology is an effective and visual project management approach that focuses
on continuous improvement, flexibility, and collaboration. It ensures steady progress by using
visual task boards to track work, manage priorities, and limit the number of tasks in progress at any
given time. This makes it adaptable to changes and allows for smooth integration of new tasks
throughout the development process. Kanban promotes transparency and accountability, ensuring
that team members and stakeholders have clear visibility into the project’s progress. Its
incremental delivery model ensures constant, functional updates, making it ideal for projects
requiring continuous improvement and timely delivery.

11
20049080
CS6P05NI Final Year Project

2.4.3. Methodologies Comparison


A basic justification for comparing each of the chosen approaches with each of the other
methodologies that were considered have been noted down below:

Features Methodologies

RAD Model RUP Model Kanban Model Scrum Model

Agility Dynamics 

✓ ✓ ✓

Innovation Ideas 
✓ ✓ ✓

Differentiation via   
emerging
technologies ✓

Fast time for  


production
✓ ✓

Client and End 


User Interaction ✓ ✓ ✓

3. Development to Date
The development to date for the e-voting system has made notable progress, with key components
of the system already in place. The project’s technology stack has been finalized, incorporating
React JS and Tailwind CSS for a responsive and user-friendly front-end, alongside Node.js,
Express, and MongoDB for the backend. So far, the system includes secure user authentication,
ensuring that both voters and administrators can access the platform with confidence. The core
functionality for secure voting has been implemented, allowing users to cast their votes for
candidates in a streamlined process. The admin dashboard is under development, enabling
administrators to manage users, set up voting events, and monitor real-time voting results. Initial

12
20049080
CS6P05NI Final Year Project

testing has been conducted on various features, and feedback has been incorporated to refine and
enhance user experience. Moving forward, the focus will be on strengthening security measures,
improving the user interface, and optimizing the overall system for scalability and efficiency.

3.1. Requirement Gathering


Required Gathering refers to the process of identifying and collecting all the essential
information, needs, and specifications before starting the development of a project. For
the e-voting system, this involves understanding the needs and expectations of all
stakeholders, including voters, administrators, and election authorities. It includes
defining the functional requirements, such as secure user authentication, the voting
process, and real-time monitoring of results. Additionally, non-functional requirements
like system performance, scalability, and security need to be outlined to ensure the
system works efficiently under heavy load and remains secure. Legal and compliance
considerations are also part of this phase, ensuring that the system meets all legal
standards for elections and data privacy. By gathering these requirements, the
development team can ensure the system addresses the specific needs of users while
considering potential constraints like geographical challenges or infrastructure
limitations. This gathering process forms the foundation for the entire development
lifecycle, helping to reduce risks and ensure the system aligns with its intended purpose.

3.2. Data Flow Diagram


A data flow diagram (DFD) maps out the flow of information for any process or system. It
uses defined symbols like rectangles, circles and arrows, plus short text labels, to show
data inputs, outputs, storage points and the routes between each destination. Data
flowcharts can range from simple, even hand-drawn process overviews, to in-depth,
multilevel DFDs that dig progressively deeper into how the data is handled. They can be
used to analyze an existing system or model a new one. Like all the best diagrams and
charts, a DFD can often visually “say” things that would be hard to explain in words, and
they work for both technical and nontechnical audiences, from developer to CEO. That’s
why DFDs remain so popular after all these years. While they work well for data flow

13
20049080
CS6P05NI Final Year Project

software and systems, they are less applicable nowadays to visualizing interactive, real-
time or database-oriented software or systems. (Anon., n.d.)

Figure 1: DFD diagram

3.3. Use Case Diagram


A UML use case diagram is the primary form of system/software requirements for a new
software program underdeveloped. Use cases specify the expected behavior (what),
and not the exact method of making it happen (how). Use cases once specified can be
denoted both textual and visual representation (i.e. use case diagram). A key concept of
use case modeling is that it helps us design a system from the end user's perspective. It

14
20049080
CS6P05NI Final Year Project

is an effective technique for communicating system behavior in the user's terms by


specifying all externally visible system behavior.

A use case diagram is usually simple. It does not show the detail of the use cases:

It only summarizes some of the relationships between use cases, actors, and systems.

It does not show the order in which steps are performed to achieve the goals of each use
case.

As said, a use case diagram should be simple and contains only a few shapes. If yours
contain more than 20 use cases, you are probably misusing use case diagram. (Anon.,
n.d.)

15
20049080
CS6P05NI Final Year Project

Figure 2: User case Diagram

16
20049080
CS6P05NI Final Year Project

3.4. High Level Use Case Diagram


In the current phase of the invention process, the description serves as a concise and
unstructured summary of the ongoing work. The objective is to provide sufficient details
to convey the complexity of the project and to contribute to the development of a cohesive
explanation regarding the purpose and membership of each function. The appendixes
contain elucidations of the diverse higher-level descriptions employed for each of the
developed use cases.

3.5. Software Requirement Specification


The System Requirement Specification (SRS) is a comprehensive document that
delineates the intended functionality and performance parameters of the software, often
referred to as the SRS Document. This document elaborates on the essential features
required for the product to meet the expectations of all stakeholders, including the
company and end users. Functioning as a roadmap or blueprint for the program, the
SRS outlines the product's goals, provides a clear understanding of what is being
developed, specifies the needs of each user, and is subject to review and approval.

In the appendix of this document, the SRS provides an inclusive overview of the
project's scope, features, and applications for the proposed system.

3.6. Activity Diagram / Flowchart


An activity diagram, within the context of Unified Modeling Language (UML), is a graphical
representation that illustrates the sequential flow of operations within a system or process.
This diagram provides a real-time visualization of the application's process flow,
showcasing the dynamic interactions between different components to achieve a specific
task. By delineating the interdependencies and interactions among various elements, the
activity diagram serves to capture and elucidate the system or feature requirements,
offering a clear visual representation of the interconnections and sequencing of
operations or processes.

17
20049080
CS6P05NI Final Year Project

The use of activity diagrams is particularly beneficial in the early stages of a project's
lifecycle, enabling stakeholders to better comprehend and engage with the process flow.
Moreover, these diagrams facilitate the identification of potential bottlenecks, resource
constraints, or uncertainties by mapping activities and relationships. This proactive
approach aids in early risk mitigation and enhances the overall understanding of the
project's intricacies.

18
20049080
CS6P05NI Final Year Project

Figure 3: Flow Chart

19
20049080
CS6P05NI Final Year Project

3.7. Sequence Diagram


A sequence diagram is one of the multiple types of system interaction diagrams used
within Unified Modeling Language (UML) to visually represent interactions between the
objects that live within a system. Specifically, sequence diagrams provide a view of the
order in which those interactions occur through depictions of individual objects, called
lifelines, and the messages between them. With proper notation, teams can use sequence
diagrams in multiple stages of the development process to map out the timing of
interactions. Sequence diagrams have a variety of uses, many of them geared toward
system design, testing and maintenance. Software developers and architects can use
these diagrams in initial planning stages to brainstorm design, establish system
requirements and consider how individual aspects of the system contribute to the overall
end goal.Sequence diagrams can increase the value of design meetings by enabling team
members to communicate through a common visual. Teams might also spot problems
earlier on. This can increase efficiency and troubleshooting to correct the issue before it
reaches a later stage of development. (Tech Target, 2023)

20
20049080
CS6P05NI Final Year Project

Figure 4: Sequence Diagram

21
20049080
CS6P05NI Final Year Project

3.8. Collaboration Diagram


The collaboration diagram serves as a tool to illustrate the relationships between objects
within a system. While both the sequence and collaboration diagrams convey the same
information, they do so in distinct ways. In contrast to showing the flow of messages, the
collaboration diagram focuses on portraying the architecture of objects within the system,
aligning with the principles of object-oriented programming. Objects in the system
encompass various features, and the diagram visually connects multiple objects to depict
their interrelationships. Also referred to as a communication diagram, the collaboration
diagram specifically emphasizes representing the architectural structure of objects within
the system. (javatpoint, 2023)

Figure 5: Collaboration Diagram

22
20049080
CS6P05NI Final Year Project

3.9. Block Diagram

A block diagram is a graphical representation of a system, project, or scenario. It provides


a functional view of a system and illustrates how the different elements of that system
interlink. Engineers, in particular, use block diagrams to model the elements of a system
and understand how they are all connected. But these tools are also helpful in many other
use cases.
The blocks that give the block diagram its name represent the different elements within a
system. The lines and arrows show the relationships between those blocks. These visual
elements provide a high-level, functional overview of the system that is easy to digest and
understand. Creating a block diagrams helps everyone involved in a project understand
and visualize exactly what’s needed for something to work as a whole. They create a
coherent understanding of the elements required to link together to create the desired
end result. In this way, they keep everyone on the team on the same page and working
toward a common goal

(Miro, 2024)

3.10. Mind Map Diagram

A mind map is a diagram that outlines your ideas in a visual format. Creating a mind map
gives structure to your thoughts, giving you a clearer picture of what they are and how
they relate.Mind maps usually contain a central idea in the middle of the diagram. Then,
connected ideas branch off from it. These ideas can be written as words or displayed as
images. Lines (sometimes known as branches) join ideas to show how they relate to each
other.Let’s say you have a mind map about product development. Product development
sits in the middle of your map, and the following ideas branch off from it:
New features
Customer feedback
Market trends

23
20049080
CS6P05NI Final Year Project

Competitor analysis
All of these subtopics are attached to the main idea with connection lines. These lines
show that the subtopics relate to the central idea. You might also connect some of your
subtopics to each other. For instance, if you have customer feedback about a new product
feature that aligns with trends in the marketplace, you could connect these two ideas to
highlight their relationship. (Miro, n.d.)

24
20049080
CS6P05NI Final Year Project

Figure 6: Mind Map Diagram

25
20049080
CS6P05NI Final Year Project

3.11. Wireframe Design

Wireframes are basic blueprints that help teams align on requirements, keeping UX
design conversations focused and constructive. Think of your wireframe as the skeleton
of your app, website, or other final product. Your wireframe shows the design team and
stakeholders the bare-bones outlines of essential webpages, components, and features,
including: Screen layouts
Navigation bars
Components of UX and UI design
Interactive elements
At the early stages of design, low-fidelity wireframes rely on lorem ipsum text and simple
boxes as placeholders for images and videos. This helps the design team, copywriters,
and other team members to focus on basic functionality to align around the right direction.
(Figma, n.d.)

26
20049080
CS6P05NI Final Year Project

Figure 7: Wireframe diagram 1

27
20049080
CS6P05NI Final Year Project

Figure 8: Wireframe diagram 2

Figure 8:Wireframe Diagram 2

28
20049080
CS6P05NI Final Year Project

Figure 9: Wireframe diagram 3

29
20049080
CS6P05NI Final Year Project

Figure 10: Wireframe diagram 4

30
20049080
CS6P05NI Final Year Project

Figure 11: Wireframe diagram 5

31
20049080
CS6P05NI Final Year Project

Figure 12: Wireframe diagram 6

32
20049080
CS6P05NI Final Year Project

Figure 13: Wireframe diagram 7

3.12. Entity Relationship Diagram


Entity relationship diagrams provide a visual starting point for database design that can
also be used to help determine information system requirements throughout an
organization. After a relational database is rolled out, an ERD can still serve as a reference
point, should any debugging or business process re-engineering be needed later.
However, while an ERD can be useful for organizing data that can be represented by a
relational structure, it can't sufficiently represent semi-structured or unstructured data. It's
also unlikely to be helpful on its own in integrating data into a pre-existing information
system. (Tech target, n.d.)

33
20049080
CS6P05NI Final Year Project

Figure 14: ERD diagram

3.13. Class Diagram

In UML, class diagrams are one of six types of structural diagram. Class diagrams are
fundamental to the object modeling process and model the static structure of a system.
Depending on the complexity of a system, you can use a single class diagram to model
an entire system, or you can use several class diagrams to model the components of a
system.Class diagrams are the blueprints of your system or subsystem. You can use class

34
20049080
CS6P05NI Final Year Project

diagrams to model the objects that make up the system, to display the relationships
between the objects, and to describe what those objects do and the services that they
provide.Class diagrams are useful in many stages of system design. In the analysis stage,
a class diagram can help you to understand the requirements of your problem domain
and to identify its components. In an object-oriented software project, the class diagrams
that you create during the early stages of the project contain classes that often translate
into actual software classes and objects when you write code. Later, you can refine your
earlier analysis and conceptual models into class diagrams that show the specific parts
of your system, user interfaces, logical implementations, and so on. Your class diagrams
then become a snapshot that describes exactly how your system works, the relationships
between system components at many levels, and how you plan to implement those
components.You can use class diagrams to visualize, specify, and document structural
features in your models

35
20049080
CS6P05NI Final Year Project

Figure 15: Class Diagram

36
20049080
CS6P05NI Final Year Project

3.14. Architecture Design


Architecture is a creative process that includes multiple phases, one that considers
space, geometry, and artistry.

The architectural design contains a diverse range of disciplines that focuses on more than
just construction.

The project is complemented to its entire state by an array of subsequent branches.


These branches form the basis of this science. Space efficiency, appeal, color theory,
sizes, shapes, and how they mix and match.
It is classified into three categories:

• The objects of the design


• The intention
• Its aesthetics and technical details
(augmentecture, n.d.)

37
20049080
CS6P05NI Final Year Project

Figure 16: Architechture Diagram

Communication within a web architecture is depicted in the above graphic in a systematic


manner. There are three distinct levels of abstraction in this model; they are the
presentation, business logic, and persistence layers. Whenever a user makes a request
to gather data through the user interface, the API or client side sends an HTTP request
to the server side, where .NET follows the business logic to serialize or deserialize the

38
20049080
CS6P05NI Final Year Project

data instance and responds appropriately, regardless of the success or failure of the data
flow. Furthermore, to retrieve or modify data, the web server maintains communication
with the persistence layer, which is often called the database. The process is a two-way
process including the data communication between the client and the server which takes
into account through the API requests and responses.

Since the web architecture, which specifies the rules for validating and organizing online
requests and responses, has been established, it is also necessary to adhere to design
patterns and development architecture of the .NET Core environment. The development
patterns and architecture the application will be following are outlined below:

• Application Architecture Pattern (Appendix)


• Development Architecture (Appendix)

39
20049080
CS6P05NI Final Year Project

3.15. Database Migrations


Database migration refers to the process of transferring data from one database system
to another or making significant structural changes to an existing database. This can be
necessary for various reasons, including updating software versions, changing database
vendors, or modifying the database schema. In your Health and Fitness Tracker project,
where you mentioned using Drizzle for the database, here's an overview of what database
migration might involve:
Schema Changes:
As your project evolves, you may need to make changes to the structure of the database.
This could involve adding or removing tables, modifying column types, or adjusting
relationships between tables to accommodate new features or requirements.
Data Transfer:
In some cases, you might need to move data from one database to another. This could
be necessary if you're switching to a different database provider or if you're restructuring
your data model.
Data Cleanup:
During migration, you may encounter data inconsistencies or need to clean up redundant
or outdated records. It's an opportunity to ensure data integrity and improve the overall
quality of the database.
Version Control:
Implementing version control for your database schema can be beneficial. This allows
you to track changes over time, roll back to previous states if needed, and collaborate
with a team on database modifications.
Testing:
Before applying migrations to a live environment, thorough testing is crucial. This helps
identify and address any potential issues, ensuring a smooth transition without
compromising data integrity.

40
20049080
CS6P05NI Final Year Project

3.16. System Development


System development, also referred to as software or application development, is the structured
process of creating, designing, and implementing a software solution to address specific user or
business needs. For the e-voting system, this involves a series of carefully coordinated stages to
ensure the system is functional, secure, and user-friendly. Here's an outline of the development
process tailored to your e-voting project:

Requirements Gathering:
The process begins by identifying and documenting the system's requirements. This involves
engaging stakeholders, including election commissions and users, to understand their needs,
define goals, and outline functionalities such as secure voter registration, candidate management,
and real-time vote counting.

System Design:
Based on the requirements, the system architecture is meticulously crafted. This includes
designing the data flow, user interfaces, and database models, as well as selecting the technology
stack. For the e-voting system, a combination of React.js, Node.js, and MongoDB ensures
scalability and ease of use.

Implementation (Coding):
During this phase, developers translate the design specifications into actual code. The frontend is
developed using React.js for an intuitive voter interface, while the backend leverages Node.js and
Express to handle core functionalities like authentication, vote encryption, and real-time results.
The database, managed with MongoDB, ensures secure and efficient storage of sensitive data.

Testing:
Comprehensive testing ensures the system meets all functional and non-functional requirements.
This includes unit tests for individual components, integration tests for interaction between
modules, and system tests to validate overall performance and security. Special attention is given
to ensuring data integrity and preventing unauthorized access.

Deployment:
After testing is completed, the system is deployed to a secure production environment. Servers are
configured, databases are optimized, and the application is made accessible to end-users,
ensuring readiness for real-world elections.

41
20049080
CS6P05NI Final Year Project

Maintenance and Support:


Post-deployment, continuous monitoring and maintenance address any issues that arise. Regular
updates and security patches are implemented based on user feedback and emerging needs to
ensure system reliability.

Throughout this process, collaboration between stakeholders, effective communication, and


adherence to best practices are paramount to delivering a trustworthy e-voting solution. Each
phase of development contributes to creating a system that upholds democratic values while being
accessible, secure, and efficient.

3.16.1. Frontend Development


Frontend development is central to creating an intuitive and engaging user interface (UI) and
ensuring a seamless user experience (UX) for the e-voting system. Leveraging modern
technologies like React.js and Next.js, the development process for this project focuses on
creating a secure, user-friendly, and accessible platform. Below are the key aspects of frontend
development in the context of the e-voting system:

42
20049080
CS6P05NI Final Year Project

User Interface Design:


The UI is designed to be intuitive and visually appealing, with layouts, buttons, forms, and graphics
optimized for clarity and ease of use. Voter-centric design ensures straightforward navigation,
enabling users to cast votes and verify their information without confusion.

Component-Based Architecture:
React's component-based structure allows the development of modular, reusable elements for the
application. Features such as login forms, candidate lists, and voting interfaces are encapsulated
as components, ensuring scalability and maintainability.

State Management:
Managing dynamic data such as user authentication states, voting statuses, and real-time updates
is critical. React's state management capabilities ensure a responsive and reliable experience as
users interact with the application.

TypeScript Integration:
TypeScript enhances code robustness by enabling static typing, reducing runtime errors, and
improving documentation. This ensures that the frontend is not only functional but also scalable
and maintainable for future development phases.

Responsive Design:
To ensure inclusivity, the e-voting system incorporates responsive design, making it accessible
across devices of varying screen sizes. This guarantees usability for voters using smartphones,
tablets, or desktops.

Data Fetching and Rendering:


With Next.js, server-side rendering (SSR) and static site generation (SSG) optimize data fetching
from the backend, ensuring that users receive real-time information like voter authentication and
election updates seamlessly.

Routing:
Next.js's routing system provides smooth navigation across pages such as voter registration,
candidate information, and results display. This enhances the overall user flow and experience.

43
20049080
CS6P05NI Final Year Project

User Interaction:
Interactive features such as real-time feedback during voting, error handling, and confirmation
prompts are implemented to enhance usability and instill confidence in users.

Testing:
Frontend testing includes unit tests for components, integration tests for data flow, and end-to-end
tests to validate the entire user journey. These steps ensure a reliable and bug-free user interface.

Accessibility:
Frontend developers follow accessibility standards to make the system inclusive, catering to users
with disabilities. Features like screen reader compatibility and keyboard navigation are
incorporated to meet these standards.

In conclusion, frontend development for the e-voting system focuses on crafting a secure,
accessible, and efficient interface. By combining modern frameworks, robust design principles, and
user-focused interactions, the system ensures a smooth and reliable voting experience for all
users.

3.16.2. Backend Development


Backend development focuses on building and maintaining the server-side logic, infrastructure,
and security necessary for supporting the functionalities of the e-voting system. Using modern
tools like Node.js and Express, the backend ensures efficient data management, secure
communication, and seamless integration with the frontend. Below are the key aspects of backend
development in the context of the e-voting system:

Server-Side Logic:
The backend handles core functionalities like user registration, voter authentication, vote
submission, and result computation. Developers implement business logic to process requests
from the frontend and manage database operations securely and efficiently.

API Development:
APIs facilitate communication between the frontend and backend. Using REST or GraphQL,

44
20049080
CS6P05NI Final Year Project

backend developers create endpoints to handle requests, such as retrieving voter information,
fetching candidate details, and submitting votes securely.

Database Interaction:
Backend developers design and manage the database to store critical data, such as voter records,
election configurations, and results. Queries are optimized to ensure quick and secure data
retrieval and updates.

User Authentication and Authorization:


Robust authentication mechanisms are implemented to ensure that only verified voters can access
the system. Authorization layers protect sensitive operations, ensuring secure handling of voting
processes and preventing unauthorized access.

Security Measures:
The backend incorporates advanced security practices to safeguard against vulnerabilities such as
SQL injection, XSS, and CSRF. Encryption protocols protect data during transmission, while input
validation prevents malicious activities.

Middleware:
Middleware components handle tasks like logging, error handling, and request preprocessing. For
example, they ensure that only authenticated users can proceed to vote and that sensitive data is
handled correctly.

Scalability:
The backend architecture is designed to handle high traffic, especially during peak voting hours.
Techniques like load balancing and database optimization ensure the system remains responsive
and reliable as user demand increases.

Server Configuration:
Backend developers configure servers for optimal performance, enabling features like caching for
faster responses and setting up secure connections using HTTPS. These configurations ensure
the system runs smoothly under real-world conditions.

45
20049080
CS6P05NI Final Year Project

Error Handling and Logging:


Comprehensive error-handling mechanisms are implemented to identify and resolve issues
efficiently. Logging systems provide insights into system performance and help in debugging
potential problems.

Testing:
Backend testing includes unit tests for individual functions, integration tests for API endpoints, and
system tests to verify the overall backend performance. These ensure reliability and robustness
before deployment.

In Summary:
Backend development for the e-voting system lays a secure and scalable foundation for the
application's functionalities. By implementing efficient server-side logic, secure data handling, and
robust APIs, the backend ensures the system can deliver a seamless and trustworthy voting
experience to users.

46
20049080
CS6P05NI Final Year Project

4. Progress Analysis
Progress analysis for the e-voting system involves evaluating advancements in various aspects of
the project to ensure alignment with its goals and requirements. Here’s how progress analysis can
be conducted for the system:

Feature Implementation:
Assess the progress of critical features, such as voter registration, authentication, vote submission,
and result tabulation. Identify features that have been fully implemented, those still in progress, and
any that may need additional refinement or attention.

User Interface (UI) Design:


Evaluate the progress of UI design, ensuring that the interface is intuitive, visually appealing, and
user-friendly for voters. Check whether the navigation and design elements enhance accessibility
and ease of use.

Frontend Development:
Examine the status of frontend development, particularly the responsiveness and interactivity of
the interface built using React and TypeScript. Ensure that features like voting dashboards and
real-time updates are functioning as intended.

Backend Development:
Analyze the progress of backend development, focusing on server-side logic, API creation using
Express, and database interactions. Verify that the backend supports all required functionalities
and aligns with security and performance expectations.

Database Implementation:
Assess the status of database setup, including the creation of tables for voter data, candidate
details, and voting records. Confirm that relationships and data retrieval mechanisms are effective
and match the system’s requirements.

Integration of Features:
Evaluate how well core features such as user authentication, vote casting, and real-time result
updates are integrated into the system. Ensure smooth communication between frontend and
backend components.

47
20049080
CS6P05NI Final Year Project

Testing:
Review the testing progress, including unit, integration, and system tests. Check for identified bugs
and confirm that critical functionalities, such as secure voting and accurate vote counting, are
thoroughly tested.

User Authentication and Security:


Analyze progress in implementing authentication mechanisms, such as secure login and access
control. Ensure the backend includes encryption protocols and measures to safeguard voter data
and prevent unauthorized access.

Documentation:
Evaluate the progress of system documentation, including user guides, API documentation, and
code annotations. Comprehensive documentation facilitates collaboration and ensures ease of
future maintenance.

Scalability and Performance:


Assess the progress in making the system scalable and performant. Verify that the backend
infrastructure is optimized to handle high traffic volumes during peak voting periods.

Project Management:
Review project management progress, such as task completion rates, adherence to timelines, and
effective communication among team members. Identify roadblocks and evaluate risk mitigation
strategies to keep the project on track.

In Summary:
By systematically analyzing progress across these dimensions, stakeholders can identify
strengths, address areas needing improvement, and ensure that the e-voting system development
remains aligned with its objectives, delivering a secure and user-friendly solution.

4.1. Progress Review


A progress review for the e-voting system involves a thorough assessment of the project’s current
state, highlighting achievements, addressing challenges, and planning the way forward. Here’s an
overview of how this can be structured:
Feature

48
20049080
CS6P05NI Final Year Project

Implementation:
Evaluate the status of critical features such as voter registration, authentication, vote submission,
result tabulation, and audit trails. Highlight features that are complete, those in progress, and any
requiring additional refinement. Assess how each aligns with the system’s original objectives.
User Interface(UI)Design: Review the progress of the UI, ensuring it adheres to the principles of
simplicity, accessibility, and user-friendliness. Discuss iterations made based on user feedback and
ensure that the design facilitates seamless interaction for voters.
Frontend Development: Assess the status of frontend development, focusing on functionality,
responsiveness, and interactivity. Evaluate the implementation of key features using React and
TypeScript, ensuring a consistent user experience across devices.
Backend Development: Analyze the backend progress, emphasizing the development of server-side
logic, secure APIs, and database interactions. Ensure that the backend, implemented using
technologies like Express and Drizzle, meets the system’s functional, security, and performance
needs.
Database Implementation: Evaluate the current state of the database, including table design,
relationships, and data storage/retrieval mechanisms. Confirm that the schema aligns with the e-
voting system’s requirements, such as secure storage of voter credentials and votes.
Integration of Features: Discuss the integration of various system components, such as voter
authentication, real-time vote counting, and administrative controls. Address any challenges faced
in ensuring smooth communication between frontend and backend modules.
Testing: Review testing efforts, including unit, integration, and system tests. Highlight completed
tests, identified bugs, and areas where additional testing is required to ensure robustness and
reliability.
UserAuthentication and Security: Analyze progress in implementing secure authentication
mechanisms. Discuss measures to safeguard voter data, prevent unauthorized access, and comply
with security best practices such as encryption and secure communication protocols.
Documentation: Assess the state of system documentation, including user manuals, API
documentation, and developer notes. Ensure that the documentation is comprehensive and clear,
supporting team collaboration and system maintenance.

49
20049080
CS6P05NI Final Year Project

Scalability and Performance: Evaluate the steps taken to ensure the system can handle high voter
traffic during peak times. Review performance optimizations and the scalability of both the frontend
and backend infrastructures.
Project Management: Examine progress in project management, considering task completion rates,
adherence to schedules, and team communication. Discuss any challenges, such as delays or
resource constraints, and evaluate the effectiveness of risk mitigation strategies.
Summary:
A progress review provides a holistic view of the e-voting system’s development, celebrating
milestones while identifying areas for improvement. It promotes transparency, aligns team efforts,
and ensures that the project remains on track to deliver a secure, efficient, and user-friendly solution
for modern voting needs.

4.2. Progress Timeline

Figure 17: progress Timeline

50
20049080
CS6P05NI Final Year Project

5. Future Work
Planning for Future Work in the eVoting System Project

Planning for future work in a software development project involves outlining tasks,
improvements, and features to be addressed in subsequent phases. Here's a detailed
overview of potential future work for the eVoting system project:

Enhancement of Existing Features

• Refine and expand existing features based on user feedback and evolving
requirements.

• This may include improving the voter interface using Next.js and React with
TypeScript, as well as optimizing backend logic powered by tRPC and Drizzle
ORM.

Additional Voting Features

• Introduce advanced voting methods, such as ranked-choice voting or proxy


voting mechanisms, to accommodate diverse election needs.

• Enhance real-time vote tracking and analytics using WebSocket integration for
live updates.

User Engagement and Accessibility

• Improve accessibility by implementing features like voice assistance, high-


contrast themes, and keyboard-friendly navigation using React ARIA tools.

• Build intuitive interfaces to ensure all users, including those with disabilities, can
participate in the electoral process.

Blockchain Integration for Transparency

• Investigate incorporating blockchain technology for immutable vote storage and


tamper-proof election results.

51
20049080
CS6P05NI Final Year Project

• Leverage smart contracts for validating votes and ensuring transparency in


counting processes.

Mobile Application Development

• Develop a mobile-friendly version of the eVoting system or a dedicated mobile


application using React Native to reach voters across various devices.

• Ensure that the mobile app supports seamless voter registration and secure
voting processes.

Localization and Internationalization

• Plan for localization using libraries like i18next to translate the user interface and
adapt the system for global use.

• Include support for multiple languages and region-specific election rules to make
the platform accessible to diverse populations.

Advanced Security Measures

• Implement multi-factor authentication (MFA) and end-to-end encryption to


safeguard user identities and voting data.

• Regularly update security protocols using libraries like OWASP security best
practices to mitigate vulnerabilities like cross-site scripting (XSS) and SQL
injection.

Performance Optimization

• Optimize backend performance by using caching strategies (e.g., Redis) and


serverless functions via Vercel for scalability during high voter turnout.

• Enhance database query efficiency and manage large datasets using Drizzle
ORM.

Scalability for National Elections

• Test the system under load conditions using tools like k6 to ensure scalability for
large-scale elections.

52
20049080
CS6P05NI Final Year Project

• Implement horizontal scaling using cloud platforms such as AWS or Google


Cloud to handle millions of voters.

Continuous Integration and Deployment (CI/CD)

• Establish CI/CD pipelines with tools like GitHub Actions or Jenkins to automate
testing and deployment processes.

• Ensure every update is thoroughly tested and deployed seamlessly with minimal
downtime.

Voter Education and Onboarding

• Develop interactive onboarding features using React tutorials or guided


walkthroughs for first-time voters.

• Create a repository of educational resources, such as FAQs, videos, and user


manuals, to improve voter understanding of the system.

Community Building and Support

• Set up community forums or support channels to gather feedback and address


voter concerns.

• Use tools like Discourse or Slack to foster transparent communication and


collaboration between voters and election administrators.

By addressing these areas and leveraging cutting-edge technologies, the eVoting


system can evolve into a highly secure, scalable, and user-friendly platform that inspires
trust and participation in the electoral process.

53
20049080
CS6P05NI Final Year Project

7. Appendix
Appendix for eVoting System Project Documentation

An appendix in a software development project documentation includes supplementary information


that supports the main content of the document. It may contain additional details, charts, graphs,
code snippets, or any other relevant material that complements the primary content. In the context
of the eVoting system project, the following materials are included:

Database Schema

The database structure using MongoDB is provided in detail. This includes collections,
relationships, and data types that organize voter data, ballots, results, and election-related data.

API Documentation

The detailed documentation for the Node.js and Express APIs developed for the eVoting system is
included. It outlines each API endpoint, the expected request and response structures,
authentication mechanisms, and error handling strategies.

Code Snippets

Relevant code snippets are included to illustrate key portions of the frontend (React JS, Tailwind
CSS) and backend (Node.js and Express) code. Important implementations such as voter
authentication, vote casting logic, and result computation are highlighted.

UI Mockups and Designs

UI mockups, wireframes, and design sketches are included, showcasing the intended user
interface design and providing context for voter interactions and overall user experience.

Testing Documentation

Documentation related to testing strategies, including unit tests, integration tests, and system tests,
is included. It provides details on testing tools used, test scripts, and scenarios for testing voter
registration, vote casting, security, and result accuracy.

Deployment and Configuration

54
20049080
CS6P05NI Final Year Project

Information on the deployment process, server configurations, and environment-specific


considerations is included. This also covers the setup of the eVoting system in development,
staging, or production environments.

User Manuals

User manuals or guides are included that provide step-by-step instructions for voters,
administrators, and other stakeholders on how to navigate the application. Topics such as account
creation, voting processes, and troubleshooting common issues are covered.

Risk Assessment and Mitigation

The identified risks during the project planning phase are outlined, such as security risks,
performance bottlenecks, and scalability concerns. Strategies or actions taken to mitigate these
risks are described.

Project Timeline

A timeline or Gantt chart illustrating the project schedule is included. This helps stakeholders
understand the planned sequence of activities, milestones, and deadlines, such as feature rollouts
and testing phases.

References and Citations

A list of references and citations for external sources, tools, or frameworks used in the project is
provided. This includes references to React JS, Tailwind CSS, Node.js, Express, and MongoDB.

7.1. Problem Context in Nepal


In Nepal, the electoral process has traditionally relied on paper ballots and manual counting, which
can lead to delays, errors, and potential inconsistencies. As the population grows and technology
evolves, the demand for a more efficient, transparent, and secure electoral system becomes
increasingly urgent.

55
20049080
CS6P05NI Final Year Project

Currently, voter registration, ballot collection, and vote counting can be cumbersome and prone to
human error. Additionally, there are concerns about the accuracy of the results, especially in
remote areas where access to polling stations is limited. In some cases, the manual process can
be slow, delaying the announcement of results and undermining public trust in the electoral
system.

Key Challenges:

1. Manual Process: Traditional voting systems require significant human intervention, making
them susceptible to mistakes, fraud, and inefficiency. The manual tallying of votes also
increases the time required to declare election results.

2. Security Issues: Paper-based voting systems are prone to various forms of manipulation,
such as vote tampering, fake ballots, and voter impersonation. There is also a lack of
transparency in the voting process, which may raise questions about the legitimacy of
election results.

3. Limited Access to Polling Stations: In remote or rural areas, voters may face challenges in
accessing polling stations. This can lead to disenfranchisement and a lack of participation in
the democratic process.

4. Lack of Real-Time Results: The delay in counting votes manually means that citizens must
wait for extended periods before results are announced, diminishing the sense of
engagement and participation in the election.

5. Limited Voter Education: The complex voting process, especially for first-time voters, may
discourage some people from voting. There is also a need for better education around the
voting process to ensure that people fully understand how to cast their ballots.

7.2. Problem Solving Measures


To address the challenges faced by Nepal’s current electoral system, a well-designed eVoting
system can provide a modern, secure, and efficient solution. The aim is to streamline the entire
voting process from voter registration and authentication to vote casting and result tallying—while
ensuring transparency, accessibility, and security. The following steps outline the problem-solving
approach for implementing the eVoting system in Nepal:

56
20049080
CS6P05NI Final Year Project

1. Digital Voter Registration and Authentication:

• Solution: Implement a secure online registration system where voters can sign up digitally.
This system would verify voter identities using national identification numbers, ensuring only
eligible voters participate.

• Technology: Use MongoDB for storing voter information securely, with a Node JS backend
to process registrations and authenticate users. Authentication tokens or other verification
mechanisms will help prevent unauthorized access.

2. Remote Voting Platform:

• Solution: Create a web-based voting platform where registered voters can cast their ballots
from anywhere, even in remote areas. The system will be designed to ensure that only one
vote is cast per eligible voter.

• Technology: The frontend would be built with React JS and Tailwind CSS for a responsive
and user-friendly interface. The backend will use Node JS and Express to handle vote
submissions, and votes will be stored securely in MongoDB.

3. Real-Time Vote Tallying:

• Solution: Votes will be counted digitally, providing real-time results as the votes are cast.
This eliminates the delays associated with manual counting and ensures transparency.

• Technology: Node JS and Express will handle vote tallying, and MongoDB will store and
retrieve vote data quickly for accurate result reporting.

4. Security and Transparency:

• Solution: To prevent fraud or tampering, the system will include encryption for vote data,
secure authentication processes, and audit trails to track the integrity of the voting process.

• Technology: Use encryption algorithms for vote data in transit and at rest. Node JS and
Express can be configured to handle secure transactions, while MongoDB will store data in
a secure, encrypted format.

5. Mobile Accessibility and User Education:

57
20049080
CS6P05NI Final Year Project

• Solution: To ensure that all voters, including those in rural areas with limited access to
polling stations, can vote, the platform will be mobile-optimized. Additionally, voter education
materials will be integrated into the platform to guide users through the voting process.

• Technology: A mobile-first design will be implemented using React JS and Tailwind CSS,
ensuring the platform is accessible on a variety of devices.

6. Integration with National Election Systems:

• Solution: The eVoting system should be integrated with existing national electoral systems
for seamless data transfer and real-time updates. This will help authorities monitor voter
participation and ensure the legitimacy of results.

• Technology: The backend, built with Node JS and Express, can facilitate integration through
secure API endpoints, with MongoDB serving as a centralized database for election data.

7. Scalability and Performance:

• Solution: The system needs to scale efficiently to handle millions of voters during national
elections without compromising performance or security.

• Technology: By using a cloud-based infrastructure and optimizing the codebase, the system
can ensure performance during high-traffic periods, allowing it to scale dynamically as
needed.

8. Post-Election Analysis and Reporting:

• Solution: After voting concludes, the system will generate detailed reports on voter
participation, results, and other relevant metrics. This data can be analyzed to identify
trends and ensure the integrity of the election process.

• Technology: The backend system will generate reports and data visualizations using Node
JS and store them in MongoDB for easy access and analysis.

Outcome and Impact:

This problem-solving approach, by leveraging modern technologies like React JS, Tailwind CSS,
Node JS, Express, and MongoDB, will transform Nepal’s election process into a more secure,
efficient, and accessible system. By implementing these solutions, Nepal can achieve faster, more

58
20049080
CS6P05NI Final Year Project

accurate election results, reduce the potential for fraud, and increase voter participation across the
country, especially in rural and remote areas.

This eVoting system will not only make the electoral process more transparent but also inspire
greater confidence in the democratic system, promoting political engagement and strengthening
Nepal’s overall governance.

7.3. Technology and Stack Implementation


The technology stack implementation for the eVoting system involves selecting the right
tools and frameworks for both frontend and backend development. Here's a detailed
breakdown of the technology stack based on the technologies you've provided:

Frontend:

• Framework: React JS

o Description: React is a popular JavaScript library for building user


interfaces, particularly single-page applications. It enables the creation of
reusable UI components, allowing for a modular and efficient development
process. React’s ecosystem also supports tools and libraries for routing,
state management, and more, making it a strong choice for building a
dynamic frontend.

• CSS Framework: Tailwind CSS

o Description: Tailwind CSS is a utility-first CSS framework that allows for


fast and customizable styling. It promotes the use of pre-defined classes
for styling, enabling developers to build responsive and attractive user
interfaces without writing custom CSS for every element.

Backend:

• Framework: Node JS

59
20049080
CS6P05NI Final Year Project

o Description: Node JS is a JavaScript runtime built on Chrome’s V8 engine


that enables the development of server-side applications. It is event-driven
and non-blocking, making it highly efficient for handling concurrent
requests, which is crucial for a high-traffic application like an eVoting
system.

• Web Framework: Express

o Description: Express is a minimal and flexible web application framework


for Node JS that simplifies the routing and handling of HTTP requests. It
enables the creation of RESTful APIs and middleware handling, which are
essential for handling the eVoting system’s user authentication, vote
submissions, and real-time vote tallying.

• Database: MongoDB

o Description: MongoDB is a NoSQL database known for its flexibility and


scalability. It stores data in JSON-like documents, making it easy to handle
complex, hierarchical data structures. MongoDB is ideal for an eVoting
system due to its ability to scale with increasing data as more voters
participate.

Additional Technologies:

• Authentication:

o Description: For secure user authentication, JSON Web Tokens (JWT) or


OAuth could be implemented. JWT provides a stateless way to
authenticate users, ensuring secure access to the eVoting platform. OAuth
can be used for social logins or more complex authorization scenarios.

• State Management:

o Description: React's built-in state management or libraries like Redux


could be employed to manage the global state of the application,
especially for handling the complex state changes that occur during the
voting process (e.g., vote status, user authentication state).

60
20049080
CS6P05NI Final Year Project

• API Documentation:

o Description: Tools like Swagger or Postman can be used to document the


backend API. This will help frontend developers understand how to
interact with the backend, making it easier to integrate the voting process
and data fetching.

• Testing:

o Description: Jest would be used for unit testing both the frontend and
backend components. Supertest can be used for API endpoint testing,
ensuring that vote submission, authentication, and result retrieval work as
expected. Integration and end-to-end testing will also be essential to
ensure that all system components work seamlessly together.

• Deployment:

o Description: For deployment, tools like Docker can be used to containerize


the application, ensuring consistent environments across development,
testing, and production. The system could be deployed to cloud platforms
such as AWS, Heroku, or Vercel for scalable and reliable hosting.

• Database Migration:

o Description: Database migration tools such as Mongoose (for MongoDB)


can be used to manage schema changes over time. This allows for
versioning and smooth transitions between different stages of the eVoting
system as features are added or adjusted.

Continuous Integration/Continuous Deployment (CI/CD):

• Description: Implementing CI/CD pipelines can automate the process of testing,


building, and deploying the application. This ensures that any changes made to
the codebase are thoroughly tested and automatically deployed to the production
environment, minimizing the risk of errors.

61
20049080
CS6P05NI Final Year Project

7.4 Purpose
The purpose of the eVoting System project is to empower citizens to participate in
elections conveniently, securely, and transparently. By providing a comprehensive
platform, the project aims to enable voters to cast their votes electronically, verify voter
identities, and access real-time election updates. The overarching goal is to streamline
the voting process, reduce administrative overhead, and enhance voter engagement
through a secure and user-friendly interface. This project seeks to strengthen democratic
participation by leveraging technology to ensure accuracy, efficiency, and trust in the
electoral process..
7.4.1. Intended Audience
The intended audience for the eVoting System project is diverse, catering to citizens who
seek a secure, transparent, and convenient way to participate in the electoral process. It
targets eligible voters, election authorities, and administrators looking for a streamlined
approach to managing elections. The system is designed to be accessible to individuals
with varying levels of technical expertise, ensuring ease of use for all participants.
Additionally, features like secure voter authentication and real-time election updates make
the application valuable for maintaining trust and engagement throughout the election
process. Overall, the eVoting System project is designed to address the needs of a broad
audience committed to enhancing democratic participation through technology.
7.4.2. Project Scope
The scope of the eVoting System project encompasses a comprehensive set of features
aimed at modernizing the electoral process. This includes secure voter authentication,
efficient vote casting, real-time election monitoring, and transparent result generation. The
project aims to provide users with a seamless and reliable platform for participating in
elections, ensuring security, accessibility, and user-friendliness. The system's scope
involves developing intuitive interfaces for voters and administrators, robust backend logic
for data processing, and secure database management. While the primary focus is on
facilitating transparent and secure elections, the project also considers scalability for
potential future enhancements, such as multi-language support or integration with other
governmental systems. The scope is defined to balance a rich feature set with a
streamlined experience, fostering trust and accessibility in democratic process.

62
20049080
CS6P05NI Final Year Project

7.4.3. Existing System


Existing eVoting systems often include web platforms and mobile applications designed
to streamline the electoral process. These systems typically offer features such as secure
voter authentication, user-friendly interfaces for casting votes, real-time monitoring of
election progress, and transparent result generation. Many existing platforms focus on
ensuring security, accessibility, and reliability while adhering to regulatory standards.
Some well-known examples include Estonian i-Voting, Voatz, and Scytl. These platforms
leverage advanced technologies to enhance voter confidence, reduce administrative
burdens, and facilitate more efficient and transparent democratic processes.

7.4.4 Reliability
Reliability is a cornerstone of the eVoting system, ensuring seamless and accurate
operation to uphold the trust of voters and election authorities. The system is meticulously
designed to provide secure voter authentication, flawless vote submission, and precise
result tallying. This is achieved through robust backend architecture and secure data
storage mechanisms, effectively mitigating risks such as data breaches, inaccuracies, or
system failures.
Furthermore, the system's reliability is reflected in its user interfaces, which are crafted
with responsive and intuitive design principles to provide a smooth and accessible voting
experience. The objective is to establish a platform where voters can confidently
authenticate their identities, cast their votes without complications, and rely on the
system's integrity to uphold the democratic process.

7.4.5 Security
Security is a paramount consideration in the Health and Fitness Tracker project to
safeguard user data and ensure user trust. The system employs robust security measures
across various dimensions. User authentication and authorization mechanisms are
implemented to control access to sensitive information, requiring secure login credentials
and validating user permissions.

63
20049080
CS6P05NI Final Year Project

7.4.6 Maintainability
Maintainability is a core consideration in the design of the eVoting system, ensuring that
the platform can be efficiently managed and evolved as election processes and
technologies advance. The system follows modular and well-documented code practices,
allowing for easy updates, debugging, and feature expansions. Regular code reviews and
version control are implemented to track changes and maintain code quality. This
approach ensures that the eVoting system remains adaptable, secure, and efficient,
accommodating future improvements or adjustments while preserving its reliability and
integrity.

7.4.7 Performance
Performance is a key focus of the eVoting system, aiming to provide a responsive,
efficient, and reliable voting experience. The system is designed to handle high volumes
of concurrent user interactions, ensuring smooth operation even during peak voting
periods. Performance optimizations are implemented at various levels, including secure
database queries, fast data retrieval, and responsive user interfaces. This ensures that
voters can authenticate, cast their votes, and receive confirmation without delays,
maintaining the system's reliability and trustworthiness throughout the election process.

7.4.8 Availability
Availability is a critical aspect of the eVoting system, ensuring that the platform is
consistently accessible to voters and election authorities throughout the election process.
The system leverages redundant infrastructure and cloud-based solutions to enhance
availability and minimize the risk of downtime, particularly during critical voting periods.
Load balancing and failover mechanisms are implemented to efficiently manage user
traffic and ensure continuity in the event of server failures. Continuous monitoring of
system health and performance allows for proactive issue detection and swift resolution,
minimizing any potential impact on users. Regular maintenance and updates are
scheduled during non-voting periods to further reduce disruptions and maintain system
readiness.

64
20049080
CS6P05NI Final Year Project

7.9. Revision of Work Breakdown Structure

Figure 18: Work Breakdown Structure

The shown diagram represents a Work Breakdown Structure (WBS) for an eVoting
system, designed to break the project into manageable components. It organizes tasks
hierarchically, starting from the overall system and branching into detailed phases and
activities.
At the top level, the eVoting System serves as the root node, symbolizing the entire
project. From this root, the structure branches into major project phases, each with its
own set of sub-tasks:
1. Planning: Covers essential preparatory activities such as gathering requirements,
holding stakeholder meetings, and performing feasibility analysis.
2. Design: Focuses on creating the user interface and defining the backend
architecture, ensuring the system's usability and technical foundation.
3. Development: Includes detailed tasks for frontend, backend, and database
implementation, each vital for building the functional core of the system.
4. Testing: Comprises unit testing, integration testing, and performance testing to
verify the system’s accuracy, reliability, and efficiency.
5. Deployment: Encompasses tasks related to launching the system in a production
environment and training end-users for effective operation.

65
20049080
CS6P05NI Final Year Project

Purpose of the Diagram:


The WBS diagram visually organizes the project's workflow, ensuring every phase and
activity is accounted for. It aids in:
• Clear task definition and deliverable identification.
• Effective resource allocation and timeline planning.
• Monitoring progress and maintaining focus on project objectives.

7.12. Study on Considered Methodologies Agile


Methodology:

The Agile methodology is adopted to enhance flexibility and responsiveness to changing


requirements throughout the project lifecycle.
Iterative development cycles, known as sprints, allow for incremental feature delivery and
continuous improvement based on user feedback.
Regular sprint planning, reviews, and retrospectives are conducted to foster collaboration
among team members and stakeholders.
DevOps Practices:

DevOps principles are integrated into the development and deployment processes to
ensure seamless collaboration between development and operations teams.
Continuous Integration (CI) and Continuous Deployment (CD) pipelines are implemented
to automate testing, deployment, and delivery processes, promoting a more streamlined
and efficient development workflow.
Regular monitoring and logging are incorporated to facilitate quick identification and
resolution of issues, contributing to a more reliable and available system.

7.12.1. RUP Methodology


The Rational Unified Process (RUP) methodology is a comprehensive and iterative
software development process that was widely used in the early 2000s. While it's not as

66
20049080
CS6P05NI Final Year Project

prevalent today, its principles and practices have influenced other modern methodologies.
The Health and Fitness Tracker project, however, does not explicitly follow the RUP
methodology. Still, it incorporates certain concepts aligned with iterative and incremental
development. Iterative Development:
Similar to RUP, the project adopts an iterative development approach. It breaks down the
development process into smaller cycles, allowing for incremental progress and
continuous refinement of features.
Use Case-Driven:
RUP emphasizes the importance of use cases for defining functional requirements. In the
Health and Fitness Tracker project, use cases play a crucial role in outlining user
interactions and system functionalities.
Architecture-Centric:
RUP is architecture-centric, emphasizing the significance of a well-defined architecture.
Similarly, the Health and Fitness Tracker project prioritizes a scalable and maintainable
architecture to support long-term growth and evolution.
7.12.2. RAD Methodology
The Health and Fitness Tracker project incorporates elements of the Rapid Application
Development (RAD) methodology, which is characterized by its emphasis on quick
development cycles and user feedback. In short, the RAD methodology in this project
involves:
Iterative Prototyping:
Rapidly developing and refining prototypes of the application to gather early feedback
from users. User Involvement:
Actively involving users throughout the development process to ensure the final product
aligns closely with their needs and expectations.
Flexible and Adaptive:
Adapting to changing requirements and incorporating modifications quickly, fostering
agility in response to user feedback.
Collaborative Development:
Promoting collaboration among cross-functional teams, including developers, designers,
and end-users, to streamline the development process.

67
20049080
CS6P05NI Final Year Project

Emphasis on Speed:
Prioritizing speedy development and delivery cycles, aiming for quicker time-to-market for
the Health and Fitness Tracker application.
7.12.3. Kanban Methodology
The Kanban methodology is applied in the Health and Fitness Tracker project to manage
the flow of work efficiently. In brief, the Kanban methodology involves:

Visualizing Workflow:
Utilizing Kanban boards to visualize and map out the workflow, providing a clear overview
of tasks and their status.
Work Item Limitations:
Implementing limits on work items at each stage to prevent overloading and maintain a
steady flow of work. Continuous Delivery:
Encouraging a continuous delivery model where work items move through the workflow
stages smoothly, minimizing bottlenecks.
Continuous Improvement:
Emphasizing continuous improvement by regularly analyzing and refining the workflow,
addressing inefficiencies, and optimizing processes.
Pull System:
Adopting a pull system where team members pull tasks based on their capacity, promoting
a more flexible and adaptive approach to task allocation.
7.13. Selected Methodology (Personal Scrum Model)
The eVoting system project has adopted a Kanban methodology, emphasizing visual workflow
management and continuous delivery. This approach ensures a streamlined and efficient
development process tailored to meet the specific needs of the project. Key aspects of the Kanban
methodology implemented include:
Visual Workflow Management: Using a Kanban board to represent tasks visually, with columns
signifying different stages of development, such as "To Do," "In Progress," "Testing," and "Done."
Work in Progress (WIP) Limits: Setting WIP limits for each stage to prevent bottlenecks, ensuring
that the team focuses on completing tasks before taking on new ones.

68
20049080
CS6P05NI Final Year Project

Continuous Delivery: Facilitating a steady flow of deliverables by prioritizing tasks dynamically and
delivering updates incrementally.
Pull-Based Task Assignment: Allowing team members to pull tasks from the backlog or the "To
Do" column as they complete their current work, promoting ownership and accountability.
Focus on Continuous Improvement: Regularly reviewing processes and workflows to identify
inefficiencies, with a commitment to implementing changes for ongoing optimization.
Adaptability: Providing flexibility to accommodate changing priorities and user feedback without
disrupting the overall workflow.
The Kanban methodology was selected for its ability to enhance productivity, visibility, and
adaptability, making it particularly well-suited for the dynamic and iterative development
requirements of the eVoting system project.

Bibliography
Alliance Software, 2023. An Introduction To Software Development Methodologies.
[Online]
Available at: https://www.alliancesoftware.com.au/introduction-software-
developmentmethodologies/
[Accessed 18 December 2023].
Anon., n.d.
Anon., n.d.
Anon., n.d. Women&Home.
augmentecture, n.d.
Britannica, 2022. Architecture. [Online]
Available at: https://www.britannica.com/topic/architecture
[Accessed 10 December 2022].
Cambridge, 2023. Methodology | English Meaning. [Online]
Available at: https://dictionary.cambridge.org/dictionary/english/methodology [Accessed 18
December 2023].

69
20049080
CS6P05NI Final Year Project

DAVID REBEDEW, M., n.d. AAFP. Issue 2022.


Figma, n.d.
Hannah, J., 2023. What Exactly Is Wireframing?. [Online]
Available at: https://careerfoundry.com/en/blog/ux-design/what-is-a-wireframe-guide/ [Accessed 20
December 2023].
IBM, n.d.
IHRSA, 2022. IHRSA Media Report: Health and Fitness Consumer Data & Industry Trends,
Boston, MA: IHRSA.
Interview Bit, 2022. System Architecture. [Online]
Available at: https://www.interviewbit.com/blog/system-architecture/ [Accessed 10
December 2022].
javatpoint, 2023.
Kahwaji, A., 2020. A Study of Customer Satisfaction Dimensions and Impact on Customer
Loyalty. 6(1), pp. 1042-1054.
Lucid , 2023. Mind Map Diagram. [Online]
Available at: https://www.lucidchart.com/pages/examples/mind_mapping_software [Accessed 20
December 2023].
Lucid Chart, 2023. Block Diagram. [Online]
Available at: https://www.lucidchart.com/pages/examples/block-diagram-maker [Accessed
20 December 2023].
Lucid Chart, 2023. Collaboration Diagram. [Online]
Available at: https://www.lucidchart.com/pages/uml-communication-diagram [Accessed 20
December 2023].
Lucid Chart, 2023. UML Activity Diagram. [Online]
Available at: https://www.lucidchart.com/pages/uml-activity-diagram [Accessed 20
December 2023].
Lucid Chart, 2023. UML Class Diagram. [Online]
Available at: https://www.lucidchart.com/pages/uml-class-diagram [Accessed 20 December
2023].
Lucid Chart, 2023. UML Sequence Diagram. [Online]

70
20049080
CS6P05NI Final Year Project

Available at: https://www.lucidchart.com/pages/uml-sequence-diagram [Accessed 20


December 2023].
Lucid Chart, 2023. UML Use Case Diagram. [Online]
Available at: https://www.lucidchart.com/pages/uml-use-case-diagram [Accessed 20
December 2023].
Lucid Chart, 2023. What is a data flow diagram?. [Online]
Available at: https://www.lucidchart.com/pages/data-flow-diagram [Accessed 20 December
2023].
Lucid Chart, 2023. What is an Entity Relationship Diagram (ERD)?. [Online]
Available at: https://www.lucidchart.com/pages/er-diagrams
[Accessed 20 December 2023].
Meredith Alda, n.d. Statista.
Miro, 2024. 02 01.
Miro, n.d.
Nike, n.d. Nike.
Online Khabar, 2023. Futsal in Nepal: Amid hurdles, growing up slow and steady as a business.
[Online]
Available at: https://english.onlinekhabar.com/futsal-in-nepal-growth-challenges.html
[Accessed 5 November 2023].
Quick Start, 2022. Pros and Cons of Scrum Methodology. [Online]
Available at: https://www.quickstart.com/blog/pros-and-cons-of-scrum-methodology/
[Accessed 8 December 2022].
Tech Sathi, 2023. Vakundo App: Book Futsal Venue, Join Team or Challenge Opponent.
[Online]
Available at: https://techsathi.com/vakundo-app
[Accessed 18 December 2023].
Tech Target, 2023. Tech Target.
Tech target, n.d.
WePlay Nepal, 2023. WePlay Nepal | Online Futsal Booking App in Nepal. [Online]
Available at: https://www.weplaynepal.com/
[Accessed 18 December 2023].

71
20049080
CS6P05NI Final Year Project

Zacharias, C. & Pinedo, M., 2020. Appointment Scheduling with No-Shows and
Overbooking. Production and Operations Management, 23(1), pp. 54-61.

72
20049080

You might also like