Swabhiman Rawal
Swabhiman Rawal
Pure Motion
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
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
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.
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.
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
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)
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)
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)
5 20049080
CS6P05NI Final Year Project
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.
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
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
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 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.
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.
8 20049080
CS6P05NI Final Year Project
9 20049080
CS6P05NI Final Year Project
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.
10
20049080
CS6P05NI Final Year Project
Case Study Scenario Developing a system not in just an application level but also
following all sets of guidelines for a proper documentation.
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
Features Methodologies
Agility Dynamics
✓ ✓ ✓
Innovation Ideas
✓ ✓ ✓
Differentiation via
emerging
technologies ✓
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.
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.)
14
20049080
CS6P05NI Final Year Project
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
16
20049080
CS6P05NI Final Year Project
In the appendix of this document, the SRS provides an inclusive overview of the
project's scope, features, and applications for the proposed system.
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
19
20049080
CS6P05NI Final Year Project
20
20049080
CS6P05NI Final Year Project
21
20049080
CS6P05NI Final Year Project
22
20049080
CS6P05NI Final Year Project
(Miro, 2024)
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
25
20049080
CS6P05NI Final Year Project
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
27
20049080
CS6P05NI Final Year Project
28
20049080
CS6P05NI Final Year Project
29
20049080
CS6P05NI Final Year Project
30
20049080
CS6P05NI Final Year Project
31
20049080
CS6P05NI Final Year Project
32
20049080
CS6P05NI Final Year Project
33
20049080
CS6P05NI Final Year Project
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
36
20049080
CS6P05NI Final Year Project
The architectural design contains a diverse range of disciplines that focuses on more than
just construction.
37
20049080
CS6P05NI Final Year Project
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:
39
20049080
CS6P05NI Final Year Project
40
20049080
CS6P05NI Final Year 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
42
20049080
CS6P05NI Final Year Project
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.
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.
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.
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
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.
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.
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.
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.
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.
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:
• 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.
• Enhance real-time vote tracking and analytics using WebSocket integration for
live updates.
• Build intuitive interfaces to ensure all users, including those with disabilities, can
participate in the electoral process.
51
20049080
CS6P05NI Final Year Project
• Ensure that the mobile app supports seamless voter registration and secure
voting processes.
• 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.
• Regularly update security protocols using libraries like OWASP security best
practices to mitigate vulnerabilities like cross-site scripting (XSS) and SQL
injection.
Performance Optimization
• Enhance database query efficiency and manage large datasets using Drizzle
ORM.
• Test the system under load conditions using tools like k6 to ensure scalability for
large-scale elections.
52
20049080
CS6P05NI Final Year Project
• 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.
53
20049080
CS6P05NI Final Year Project
7. Appendix
Appendix for eVoting System Project Documentation
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, 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.
54
20049080
CS6P05NI Final Year Project
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.
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.
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.
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.
56
20049080
CS6P05NI Final Year Project
• 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.
• 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.
• 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.
• 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.
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.
• 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.
• 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.
• 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.
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.
Frontend:
• Framework: React JS
Backend:
• Framework: Node JS
59
20049080
CS6P05NI Final Year Project
• Database: MongoDB
Additional Technologies:
• Authentication:
• State Management:
60
20049080
CS6P05NI Final Year Project
• API Documentation:
• 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:
• Database Migration:
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.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
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
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.
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
70
20049080
CS6P05NI Final Year Project
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