Professional Documents
Culture Documents
for
Express Charity
Version 1.0
By
Muhammad Qasim CIIT/FA19-BSE-033/ISB
Syed Aown Asghar Raza CIIT/FA19-BSE-014/ISB
Supervisor
Dr. Usman Yaseen
Table of Contents
Revision History...........................................................................................................................iii
Application Evaluation History...................................................................................................iv
1. Introduction............................................................................................................................1
1.1 Modules.......................................................................................................................................1
2. Design Methodology and Software Process Model.............................................................3
3. System Overview....................................................................................................................3
3.1 Architectural Design....................................................................................................................3
4. Design Models........................................................................................................................5
4.1 Activity Diagrams........................................................................................................................5
15.2 State Transition Diagrams..........................................................................................................14
15.3 Data Flow Diagrams..................................................................................................................16
5. Data Design...........................................................................................................................20
5.1 Data Dictionary..........................................................................................................................20
6. Human Interface Design.....................................................................................................25
6.1 Screen Images............................................................................................................................25
6.2 Screen Objects and Actions.......................................................................................................32
7 Implementation....................................................................................................................35
7.1 Algorithm...................................................................................................................................35
Output: User logged into his.................................................................................................................36
1: for at.................................................................................................................................................36
7.2 External APIs/SDKs..................................................................................................................36
7.3 Deployment................................................................................................................................36
8. Testing and Evaluation........................................................................................................37
8.1 Unit Testing...............................................................................................................................37
8.2 Functional Testing.....................................................................................................................38
8.3 Integration Testing.....................................................................................................................38
9. References.............................................................................................................................40
Software Design Description for Express Charity Page iii
Revision History
Name Date Reason for changes Version
Software Design Description for Express Charity Page iv
Supervised by
Supervisor’s Name
Signature______________
1. Introduction
Our project is an interactive tool that will not only allow donors to make donations in an easy
and responsive way but also focuses on providing the best loan and charity facilities to the needy
through beneficiary verification. The system ensures secure and effective donations through its
tracking and feedback system. Furthermore, the admins will have complete access to all the donations
and financial details of the organization. The admins will also have total control over all the charity
campaigns that are being displayed on the web and mobile applications. This freedom of control will
allow them to keep the website up to date. Audit reports, financial sheets, and donation analytics will
ensure the transparency of the organization with both the donors and the admins.
The applications for donations will only be operational in Pakistan. Moreover, donations can only be
made through credit card payments and payments will be conducted using the Stripe API. There is no
blockchain-based solution for payment and donation verification will be added. The system will also
not be able to automatically validate the documents uploaded by a beneficiary, this task will be
performed manually by an admin.
1.1 Modules
1
1.3.5 Module 5: Interactive Map
FE-1: Show an interactive SVG map showing donations distributed over the regions.
FE-2: Allow user to navigate to specific regional campaigns through the map.
FE-3: Allow exploration of sub-regions of the map with the use of a search bar.
FE-4: Show location of a campaign on click using the Google Maps API.
2
2. Design Methodology and Software Process Model
Design Methodology: Iterative
Rationale: Below are the reasons for choosing Iterative development approach.
1. Develop modules and features of the project incrementally and integrate with the system.
2. The project implementation can be tackled piece by piece instead of developing the entire
system. This greatly reduces development and error handling efforts and is more practical as
each small increment or functionality is tested for correctness before integration.
3. Different parts/modules of project require expertise in different skills. As an educational
project, incremental approach helps us to set deadlines for different tasks/modules based on the
size, complexity and effort required for the work.
4. With incremental approach, testing development of each module goes hand in hand, thus errors
are easier to remove and the integrated product is relatively free from error as the modules are
previously tested.
3. System Overview
3
Figure 1: Box and Line Diagram
4
Web
Application
5
4. Design Models
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15.1
6
Figure 3: Donor Login Activity Diagram
7
Figure 16: Admin Login Activity Diagram
10
Figure 19: Loan Management Activity Diagram
11
Figure 20: Campaign Management Activity Diagram
12
Figure 21: Email System Activity Diagram
13
Figure 22: Make Donation Activity Diagram
14
Figure 23: Generate Balance Sheet Activity Diagram
15
Figure 24: Application Analytics Transition Diagram
16
15.3 Data Flow Diagrams
17
Figure 5: Level 1 DFD
18
15.3.2 Functionality Wise Diagrams
19
Figure 30: User Signup and Google Location DFD
5.1 Data Dictionary
21
was successfully updated.
Array<ObjectId> –
Appealed
Ref: Store reference to the specific campaigns
Specific
Beneficiary SpecificCampaigns appealed by the Beneficiary.
Campaigns
.id
Appealed ObjectId – Ref: Store reference to Loans requested by the
Loans Loan.id beneficiary.
Store the longitude and latitude for the
location Array<Numbers>
beneficiary location
Account Object:
Store Account details for the beneficiary
Details AccountDetails
Store date and time when beneficiary
createdAt DateTime
account was successfully created.
Store date and time when beneficiary
updatedAt DateTime
account was successfully updated.
23
database
Loan Title String Store name of the campaign
description String Store the campaign description
Required
Number Store amount required by the campaign
Amount
Donated
Number Store amount donated to the campaign
Amount
Returned Store amount returned by the
Number
Amount beneficiary.
String: Enum
[‘Educational’, Store reference to the specific campaigns
Category
‘Medical’, ‘Family appealed by the Beneficiary.
Support’, …]
ObjectId – Ref: Store reference to the beneficiary who
Beneficiary
Benificiary.id requested the campaign.
Received Array<ObjectId> – Store references to all the donations
Loans Ref: Donation.Id made to the campaign.
Array<Object> - Stores information of loans returned by
Return Entries
{Amount, Date} the beneficiary.
Store whether the given loan is approved
Approved Boolean
or not?
Store whether the loan is completed or
Completed Boolean
not
Rejected Boolean Store whether the loan is rejected or not?
Store date and time when the loan was
createdAt DateTime
successfully created.
Store date and time when the loan was
updatedAt DateTime
successfully updated.
24
Ref: Donation.Id made to the campaign.
Store whether the given campaign is
Approved Boolean
approved or not?
Store whether the campaign is completed
Completed Boolean
or not
Store whether the campaign is rejected or
Rejected Boolean
not?
Store date and time when the campaign
createdAt DateTime
was successfully created.
Store date and time when the campaign
updatedAt DateTime
was successfully updated.
25
Campaign.id which the audit is done.
ObjectId – Ref: Store reference to the beneficiary who
Beneficiary
Benificiary.id requested the campaign.
ObjectId – Ref: Store references to all the donations
Auditor
Admin.Id made to the campaign.
Store whether the audit is completed or
Completed Boolean
not
ObjectId – Ref: Reference to the file uploaded by the
File
file.id admin.
6.1 Screen Images
26
Figure 33: View Users
27
Figure 35: View Recent Donations
28
Figure 37: Analytical Graphs (Bar)
29
Figure 39: Analytical Graphs (Line)
30
Figure 41: Login Screen
31
Figure 42: Register Screen
32
6.2 Screen Objects and Actions
33
This Dashboard button is in admin panel, from
this button the admin can view all of the major
analytics and recent information.
34
The Graphs button allows the admin to view all of
the donation related analytics and interact with
them.
35
1 Implementation
Chapter 1:
1.1 Algorithm
Algorithm 1: Create campaign
Input: Campaign name, Description, Donation, file
Output: Campaign is created.
1: if (fields not filled)
2: output ← Campaign not created
3: send response (401)
2: if (fields filled)
3: create(campaign)
4: output ← execute(campaign.save())
5: send response (201)
6: end
Algorithm 2 Appeal campaign
Input: name, description, location, amount required
Output: Campaign appeal request created
1: enter all the fields
2: if(required fields missing)
3: output← Appeal cannot be made
4: else{
5: Check if the data entered is correct
6: then add to database
7: Admin can view the campaign on his dashboard
8: Admin can then approve or reject the appeal}
9: end
Algorithm 3: Make Donation
Input: donation amount, campaign id
Output: Money donated to campaign
1: press donate:
2: Stripe checks, verifies and processes the donation and returns a verification message.
3: if (donation successful) {
4: Create a donation entry and add donor id and amount to it.
5: Push the donation reference in to the campaign where donated.
6: else
7: return response(“Donation failed”)
8: end
Algorithm 4: User registration
Input: Email, Age, Address location, password
Output: User account gets created
1: Enter registration fields
2: If user with same email does not exist:
3: If fields entered correctly:
4: send a verification email to the user token
5: User goes, and presses verify from his/her email
36
6: User account gets registered
7: else if filed not entered correctly:
8: Send response => “Enter fields correctly”
9: else if same email person exists:
10: response -> “Email already registered, Sign In instead”
Algorithm 5: User authentication
Input: User email and password Input: User email and password
Output: User logged into his/her account Output: User logged into his/her account
1: for attempt=0; attemp < 3: 1: for attempt=0; attemp < 3:
2: Input credentials 2: Input credentials
3: Query database for user with the credentials 3: Query database for user with the credentials
4: If the input credentials are correct(user matched) 4: If the input credentials are correct(user matched)
5: display success message 5: display success message
6: return -> Redirect user to his.her console 6: return -> Redirect user to his.her console
7: else: 7: else:
8: response -> “Incorrect credentials” 8: response -> “Incorrect credentials”
8: retry signing in 8: retry signing in
9: return -> Block user from any more attempts 9: return -> Block user from any more attempts
1.3 Deployment
Currently, for development phase, our application is deployed on local machine. The Node Express
application is running at localhost:5000, whereas the frontend React server is running at
localhost:3000. The database used in Mongo DB, installed on the local machine and is running on
localhost:27017.
When deploying the live app, the app shall run on Azure virtual Machine. Mongo DB atlas would be
used as cloud DB to store data and the backend and servers shall run on ports 5000 and 3000
respectively of the IP of the Azure Machine.
37
8. Testing and Evaluation
Chapter 2:
Chapter 3:
Unit Testing 1: Login as Patient with valid and invalid credentials
Testing Objective: To ensure the login form is working correctly with valid and invalid
credentials/inputs.
No. Test case/Test script Attribute and value Expected result Result
1 Check the email field of Email: Validates email Pass
login to validate that it abc@gmail.com address and
takes proper email moves cursor to
next textbox
2 Check the email field of Email: Highlights field Pass
login to validate that it abc.gmail.com and displays error
displays error message. message
3 Check password to Password: Error indicating Pass
ensure it is not empty password cannot
be empty.
4 Check to see if password Password: Error raised that Pass
does not contain the Password123 password cannot
word ‘password’ contain
‘password’
5 Check to see if password Password: Valid Password. Pass
does not contain the lisa123 No error raised
word ‘password’
6 User Signup with an Email: Signup Pass
email that does not exist Adam123@gmail.com Successful
in the database Password:
Adamlee123
7 Email: Signup not Pass
User Signup with an Adam123@gmail.com Successful
email that does exist in Password:
the database Adamlee12345
38
8 Request to get all URL: (Get) All the campaigns Pass
campaigns made from http://localhost:5000/campaigns/ stored in the
client software database are
returned.
9 Request to get all donors URL: (Get) All the campaigns Pass
made from client http://localhost:5000/donor/ stored in the
software database are
returned
10 Change donor Password URL: (Post) Password updated Pass
http://localhost:5000/donor/:id/changepass to abc123
word
Password:
abc123
2.1
2. Login as a Username:incorrect lamada323 User is prompted of the Login failed – Pass
‘Donor’. Password: invalid email and/or invalid credentials
323lama password and access is error
denied.
3 Login as Username: (correct username) User logged in to the User logged into the Pass
“Beneficiary” Password: system. User session is system. User session
39
(Correct password) created created
40
updated.
41
9. References
[2] Transparent Hands. 2022. About Us | How we work and Who we are | Transparent Hands. [online] Available at:
<https://www.transparenthands.org/about-us/> 7 October 2022.
[3] Edhi.org. 2022. Edhi Welfare Organization – Serving Humanity in the Spirit of All Religions. [online] Available
at: <https://edhi.org/> 7 October 2022.
[4] Software Requirements Engineering 3rd edition, Karl Wiegers and Joy Beatty [online pdf]
<https://books.google.com.pk/books/about/Software_Requirements.html?id=40lDmAEACAAJ&redir_esc=y>
42
43