Web Based Charity Systemff
Web Based Charity Systemff
Acknowledgment
First of all, we would like to thank our almighty God who gives us love, patience, healthy,
wisdom, and the ability to finish this semester's project.
Our heartfelt appreciation goes to our adviser Felix Edesa for his guidance, valuable
suggestions, moral support, and constant encouragement in the documentation part and also for
constructive opinion and willingness to participate in each part of our documentation and his
effective direction.
We would like to thank many people for their kindness and assistance during our project work.
We truly appreciate the support of the people at the Mekedonia and Muday for their willingness
to interview, patience in answering our numerous questions.
I|Page
[ Web-based charity system June 29, 2021
Table of Contents
List of tables...............................................................................................................................................IV
List of figures...............................................................................................................................................V
Abbreviations.............................................................................................................................................VI
Abstract.....................................................................................................................................................VII
CHAPTER ONE: INTRODUCTION.......................................................................................................1
1.1 Background of the organization...........................................................................................................1
1.2 Statement of the problem.....................................................................................................................1
1.2.1 Existing System................................................................................................................................1
1.2.2 Major problem of the existing system..........................................................................................2
1.2.3 Proposed system............................................................................................................................2
1.2.4 Advantage of the proposed system........................................................................................3
1.3 Motivation............................................................................................................................................4
1.4 Scope and limitation of the project......................................................................................................4
1.4.1 Scope of the project..........................................................................................................................4
1.4.2 Limitation of the project...............................................................................................................4
1.5 Objectives......................................................................................................................................4
1.5.1 General objective..............................................................................................................................4
1.5.2 Specific objectives........................................................................................................................4
1.6 Methodology..................................................................................................................................5
1.6.1 Data collection method.................................................................................................................5
1.6.2 System design and analysis tools...........................................................................................6
CHAPTER TWO: SYSTEM REQUIREMENT SPECIFICATION......................................................7
2.1 Background Overview.........................................................................................................................7
2.2 Functional Requirement.......................................................................................................................7
2.3 Non-functional Requirement...............................................................................................................8
2.4 Feasibility Study..........................................................................................................................10
CHAPTER THREE: SYSTEM ANALYSIS AND MODELING..........................................................13
3.1 Overview............................................................................................................................................13
3.2 Scenario-Based Modeling............................................................................................................13
3.2.1 Use-case identification................................................................................................................13
3.2.2 Actor identification and description...........................................................................................14
3.2.3 Use-case Diagram................................................................................................................15
3.2.4 Activity diagram..................................................................................................................26
II | P a g e
[ Web-based charity system June 29, 2021
III | P a g e
[ Web-based charity system June 29, 2021
List of tables
Table 1: System design and analysis tools.....................................................................................................6
Table 2: System development tools...............................................................................................................6
Table 3: Use-case description for login.......................................................................................................16
Table 4: Use-case description for Send profile for approval.......................................................................17
Table 5: Use-case description for post needs...............................................................................................17
Table 6: Use-case description for register...................................................................................................18
Table 7: Use-case description for Make promise donation.........................................................................19
Table 8: Use-case description for Make appointment.................................................................................20
Table 9: Use-case description for Update profile........................................................................................21
Table 10: Use-case description for Reject profile........................................................................................21
Table 11: Use-case description for delete....................................................................................................22
Table 12: Use-case description for Approve profile....................................................................................22
Table 13: Use-case description for Send profile for approval.....................................................................23
Table 14: Use-case description for Approve profile....................................................................................23
Table 15: Use-case description for Add agent.............................................................................................24
Table 16: Use-case description for Search...................................................................................................24
Table 17: Use-case description for Make online donation..........................................................................25
IV | P a g e
[ Web-based charity system June 29, 2021
List of figures
Figure 1: Use-case diagram for the proposed system..................................................................................15
Figure 2:The Activity diagram for System admin.......................................................................................27
Figure 3:Activity diagram for organization officer.....................................................................................28
Figure 4:Activity diagram for the donor......................................................................................................29
Figure 5:The sequence diagram for the organization officer.......................................................................31
Figure 6:The sequence diagram for a donor................................................................................................33
Figure 7:The State diagram for organization officer...................................................................................35
Figure 8:The state diagram for a donor........................................................................................................36
Figure 9:class diagram.................................................................................................................................37
Figure 10:Component diagram....................................................................................................................41
Figure 11:Deployment diagram for the proposed system............................................................................41
Figure 12:user interaction............................................................................................................................42
Figure 13: Architecture of the proposed system..........................................................................................43
Figure 14: Database diagram.......................................................................................................................45
Figure 15: Home Page.................................................................................................................................47
Figure 16:Register Page...............................................................................................................................48
Figure 17: Login page..................................................................................................................................49
V|Page
[ Web-based charity system June 29, 2021
Abbreviations
GB Gigabyte
GIT Global Information Tracker
JWT JSON Web Token
HTTP HyperText Markup Language
PAYPAL Electronic Payment Website
EBAY Electronic Bay
ORG Organization
DOS Denial-of-service
SSL Secure Socket Layer
HMAC Hash-based Message Authentication Code
BLL Business Logic Layer
DAL Data Access Layer
Adobe XD Adobe Experience Design
VI | P a g e
[ Web-based charity system June 29, 2021
Abstract
Many people want to donate and help charity organizations but they don't know, how to go about
it, where to find such organizations on their choice of action, what the available ways are, and so
on. Charity organizations also face many hardships in their advertising and fundraising activities.
Hence, this web-based charity system addresses this issue by developing a web-based charity
system as a hub of different charity organizations categorized based on their course of charity. It
provides donors full information about each organization and ways to donate at any time from
anywhere.
VII | P a g e
[ Web-based charity system June 29, 2021
Charity is a fundamental norm of Ethiopians which is deeply waved into the culture. This act
of philanthropy is advocated in every culture, religion, and value that exists in Ethiopia.
Simply, we can state that it is part of what is being an Ethiopian. This adorable social value is
also witnessed by foreigners as a manner of Ethiopians.
For centuries, charitable giving has been practiced in a traditional way where philanthropists
directly provide money to those in need have support who usually seat on streets or public
places. This mode of charity still constitutes the major share of charitable giving. However,
nowadays, several local charity organizations are emerging in Ethiopia. This organization
created a better platform where supporters can give their charity and those in need can get
support. The existing number of charity organizations is also increasing since the belief in the
concept of an organized form of charity is now being accepted widely.
Despite getting popularity, these charity organizations have several limitations especially in
the way of getting donations. They have an inefficient mechanism of advertisement and
collecting money and materials from donors. Consequently, the majority of them are
financially unstable. More specifically, these organizations are not easily accessible for
supporters and fundraisers in terms of physical distance and time. Moreover, most of these
organizations lack a well-established department that promotes their services and announces
the materials needed.
1|Page
[ Web-based charity system June 29, 2021
We found some well-designed and established websites which are operating abroad took to
match good practices. Just to name a few charhub.org, nonprofithub.org, charitynavigator.org,
etc.
Since 2001, charity navigator has been empowering millions of donors by providing them with
free access to data, tools, and resources to guide philanthropic decision-making. Through our
ratings, nonprofits are equipped with the nonprofit sector's premier trust indicator and a powerful
platform to raise awareness and funds [1].
To our knowledge, no hub serves as a place for all charitable organizations that can be found in
Ethiopia. Some charity organizations have a basic promotional website which is not nearly
enough for getting any charities directly through their website. So by combining the experience
of those aboard charity hub with our countries demand a centralized hub we think it would be a
perfect project and help those charity organizations in the way.
2|Page
[ Web-based charity system June 29, 2021
The system will provide enough information about charity organizations' financial and
kind or material needs for their service.
The system will advertise any project which is started by those charity organizations to
upgrade or expand their service.
The system enables the donors can make a promise donation.
The system will give full information about contacts, branches, email, location of those
organizations.
The system enables supporters to deliver their materials support from where they are
through agents of these charity organizations.
The system lets to book their appointment for those who want to support personally their
support could be labor work like washing clothes or professional support like
psychological consultancy.
Moreover, the methodologies that are followed to gather support and address sufficient
information are bashful and retarded.
3|Page
[ Web-based charity system June 29, 2021
The donors can easily get all local charity organizations in one system and donate
easily.
1.3 Motivation
The motivation why we started this project is because of the lack of a web-based charity system
in Ethiopia, and it is known that charity is blessed work that deserves everyone's support. The
measures that are taken to do so are under what is needed. Even there is no such software
product to help this great activity.
1.5 Objectives
1.5.1 General objective
The general objective of this project is to develop a web-based charity system.
4|Page
[ Web-based charity system June 29, 2021
1.6 Methodology
1.6.1 Data collection method
The requirement elicitation process was conducted by interviews and observations. We
interviewed major charity organizations. We observe a lot of disabled and needy peoples in
charity organizations and those peoples are in a critical situation .those people need food,
shelter, clothes, and medicine, and mentor. The main methodologies used in our data
collection progress were conducting interviews and searching on the internet to get some
additional information.
we have interviewed two local charity organizations. namely: Mekedonia and muday charity
association. Mekedonia helps more than 5000 elders and people with a mental disorder
whereas muday supports 450 mothers and 600 children. answering two core questions was the
main objective of the interview. Those questions are:-
i. How do you raise money?
ii. How do you promote charity activities?
5|Page
[ Web-based charity system June 29, 2021
uses some income-generating activities like selling enjera and cultural handcrafts work as
well as a direct donation from visitors to elevate its finance.
There is no local platform for a donor that provides them with a set of charity organizations
with different categories and options.
6|Page
[ Web-based charity system June 29, 2021
7|Page
[ Web-based charity system June 29, 2021
organization
The system shall send confirmation notifications for donors.
The system shall promote ongoing projects of charity organizations.
As our service gets some traction and many people are drawn to it. It is expected to serve
thousands of customers at once. We will build these things in mind. Node.js comes to be the best
choice out in the market
Node.js popularity grew in the past years since 2017 this is because of its easy ways to scale.
Developing a server-side application can be tricky, particularly when it has to be scalable.
Node.js uses a single thread to handle non-blocking I/O calls, which means that it’ll take fewer
resources for the application to accept concurrent connections compared to traditional
approaches[2].
o Reliability
Considering our project's sensitive issue reliability is the number one thing we cannot
compromise on. To deliver a high degree of confidentiality to our customers we considered
aspects of the backend technology we used and the host.
Regarding our customer's sensitive data and privacy, we have every reason to be concerned
about data breaches and other forms of cyber-crimes as the internet is not a safe place. This is
why a secure and reliable web host is important. We make sure the host is as reliable and secure
as possible by taking some measures.
8|Page
[ Web-based charity system June 29, 2021
o Usability
Considering our user age( 20-60) and cultural demographic, we have to make the system as easy
and simple as possible. That is why we choose the best front-end development technology.
In modern JavaScript creation, React.js is one of the most developmentally important frontend
libraries you can use. It helps you to create highly reactive user interfaces that have a user
experience that is fast and mobile-app-like.
o Maintainability
There is no perfect world. Things can go wrong and will go wrong, errors will happen. The best
thing we can do is to minimize the risk and find a way to react fast it happen. To do that we will
write a simple and maintainable code by:-
Recognize accidental complexity: Techniques that help me reduce complexity are declarative
and functional programming, and choosing composition over inheritance.
Start simple, build an evolvable architecture: Build the simplest thing that will work KISS(‘keep
it simple, stupid,’), and keep the YAGNI("You aren't gonna need it") principle in mind. Only
start creating abstractions once the code starts hurting to maintain or extend further. As soon as
you see yourself repeating a piece of code more than two times, it’s time to see if you can create
an abstraction to reuse the code.
o Security
Our system uses the best authentication and authorization ways to develop a system.
Although there are many authentication methods there the one we are going to use is JSON Web
Token(JWT). It is a state-less solution for authentication so there is no need to store any session
data on the server which is perfect for restful APIs like the one we are building. because stateful
API should always be stateless[3].
9|Page
[ Web-based charity system June 29, 2021
Node.js provides a built-in module called crypto that you can use to encrypt and decrypt strings,
numbers, buffers, streams, and more. This module offers cryptographic functionality that
includes a set of wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify
functions[4].
Even if the attacker gained access to our database he/she couldn't steal the user's password or
reset them. To prevent Brute Force attacks (the attacker try to guess a password by trying
random passwords until he finds the right one).
We Implement rate-limiting(express-rate-limit).
To prevent cross-site scripting(xss) attacks(when the attacker try to inject scripts to run his/her
malicious code)
The browser can only receive and send the cookie can not access or modify it.
To Prevent Denial-of-service (Dos) attacks (the attacker sends so many requests that the server
breaks down and the application becomes available).
We Implement rate-limiting(express-rate-limit).
Technical Feasibility
This assessment focuses on the availability of technical issue which is capable of converting
the proposed idea into a working system. Since for front end and back end, development,
node.js and react.js frameworks are proposed and MongoDB is selected for database design.
These things make development easy and possible. The system is applicable and easy to use
for any ordinary person who has basic computer skills. and it needs only an OS and 2GB ram
computer with 250GB hard disk which is the least specifications of available computers.
Operational feasibility
The proposed system solves the bottlenecks stated in the statement of the problem section of this
document. We have a willingness of charity organizations to support the system solution. The
current mode of operation is suitable for the application of the proposed system.
Economic Feasibility
This could also be referred to as cost/benefit analysis. In the context of our proposed system:-
The system does not require extra finance or material facilities beyond the simple
11 | P a g e
[ Web-based charity system June 29, 2021
computer, smartphone, and data connection that are available throughout every
organization.
The development phase of the system also does not require any finance since the skill and
equipment which are needed for the development are on hand already.
It reduces the existing manual effort and expense for promotion and fundraising
activities.
The only money the system need is for maintenance cost, connection cost, operational
cost, and server rent cost.
Schedule feasibility
Schedule feasibility is a study of whether the project will be completed within a given time
box. Everything needed including team dedication is one hand. So it is confirmed as time-
bound feasible.
12 | P a g e
[ Web-based charity system June 29, 2021
Approve
Login
Create
Update
Delete
post needs
Register
View Charities
13 | P a g e
[ Web-based charity system June 29, 2021
Charity Organization officer: Charity Organization officer is an individual who represents the
organization which has legal documents and approved by the concerned body of government
Donor: A donor is a person who is interested in making any kind of donation or service that a
charity organization may need. The donor can be representative of different organizations like
NGOs.
14 | P a g e
[ Web-based charity system June 29, 2021
15 | P a g e
[ Web-based charity system June 29, 2021
16 | P a g e
[ Web-based charity system June 29, 2021
Preconditions The agent has a valid username and password and is not already
logged in
Trigger The agent requires access to the system to perform their job
2) Click login
If it is invalid
3) Press reset
17 | P a g e
[ Web-based charity system June 29, 2021
Preconditions If some organization creates an account on the system and send for
approval
2) Submit
2) Resubmit
Goal In Context To get donations for what the organization is lacking at the moment
18 | P a g e
[ Web-based charity system June 29, 2021
2) Resubmit
If it is invalid
19 | P a g e
[ Web-based charity system June 29, 2021
If it is a financial donation
1) Give charity bank information and redirect the page to its bank
page
If abroad donator
20 | P a g e
[ Web-based charity system June 29, 2021
Trigger The donor will be remembered at the time when the appointment is set.
21 | P a g e
[ Web-based charity system June 29, 2021
22 | P a g e
[ Web-based charity system June 29, 2021
23 | P a g e
[ Web-based charity system June 29, 2021
24 | P a g e
[ Web-based charity system June 29, 2021
4)If it is valid the information will add and agent are added to the
system
Trigger The donor will get data that is related to its search result
3) if the search match the result will display on the display area
25 | P a g e
[ Web-based charity system June 29, 2021
26 | P a g e
[ Web-based charity system June 29, 2021
An activity diagram is a flowchart to represent the flow from one activity to another activity.
The activity can be described as an operation of the system.
The control flow is drawn from one operation to another. This flow can be sequential, branched,
or concurrent. it deals with all types of flow control by using different elements such as fork,
join. here in our system use an activity diagram to show the activities of doners, organization
officers. activity diagram to show the activities of doners, organization officers.
27 | P a g e
[ Web-based charity system June 29, 2021
28 | P a g e
[ Web-based charity system June 29, 2021
29 | P a g e
[ Web-based charity system June 29, 2021
30 | P a g e
[ Web-based charity system June 29, 2021
31 | P a g e
[ Web-based charity system June 29, 2021
32 | P a g e
[ Web-based charity system June 29, 2021
33 | P a g e
[ Web-based charity system June 29, 2021
34 | P a g e
[ Web-based charity system June 29, 2021
35 | P a g e
[ Web-based charity system June 29, 2021
36 | P a g e
[ Web-based charity system June 29, 2021
Here, a class diagram is required to describe the static view of the proposed online charity
for local charity organizations. It is also helpful in visualizing objects within a system and
the kinds of static relationships that exist among them.
38 | P a g e
[ Web-based charity system June 29, 2021
This phase introduces an object modeling technique were objects including data and process. It
uses the asset of symbols to represent various components and relationships within the system
graphically.
Object modeling requires many types of diagrams to represent the proposed system. Hence, these
diagrams will form the foundation for the system design and very important to make
implementation easy. Systems design is the process of defining the architecture, modules,
interfaces, and data for a system to satisfy specified requirements. However, during systems
design, the focus is on the processes, data structures, and software and hardware components
necessary to implement it.
Design goals provide a consistent set of criteria that should be taken into consideration when
making design decisions. They represent the expected qualities of the system and define the
values against which design options are evaluated. Design goals should be used as a guide when
choosing a system design and they should be realized in the design chosen. The non-functional
requirements of a system provide the basis for inferring most design goals and we use the eight
golden rules of interface design principles for better user interface design(by Shneiderman). The
design goals we choose are performance, strive for consistency, seek universal usability, offer
informative feedback, prevent errors, permit easy reversal of actions, reduce short-term memory
load, reliability and maintainability.
Performance
The performance of a system is measured by its latency and throughput. The latency should be
minimized while the throughput should be maximized working with the available bandwidth. For
our system to accomplish this we will use a lightweight graphic interface so it will load fast, and
we will choose a fast and dependable server.
39 | P a g e
[ Web-based charity system June 29, 2021
Prevent errors
As much as possible, design the interface so that users cannot make serious errors; for example,
gray out menu items that are not appropriate and do not allow alphabetic characters in numeric
entry fields. If users make an error, the interface should offer simple, constructive, and specific
instructions for recovery. For example, users should not have to retype an entire name-address
form if they enter an invalid zip code but rather should be guided to repair only the faulty part.
Erroneous actions should leave the interface state unchanged, or the interface should give
instructions about restoring the state.
40 | P a g e
[ Web-based charity system June 29, 2021
that errors can be undone, and encourages exploration of unfamiliar options. The units of
reversibility may be a single action, a data-entry task, or a complete group of actions, such as
entry of a name-address block.
Reliability
The reliability of a system is usually defined as the probability that the system will operate
without failure for a specified number of uses or a specified period. We will achieve this goal by
using redundant hardware that will take on the services of the failed ones.
Maintainability
The system should be easily extensible to meet the constantly changing needs of its users and to
add new functionalities to the system.
Registration – this registration component handles the donor and charity organization
registration process. It provides an interface used for approval and donation.
Donation - this donation component is responsible for all processes regarding donations.
Approval- this approval component is about approving the charity organization profile whether
is legal or illegal. If it is legal then approved. If it is illegal then rejected and it uses an interface
provided by the registration component.
41 | P a g e
[ Web-based charity system June 29, 2021
Database – access to the databases of the system is provided by this component. All
transactions to and from the database will be handled by it.
Accounts – this accounts component is responsible for all account management issues. It uses
the database component.
42 | P a g e
[ Web-based charity system June 29, 2021
43 | P a g e
[ Web-based charity system June 29, 2021
44 | P a g e
[ Web-based charity system June 29, 2021
Database Entities:
45 | P a g e
[ Web-based charity system June 29, 2021
46 | P a g e
[ Web-based charity system June 29, 2021
47 | P a g e
[ Web-based charity system June 29, 2021
48 | P a g e
[ Web-based charity system June 29, 2021
49 | P a g e
[ Web-based charity system June 29, 2021
50 | P a g e
[ Web-based charity system June 29, 2021
References
[1]. ” Your Guide To Intelligent Giving,”(2020,Aug. 15). [online]. Accessed on: june. 08, 2021.
Available at : https://www.charitynavigator.org/index.cfm?bay=content.view&cpid=8658.
[2].”Node.js v16.4.0 Documentation”(2020,sep 15).[online]. Accessed on: june. 08, 2021.
Availabl at: https://nodejs.org/api/documentation.html.
[3]. “Web Application Security Best Practices: A Developer’s Guide,”(2020,May. 15). [online].
Accessed on: june. 08, 2021. Available at: https://securityintelligence.com/posts/web-
application-security-best-practices-developers-guide/
[4]. “Web Application Security Best Practices: A Developer’s Guide,”(2020,May. 15). [online].
Accessed on: june. 08, 2021. Available at: https://securityintelligence.com/posts/web-
application-security-best-practices-developers-guide/
[5]. Bellinaso, “Marco, ASP.NET 2.0 website programming, Problem - Design - Solution”,
2006. p 48.
51 | P a g e
[ Web-based charity system June 29, 2021
Appendix
Donation - something that is given to a charity.
Charity organization - is an organization whose primary objectives are philanthropy and social
well-being
Charity - the voluntary of giving help, typically in the form of money, to those in need.
52 | P a g e