Government Aid Portal Project Overview
Government Aid Portal Project Overview
CSUSB ScholarWorks
5-2023
Recommended Citation
Togadiya, Darshan, "GOVERNMENT AID PORTAL" (2023). Electronic Theses, Projects, and Dissertations.
1753.
[Link]
This Project is brought to you for free and open access by the Office of Graduate Studies at CSUSB ScholarWorks.
It has been accepted for inclusion in Electronic Theses, Projects, and Dissertations by an authorized administrator
of CSUSB ScholarWorks. For more information, please contact scholarworks@[Link].
GOVERNMENT AID PORTAL
A Project
Presented to the
Faculty of
San Bernardino
In Partial Fulfilment
Masters of Science
In
Computer Science
by
May 2023
GOVERNMENT AID PORTAL
A Project
Presented to the
Faculty of
San Bernardino
by
May 2023
Approved by:
In today’s world, contacting government officials seems a big task when it comes
to reporting small concerns. There are many authorities and officials which makes
it very difficult for ordinary people to figure out who they should contact to resolve
their daily issues. To address this problem, I have developed an application which
can act as intermediary between citizens and government authorities. This portal
through a complaint form, which will then be routed to the appropriate government
and can use the program to gain more insight into the issue. Furthermore, the app
will notify the complainant about the status of their request, providing updates on
whether the problem has been resolved. The app also includes a feature that
problem category, location, and uploading relevant photos. This will give
government officials a better understanding of the issue and allow them to take
immediate action. To build this portal, I leverage Amazon web service such as
Lambda, AWS Cognito, API Gateways, and Secret Manager. Furthermore, this
application will contain all the mentioned features along with user-friendly interface
to provide more convenient experience. The application will be available for use
iii
as a software and hence, the delivery model will be Software as a Service (SaaS).
The users will use the services directly, and they will not require access to the
iv
ACKNOWLEDGEMENTS
Chair, for his continuous support and for pushing the boundaries each time to
create this research work as the best version. Moreover, I want to thank my
committee members, Dr. Khalil Dajani and Dr. Jennifer Jin, for believing in me and
agreeing to join the committee. I am grateful for their trust in me while working on
this project. I'd also like to express my gratitude to all the University's professors
San Bernardino has modeled a curriculum to help me achieve my future goals and
endeavors.
v
TABLE OF CONTENTS
ACKNOWLEDGEMENTS ........................................................................... v
Introduction ........................................................................................ 1
Definitions ......................................................................................... 3
vi
System Architecture and Concepts.................................................... 20
Results............................................................................................... 38
REFERENCES ................................................................................... 55
vii
LIST OF TABLES
viii
LIST OF FIGURES
ix
Figure 20. AWS Lambda configuration with associated API
Gateway ...................................................................................................... 51
x
CHAPTER ONE
PROJECT OVERVIEW
Introduction
Governments around the world are actively working to enhance the quality
of life for their residents. They provide better infrastructure, affordable education
and a safe and secure living environment. Yet despite all their efforts, many people
still face personal or general issues that may not be addressed effectively due to
portal that will offer an accessible and dependable means for people to voice their
complaints about general matters via an online complaint form which will then be
1
Statement of Problem
laborious process, and many may not know how to go about it. As a result, many
issues remain ignored by higher authorities; thus, there is a need for an easy
platform that allows citizens to file complaints about personal or general problems
response.
residents can raise their concerns and send them directly to the responsible
authorities. This application allows users to file a complaint which can be anything
related to general or personal issues. To file a complaint, user will have to fill a
form and give detailed information regarding their issue. Authorities will be notified
whenever someone register an issue. Moreover, the app keeps a track of the
2
road construction issue, etc. This will help the government to have the better
Definitions
residents where anyone can file a complaint in order to live in a good environment.
Generally, to file a complaint there is very tedious process which everyone has to
follow. By using this app, no one has to go through any lengthy process even just
to raise a small issue. This application is connected to Amazon Web Service which
is also used to store the data and notify about the complaint status.
Complaint Form: Residents can fill out and submit their grievances using the
portal.
Complaints can be categorized on the portal based on issue kind, location, and
urgency.
File Attachments: Users can attach images and other detailed documents to the
3
Tracking of Complaints: The platform offers a tool that tells complainants about
Amazon Web Services Integration: The gateway will be integrated with several
4
CHAPTER TWO
LITERATURE REVIEW
for governments have been undertaken. In China, Song and Li (2019) suggested
a complaint management system that made use of both mobile applications and
automatic tracking, and in-depth analysis. According to the authors, this improved
5
Studies indicate a growing interest in developing complaint management
systems for governments worldwide. These solutions have the potential to improve
service delivery and citizen communication. However, the research also identifies
expanded, there are still gaps and limitations in the existing research. One
systems with cloud-based services such as Amazon Web Services (AWS). The
proposed project aims to fill this need by integrating the Public Aid Portal to AWS
services such as Lambda, S3, DynamoDB, and others. This integration will
cultural, social, and economic factors that may affect the adoption and efficacy of
complaints are made and addressed. Most studies have focused on developed
nations, with little research into the challenges and opportunities related to
developed nations, with little research into the challenges and opportunities related
to implementation in less developed nations. Thus, this project seeks to fill this gap
The literature review indicates the proposed project is both pertinent and
timely, given the growing demand for complaint management systems for
proposal integrates Public Aid Portal with AWS services while targeting developing
countries. Having a reliable platform with AWS services will offer insights into
7
challenges associated with implementing such systems in these nations, while
targeting developing ones will offer insights into potential solutions they could face
The literature review also provides insights into the best practices and
lessons learned from similar projects worldwide, which can be applied to the
proposed project. For instance, the study by Song and Li (2019) highlights the
systems. These insights can be used to design the user interface and the
notification system in the Public Aid Portal to enhance the user experience and
8
CHAPTER THREE
REQUIREMENT ANALYSIS
Functional Requirements
There are some following user requirements which are essential to be implement
in this project:
1. Sign-up Feature:
• User data should be collected and stored in the AWS Cognito User
Pool.
2. Complaint Form:
form.
9
• The complaint form should collect pertinent information such as the
grievance.
3. Notification Feature:
their complaints.
user type.
10
• The application must be scalable and capable of handling traffic
11
Non-functional Requirements
1. User-friendly Interface:
2. Backend Development:
Express.
Amazon SNS.
ReactJS for the frontend, along with NodeJS and Express in the
backend.
3. Auto-load Sharing:
4. Lambda Function:
13
Use case scenarios
• An admin can log into the web application and view complaints
images.
14
CHAPTER FOUR
The design of the system is crucial for any software project and should
adhere to certain principles and patterns for maximum efficiency and scalability.
One such principle is the separation of concerns, which means designing the
system so that different aspects are separated - such as user interface logic from
application logic; data storage from user interface logic - in order to facilitate easier
concerns into distinct modules or components. For instance, the user interface is
15
Figure 1: Block Diagram of the system
The user interface is implemented using React Native and ReactJS (Mobile
App and Admin Panel component), while the application logic is handled through
backend code that is responsible for handling the user requests and perform
authentications and User Complaint Backend for handing all the complaint related
actions).
16
Data storage and retrieval are handled through AWS DynamoDB, while
images related to complaints are stored using AWS S3. Each component has its
own distinct responsibility that is clearly separated from others; for instance, the
with AWS DynamoDB for data storage and retrieval as well as AWS S3 for
complaint-related images.
designed, tested, and maintained independently. Not only does this simplify the
states that each module or component should have a single responsibility. This
helps keep code modular and easy to maintain and modify. Moreover, Model-View-
Controller (MVC) pattern should also be utilized when designing the system; it
divides an application into three components: model (data and business logic),
view (user interface), and controller (handles user input). Utilizing this pattern helps
17
1. Model: The data and business logic for your system is captured in the
AWS DynamoDB for data storage and retrieval, with two tables: a user
authentication controls.
notification centers.
Each service has its own controller which takes care of user input,
Moreover, Express app code for authentication also contains its own
18
The MVC pattern assists in decoupling the various concerns of an application,
program.
Loose coupling is another important design principle to adhere to. This implies that
of the system.
For this project, loose coupling is achieved through the use of microservices
communicate with one another via APIs, thus reducing their dependencies
between them. For example, the Complaint Service is responsible for receiving,
Service for user authentication and authorization. These two services are loosely
Management Service.
19
Furthermore, AWS services like AWS DynamoDB, S3, and SNS encourage loose
the system. This guarantees that changes made to one component do not impact
independently.
small, independent services that communicate with one another via APIs. This
makes for easier maintenance and modification to the system as well as improved
receiving, storing and retrieving them via AWS DynamoDB data storage/retrieval
20
as well as AWS S3 for complaint-related images storage. Lastly, the Notification
Service sends email notifications to users regarding their complaints' status via
For data storage and retrieval, the system should utilize AWS DynamoDB.
DynamoDB is a highly scalable NoSQL database that can handle large amounts
21
of information with speedy access. For user authentication, system uses AWS
Cognito pool to store user information in a pool which will later be utilized by other
DynamoDB will generate one tables and Cognito will create a pool: The Complaint
3. Email: The email address of the user, which will be used for
communication purposes.
securely.
22
The Complaint table should contain the following attributes:
high.
or sanitation.
7. User email: The email address of the user who submitted the complaint.
guarantee optimal performance and efficient data retrieval. In my case, I used the
complaint ID as the primary key in the Complaint table to facilitate quick retrieval
of individual complaints.
23
In addition to creating tables, the system must ensure proper indexing and
validation must be implemented and ensure consistency and integrity across the
system. Overall, data models and database design are essential elements of your
project; you should take great care to guarantee they meet all system requirements
framework designed specifically for mobile app development using the ReactJS
library. Sign-up forms, complaint forms, complaint lists, and notification centers
collected via the sign-up form. Users should fill out the complaint form with
complaints list should display all user-submitted concerns, and a notification center
24
Security and Privacy Consideration
particularly one that manages user data. As a result, this project should be planned
security procedures that must be put in place. To do this, AWS Cognito User Pool,
a fully managed user directory service that provides secure user authentication
and authorisation via industry-standard protocols such as OAuth 2.0 and OpenID
Cognito User Pool by AWS enables the system to deliver secure user
considered. The system must guarantee all sensitive data, like passwords and
25
user info, is encrypted both at rest and during transit. This can be achieved using
AWS KMS for managing encryption keys and AWS SSL certificates to encrypt data
during transmission.
Privacy considerations should also be taken into account when designing the
system. It must abide by all relevant privacy regulations, such as GDPR, and
guarantee that user data is collected and used only for legitimate purposes.
Furthermore, users should have transparency and control over their data through
Overall, designing the system with security and privacy in mind is essential to
26
CHAPTER FIVE
Technology Stack
The frontend of the application is divided into two parts. The mobile
application is built for the general people and admin will use web application. So,
the frontend of our application is built using React Native and ReactJS [4]. While
the backend of the application is built using NodeJS and Express [5]. I deployed
both these frontend and backend to Elastic Beanstalk using YAML file for
deployment of cloud formation. All the major APIs of the application related to the
people’s complaints are deployed to Lambda function and are accessible through
Category Services
27
2. AWS Lambda
Storage 1. AWS S3
2. AWS DynamoDB
2. AWS SNS
28
Testing Methodologies
quality of its application. Unit testing was carried out using Jest testing framework
for backend APIs; integration testing was done via Postman tool for APIs and
Unit testing:
Unit testing is a software testing methodology where individual units of code are
Introduction
The aim of this testing is to identify and fix errors in the backend APIs, and ensure
Testing Framework
29
The Jest testing framework was used for unit testing the backend APIs, as well as
for testing the frontend functionalities of the React Native app and the admin portal
Test Cases
The following test cases were developed and executed for the backend APIs:
User Model
• Test to ensure that a new user can be created and saved to the
database.
• Test to ensure that a user cannot be created with missing required fields.
• Test to ensure that a user can be retrieved from the database by their
ID.
• Test to ensure that a user can be retrieved from the database by their
username.
Complaint Model
30
• Test to ensure that a new complaint can be created and saved to the
database.
fields.
its ID.
• Test to ensure that a user can retrieve all complaints in the database.
• Test to ensure that a user can retrieve their complaints from the
database.
The following test cases were developed and executed for the React Native app:
Authentication
Complaint Submission
31
• Test to ensure that a user can submit a new complaint.
required fields.
Complaint Management
• Test to ensure that a user can view the status of their complaints.
The following test cases were developed and executed for the ReactJS app:
Authentication
Complaint Management
• Test to ensure that an admin can view all complaints in the database.
32
• Test to ensure that an admin can update the status of a complaint.
Test Results
All test cases were executed successfully, and no errors were found. The
Integration testing:
Introduction
This document outlines the integration testing process for the project. The aim of
this testing is to ensure that the various components of the application are working
Testing Framework
Postman testing tool was used for integration testing the APIs and the frontend
user interface.
33
Test Cases
The following test cases were developed and executed for the application:
APIs
• Test to ensure that a user can register for an account through the
registration API.
• Test to ensure that a user can log in to their account through the login
API.
• Test to ensure that a user can create a new complaint through the
complaints API.
• Test to ensure that a user can retrieve their complaints through the
complaints API.
• Test to ensure that a user can retrieve all complaints through the
complaints API.
• Test to ensure that a user can update their profile information through
User Interface
34
• Test to ensure that the user can register for an account through the
registration page.
• Test to ensure that the user can log in to their account through the login
page.
• Test to ensure that the user can create a new complaint through the
complaints page.
• Test to ensure that the user can retrieve their complaints through the
complaints page.
• Test to ensure that the user can retrieve all complaints through the
complaints page.
• Test to ensure that the user can update their profile information through
Test Results
All test cases were executed successfully, and no errors were found. The
End-to-end testing:
Introduction
35
The aim of this testing is to ensure that the application is functioning correctly and
Testing Framework
Test Cases
The following test cases were developed and executed for the application:
User Functionality
• Test to ensure that a user can create an account and log in.
Admin Functionality
Third-party Integration
submission page.
• Test to ensure that images are uploaded and displayed correctly on the
Test Results
All test cases were executed successfully, and no errors were found. The
37
Results
This is the login screen of mobile application. User has to login and authenticate
themselves to access the functionality of the application. So, they can login with
This application requires users to fill in all fields listed on the form, then click
"signup." The system will send two mails to that email address: one verifying their
account and another subscribing them to our mail messaging service. After these
39
both tasks have been completed, users are registered and can utilize all features
40
Figure 7: Screenshot of the subscription confirmation
41
User’s complaint dashboard, and details screen
This is the main screens of the application, where user can check all the complaints
that they have made in the past, also they can check the complete details of the
filled complaints.
42
Add new complaint screens
Users can file a new complaint by filling this online form. They can open it by
clicking on the plus button on their dashboard screen and select the category of
complaint they wish to make, upload an image related to their problem, and click
'Done' when finished. Your request will then be sent directly to a government officer
43
Admin login, dashboard page, and complaint details page
44
These screenshots depict an admin hosted web application. Figure 6 depicts the
login page, while Figure 7 showcases the dashboard page of the application. Once
an administrator logs in, they can access all requests made by people and check
all major details like subject, category and complaint status by clicking a view
button.
45
Government officers can verify all details from this complaint details page and
change the complaint status to active, pending or solved. Once they do this, the
person who filed this complaint will be notified via email with its new status.
46
Screenshots of the AWS Service configuration
Figure 10 illustrates our success in configuring all AWS services using cloud
Beanstalk deployment for frontend and backend are all configured using YAML
47
Figure 15: Front end application deployed on AWS cloud
48
Figure 16: Backend application deployed on AWS cloud
49
Figure 18: AWS S3 bucket configuration
50
Figure 20: AWS lambda configuration with associated API gateway
51
Figure 22: AWS DynamoDB configuration
52
CHAPTER SIX
CONCLUSION
One of the major limitations of this project was a lack of real-world data to
test the application. Since it had been created with one purpose in mind, collecting
Instead, mock data was used which may not accurately reflect actual data and
may be necessary in order to guarantee that the app functions correctly and meets
users' needs.
party services. The application relied on several third-party tools, such as map and
and functionalities tailored to its users' requirements. For instance, the user
feedback and reviews could be integrated into the design to improve complaint
severity, we can use machine learning algorithms. This will help the process to
focus on priority incidents whose urgency is prime concern. Future research can
be done to build more efficient serverless system. For building the effective system
which can handle large data, AI and ML techniques could be used for improving
54
REFERENCES
55
10. "AWS DynamoDB CloudFormation Template," [Online]. Available:
[Link]
ws-resource-dynamodb- [Link]. [Accessed 4 April 2022].
11. "Secret Manager CloudFormation Template," [Online]. Available:
[Link]
ws-resource-secretsmanager- [Link].
12. A Al-Mudimigh, M Zairi & M Al-Mashari (2001) ERP software
implementation: an integrative framework, European Journal of
Information Systems, 10:4, 216-
226, DOI: 10.1057/[Link].3000406
56