0% found this document useful (0 votes)
22 views68 pages

Government Aid Portal Project Overview

The document presents a project titled 'Government Aid Portal' developed by Darshan Togadiya as part of a Master's thesis at California State University, San Bernardino. The portal aims to facilitate communication between citizens and government authorities by allowing users to submit complaints through a user-friendly application integrated with various Amazon Web Services. The project addresses existing gaps in complaint management systems and aims to improve service delivery and citizen engagement, particularly in developing countries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views68 pages

Government Aid Portal Project Overview

The document presents a project titled 'Government Aid Portal' developed by Darshan Togadiya as part of a Master's thesis at California State University, San Bernardino. The portal aims to facilitate communication between citizens and government authorities by allowing users to submit complaints through a user-friendly application integrated with various Amazon Web Services. The project addresses existing gaps in complaint management systems and aims to improve service delivery and citizen engagement, particularly in developing countries.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

California State University, San Bernardino

CSUSB ScholarWorks

Electronic Theses, Projects, and Dissertations Office of Graduate Studies

5-2023

GOVERNMENT AID PORTAL


Darshan Togadiya

Follow this and additional works at: [Link]

Part of the Computer and Systems Architecture Commons

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

California State University,

San Bernardino

In Partial Fulfilment

Of the Requirements for the Degree

Masters of Science

In

Computer Science

by

Darshan Jitendrabhai Togadiya

May 2023
GOVERNMENT AID PORTAL

A Project

Presented to the

Faculty of

California State University,

San Bernardino

by

Darshan Jitendrabhai Togadiya

May 2023

Approved by:

Amir Ghasemkhani, Advisor, School of Computer Science and Engineering

Khalil Dajani, Committee Member

Jennifer Jin, Committee Member


© 2023 Darshan Jitendrabhai Togadiya
ABSTRACT

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

will enable locals to submit complaints regarding personal or general issues

through a complaint form, which will then be routed to the appropriate government

department. Once a complaint is filed, government teams are immediately alerted

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

allows users to provide detailed information about a problem by selecting a specific

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

Amazon Lambda, Amazon S3, Amazon DynamoDB, Elastic Beanstalk, AWS

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

infrastructure components or the platform on which the application will be built.

iv
ACKNOWLEDGEMENTS

I am writing to express my gratitude to Dr. Amir Ghasemkhani, my Committee

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

for assisting me in getting to this point in my academic career.

I am thankful that the School of Computer Science at California State University

San Bernardino has modeled a curriculum to help me achieve my future goals and

endeavors.

v
TABLE OF CONTENTS

ABSTRACT ................................................................................................. iii

ACKNOWLEDGEMENTS ........................................................................... v

LIST OF TABLES ........................................................................................ viii

LIST OF FIGURES ...................................................................................... ix

CHAPTER ONE: PROJECT OVERVIEW

Introduction ........................................................................................ 1

Statement of the Problem ................................................................. 2

Purpose of the Study ......................................................................... 2

Definitions ......................................................................................... 3

CHAPTER TWO: LITERATURE REVIEW

Current State of Art ........................................................................... 5

Gaps and Limitations ........................................................................ 6

Relevance of the Project ................................................................... 7

CHAPTER THREE: REQUIREMENT ANALYSIS

Functional Requirements .................................................................. 9

Non-functional Requirements ........................................................... 12

Constraints and Assumptions ........................................................... 13

Use case scenario ............................................................................ 14

CHAPTER FOUR: DESIGN AND ARCHITECTURE

Design Principles and Patterns ......................................................... 15

vi
System Architecture and Concepts.................................................... 20

Data Models and Database Design ................................................... 21

User Interface Design ....................................................................... 24

Security and Privacy Consideration ................................................... 25

CHAPTER FIVE: IMPLEMENTATION AND TESTING

Technology Stack .............................................................................. 27

Testing Methodology ........................................................................ 29

Results............................................................................................... 38

CHAPTER SIX: CONCLUSIONS

Limitations and Challenges ............................................................... 53

Future Work and Research ............................................................... 54

REFERENCES ................................................................................... 55

vii
LIST OF TABLES

Table 1. Decided AWS services from each category .................................. 27

viii
LIST OF FIGURES

Figure 1. Block Diagram of the system ........................................................ 16

Figure 2. Final Architecture of application ................................................... 21

Figure 3. Login Screen ................................................................................ 38

Figure 4. Registration Screens .................................................................... 39

Figure 5. Email Notification to verify the user .............................................. 40

Figure 6. Email Notification to request for subscription ............................... 40

Figure 7. Screenshot of the subscription confirmation ................................. 41

Figure 8. Complaints dashboard screen, and details screen ....................... 42

Figure 9. Add new complaint screen ........................................................... 43

Figure 10. Admin login page ........................................................................ 44

Figure 11. Admin complaint dashboard page .............................................. 44

Figure 12. Complaint’s detail page .............................................................. 45

Figure 13. Email notification update to the complainer ................................ 46

Figure 14. Screenshot of the successfully executed stacks

on cloud formation ...................................................................................... 47

Figure 15. Front end application deployed on AWS cloud ........................... 48

Figure 16. Backend application deployed on AWS cloud ............................ 49

Figure 17. AWS Cognito configured user pool ............................................ 49

Figure 18. AWS S3 buckets configuration ................................................... 50

Figure 19. AWS API gateway configuration ................................................. 50

ix
Figure 20. AWS Lambda configuration with associated API

Gateway ...................................................................................................... 51

Figure 21. AWS SNS service configuration ................................................. 51

Figure 22. AWS DynamoDB configuration .................................................. 52

Figure 23. AWS secret manager service configuration ............................... 52

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

an extensive process when contacting government authorities. Furthermore, lack

of awareness about reporting procedures often discourages people from raising

concerns which leaves many issues unresolved.

To address these challenges, I am proposing the creation of a public aid

portal that will offer an accessible and dependable means for people to voice their

complaints to higher authorities. This platform will enable users to submit

complaints about general matters via an online complaint form which will then be

processed and forwarded on to government departments.

1
Statement of Problem

Reporting issues and problems to authorities can be a time-consuming and

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

and notifies government departments so they can take appropriate actions in

response.

Purpose of the study

To satisfy this demand, a public help application is developed where

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

status of complaint which is submitted by any user. There is an option of uploading

photograph, giving location details and categories of complaint like cybercrime,

2
road construction issue, etc. This will help the government to have the better

understanding about the problem.

Definitions

The government aid portal is a software-as-a-service which is built for

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.

Features of Public Aid Portal:

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

portal to help government officials.

3
Tracking of Complaints: The platform offers a tool that tells complainants about

the status of their complaint requests.

Amazon Web Services Integration: The gateway will be integrated with several

Amazon Web Services, including Amazon Lambda, S3, DynamoDB, Elastic

Beanstalk, AWS Lambda, Cognito, API Gateways, and Secret Manager.

4
CHAPTER TWO

LITERATURE REVIEW

Current State of Art

In recent years, practitioners have become interested in complaint

management systems. Several studies on their development and implementation

for governments have been undertaken. In China, Song and Li (2019) suggested

a complaint management system that made use of both mobile applications and

cloud-based platforms. This allowed users to lodge complaints swiftly while

obtaining real-time updates on the status of their complaints. This enhanced

efficiency throughout the complaint-handling process, as demonstrated by these

authors, as well as communication between users and government agencies.

Al-Mashari and Zairi (2000) created a complaint management system for a

Saudi government organization. This includes an electronic complaint form,

automatic tracking, and in-depth analysis. According to the authors, this improved

service quality provided by the organization, reduced response times to grievances

and boosted customer satisfaction levels.

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

significant gaps and limitations that must be addressed.

Gaps and Limitations

Though interest in government complaint management systems has

expanded, there are still gaps and limitations in the existing research. One

noteworthy restriction is the scarcity of studies integrating complaint management

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

establish an effective platform for complaint management while boosting reliability

at all levels of complaint processing.

Another disadvantage of the dearth of research on complaint management

systems in developing countries is the difficulty in comprehending the specific

cultural, social, and economic factors that may affect the adoption and efficacy of

these systems. Developing countries often have different governance structures,


6
regulatory environments, and societal norms that may influence the way

complaints are made and addressed. Most studies have focused on developed

nations, with little research into the challenges and opportunities related to

implementation in less developed nations. Most studies have focused on

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

by providing insights into these countries' experiences with complaint management

system implementation. This will contribute significantly to the existing literature by

providing an understanding of these obstacles and opportunities.

Therefore, the project will contribute to the literature by providing insights

into the challenges and opportunities of implementing complaint management

systems in developing countries.

Relevance of the Project

The literature review indicates the proposed project is both pertinent and

timely, given the growing demand for complaint management systems for

governments worldwide. To address gaps and limitations in existing literature, this

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

when doing so.

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

importance of user-friendliness and real-time updates in complaint management

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

improve the efficiency of the complaint management process.

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:

• Users should be able to sign up for the application by providing

personal information and credentials.

• User data should be collected and stored in the AWS Cognito User

Pool.

2. Complaint Form:

• Users should be able to submit their complaints through a complaint

form.

9
• The complaint form should collect pertinent information such as the

subject, category, location, description and photos related to the

grievance.

• All complaint-related data should be stored in DynamoDB database.

• Additionally, an access link for images stored in S3 bucket should

also be stored within the database.

3. Notification Feature:

• Users should receive email notifications regarding the progress of

their complaints.

• These should include details such as the complaint's status and

estimated time for resolution.

4. Mobile and Web Applications:

• The application should provide a mobile application for general users

and web application for administrators.

• Users should have access to both applications, depending on their

user type.

5. Scalability and Availability:

10
• The application must be scalable and capable of handling traffic

dynamically while still retaining performance.

11
Non-functional Requirements

There are some following non-functional requirements for this project:

1. User-friendly Interface:

• The application should provide a user-friendly interface that displays

all elements clearly and efficiently.

• The interface should be built using React Native and ReactJS.

2. Backend Development:

• For backend development, the application should utilize NodeJS and

Express.

3. Security and Data Integrity:

• For security and data integrity, the application should be secured

using AWS Elastic Beanstalk, Amazon Secret Manager, and

Amazon SNS.

4. Reliability and Fault-tolerance:

• The application must be highly reliable and resilient, using AWS

services for auto-load sharing.


12
Constraints and Assumptions

1. Frontend and Backend Development:

• According to my skillset, the application will utilize React Native and

ReactJS for the frontend, along with NodeJS and Express in the

backend.

2. Data Storage and Retrieval:

• As part of this project, AWS Elastic Beanstalk, Amazon Secret

Manager, Amazon SNS and DynamoDB will be utilized for data

storage and retrieval.

3. Auto-load Sharing:

• This application will utilize AWS services for auto-load sharing to

efficiently manage traffic.

4. Lambda Function:

• The application will utilize a Lambda function to convert Base64

objects to image objects and store them in an S3 bucket, along with

complaint-related data stored in DynamoDB database.

13
Use case scenarios

1. User submits a complaint:

• Downloading the mobile application requires users to sign in using

their credentials, then submit a complaint form by filling in all required

information and uploading images.

2. Admin views complaints:

• An admin can log into the web application and view complaints

submitted by users, along with their related data and uploaded

images.

3. User receives a notification:

• Users receive an email notification regarding the status of their

complaint, which includes details such as its current state and

estimated time for resolution.

14
CHAPTER FOUR

DESIGN AND ARCHITECTURE

Design Principles and Patterns

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

upkeep or modification of the system. System design typically segregates different

concerns into distinct modules or components. For instance, the user interface is

separated from application logic and data storage.

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

microservices such as the User Management Service, Complaint Service, and

Notification Service (AWS Services component). However, there is two separate

backend code that is responsible for handling the user requests and perform

necessary operations (Authentication Backend component for handling user

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

Complaint Service receives, stores and retrieves complaints through integrations

with AWS DynamoDB for data storage and retrieval as well as AWS S3 for

complaint-related images.

By breaking up these concerns into distinct components, each can be

designed, tested, and maintained independently. Not only does this simplify the

system but also increases its efficiency and scalability.

Another crucial principle is the Single Responsibility Principle (SRP), which

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

structure code so it becomes simpler to manage over time.

Here is an overview of how the MVC pattern is utilized in our project:

17
1. Model: The data and business logic for your system is captured in the

data models and database design section of your project. We utilize

AWS DynamoDB for data storage and retrieval, with two tables: a user

table for user information and a Complaint table storing complaint-

related details. Moreover, authentication setup is included as part of this

model - Express app code creating Cognito users and managing

authentication controls.

2. View: View is responsible for displaying the user interface of an

application. In this project, it was developed with React Native and

ReactJS, featuring components like sign-up forms, complaints list, and

notification centers.

3. Controller: The application logic of the system is handled through

microservices architecture, which consists of several components

described in this project's system architecture and components section.

Each service has its own controller which takes care of user input,

processes requests, and communicates with other services as required.

Moreover, Express app code for authentication also contains its own

controller for managing user authentication and authorization.

18
The MVC pattern assists in decoupling the various concerns of an application,

making it simpler to manage and modify. Furthermore, it facilitates parallel

development by different teams working on distinct components of the same

program.

Loose coupling is another important design principle to adhere to. This implies that

system components should be loosely coupled in order to reduce their

dependencies on one another, making for simpler maintenance and modification

of the system.

For this project, loose coupling is achieved through the use of microservices

architecture. The different services in the system are independent and

communicate with one another via APIs, thus reducing their dependencies

between them. For example, the Complaint Service is responsible for receiving,

storing and retrieving complaints; it communicates with the User Management

Service for user authentication and authorization. These two services are loosely

coupled and can be developed and deployed independently. Likewise, the

Notification Service sends email notifications to users about their complaints'

statuses without direct dependencies on either Complaint Service or User

Management Service.

19
Furthermore, AWS services like AWS DynamoDB, S3, and SNS encourage loose

coupling by offering scalable and reliable data storage, retrieval, and

communication that can be accessed independently by different components of

the system. This guarantees that changes made to one component do not impact

other functions; each can be independently designed, deployed, and scaled

independently.

System Architecture and Concepts

A microservices architecture should be employed when designing the

system to guarantee its scalability and modularity. This architecture consists of

small, independent services that communicate with one another via APIs. This

makes for easier maintenance and modification to the system as well as improved

scalability and fault tolerance.

The system should consist of three components: a User Management

Service, Complaint Service and Notification Service. The User Management

Service should manage user authentication and authorization through AWS

Cognito User Pool integration. The Complaint Service handles complaints

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

AWS SNS protocol.

Figure 2: Final architecture of application

Data Models and Database Design

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

services in AWS for this project.

DynamoDB will generate one tables and Cognito will create a pool: The Complaint

table holds complaint-related details.

The User table should contain the following attributes:

1. First name: The first name of the user.

2. Last name: The last name of the user.

3. Email: The email address of the user, which will be used for

communication purposes.

4. Mobile number: The mobile number of the user.

5. Password: The encrypted password of the user, which should be stored

securely.

6. Citizenship: The citizenship of the user.

7. Gender: The gender of the user.

22
The Complaint table should contain the following attributes:

1. Complaint ID: A unique identifier for each complaint in the system.

2. Subject: A brief description of the complaint.

3. Severity: The severity level of the complaint, such as low, medium, or

high.

4. Category: The category of the complaint, such as infrastructure, safety,

or sanitation.

5. Username: The username of the user who submitted the complaint.

6. Complaint status: The status of the complaint, such as open or closed.

7. User email: The email address of the user who submitted the complaint.

8. Photos: The processed image related to the complaint.

9. Description: A detailed description of the complaint.

10. Location: The location where the complaint occurred.

It is essential to select a primary key carefully for each table in order to

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

partitioning are in place to optimize query performance. Furthermore, data

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

and scale efficiently with its expansion.

User Interface Design

The system should provide a user-friendly interface that displays all

elements seamlessly, using React Native and ReactJS. React Native is a

framework designed specifically for mobile app development using the ReactJS

library. Sign-up forms, complaint forms, complaint lists, and notification centers

should all be part of the interface.

User information, such as personal details and credentials, should be

collected via the sign-up form. Users should fill out the complaint form with

information such as the issue, category, location, description, and images. A

complaints list should display all user-submitted concerns, and a notification center

should offer status updates.

24
Security and Privacy Consideration

Security and privacy must be considered while developing any system,

particularly one that manages user data. As a result, this project should be planned

with these concepts in mind.

Secure user authentication and authorisation is one of the most important

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

Connect, should be used.

Cognito User Pool by AWS enables the system to deliver secure user

authentication and authorization without the need to operate a proprietary

authentication and authorization solution. In addition, Cognito User Pool offers

features like multi-factor authentication, password policies, and integration with

other AWS services.

Data encryption is another essential security measure that should be

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

features like viewing and deleting it.

Overall, designing the system with security and privacy in mind is essential to

protect user data and maintain user confidence in the system.

26
CHAPTER FIVE

IMPLEMENTATION AND TESTING

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

generated serverless APIs.

Project features category and services:

Table 1: Decided AWS service from each category

Category Services

Computer 1. AWS Elastic Beanstalk 2

27
2. AWS Lambda

Storage 1. AWS S3

2. AWS DynamoDB

Network 1. AWS API Gateway

General 1. Amazon Cognito

2. AWS SNS

3. AWS Secret Manager

28
Testing Methodologies

The project employed various testing methodologies to guarantee the

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

frontend user interface; end-to-end testing was conducted using Cypress

framework for overall functionality assessment.

Unit testing:

Unit testing is a software testing methodology where individual units of code are

tested in isolation to verify that each unit works as expected.

Introduction

The aim of this testing is to identify and fix errors in the backend APIs, and ensure

that the application meets the requirements.

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

built with ReactJS.

Test Cases

NodeJS App (Backend)

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.

• Test to ensure that a user's details can be updated in the database.

Complaint Model

30
• Test to ensure that a new complaint can be created and saved to the

database.

• Test to ensure that a complaint cannot be created with missing required

fields.

• Test to ensure that a complaint can be retrieved from the database by

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.

React Native App (User)

The following test cases were developed and executed for the React Native app:

Authentication

• Test to ensure that a user can login with correct credentials.

• Test to ensure that a user cannot login with incorrect credentials.

• Test to ensure that a user can logout successfully.

Complaint Submission

31
• Test to ensure that a user can submit a new complaint.

• Test to ensure that a user cannot submit a complaint with missing

required fields.

Complaint Management

• Test to ensure that a user can view their own complaints.

• Test to ensure that a user can view the status of their complaints.

• Test to ensure that a user can delete their own complaints.

ReactJS App (Admin)

The following test cases were developed and executed for the ReactJS app:

Authentication

• Test to ensure that an admin can login with correct credentials.

• Test to ensure that an admin cannot login with incorrect credentials.

• Test to ensure that an admin can logout successfully.

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 to ensure that an admin can delete any complaint.

Test Results

All test cases were executed successfully, and no errors were found. The

application met the expected standards of functionality and performance.

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

together correctly and meeting the requirements.

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

the profile API.

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

the profile page.

Test Results

All test cases were executed successfully, and no errors were found. The

application met the expected standards of functionality and performance.

End-to-end testing:

Introduction
35
The aim of this testing is to ensure that the application is functioning correctly and

meets the requirements.

Testing Framework

Cypress framework was used for end-to-end testing the application.

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.

• Test to ensure that a user can submit a complaint.

• Test to ensure that a user can view their complaints.

• Test to ensure that a user can update their profile.

Admin Functionality

• Test to ensure that an admin can log in.

• Test to ensure that an admin can view all complaints.


36
• Test to ensure that an admin can update the status of a complaint.

Third-party Integration

• Test to ensure that the map is displaying correctly on the complaint

submission page.

• Test to ensure that images are uploaded and displayed correctly on the

complaint details page.

Test Results

All test cases were executed successfully, and no errors were found. The

application met the expected standards of functionality and performance.

37
Results

User login screen

Figure 3: Login Screen

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

registered email address and password.

User registration screen


38
Figure 4: Registration Screens

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

available within the application.

Figure 5: Email Notification to verify the user

Figure 6: Email Notification to request for subscription

40
Figure 7: Screenshot of the subscription confirmation

41
User’s complaint dashboard, and details screen

Figure 8: Complaints dashboard screen, and detail 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

Figure 9: Add new complaint screen

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

for review and resolution.

43
Admin login, dashboard page, and complaint details page

Figure 10: Admin login page

Figure 11: Admin complaint dashboard 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. Alternatively, they can view complete complaints by clicking "submit"

button.

Figure 12: Complaint's detail page

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.

Figure 13: Email notification update to the complainer

46
Screenshots of the AWS Service configuration

Figure 14: Screenshot of the successfully executed stack on cloud formation

Figure 10 illustrates our success in configuring all AWS services using cloud

formation. Cognito, secret manager, API Gateway, Lambda as well as Elastic

Beanstalk deployment for frontend and backend are all configured using YAML

files (CloudFormation files).

47
Figure 15: Front end application deployed on AWS cloud

48
Figure 16: Backend application deployed on AWS cloud

Figure 17: AWS Cognito configured user pool

49
Figure 18: AWS S3 bucket configuration

Figure 19: AWS API gateway configuration

50
Figure 20: AWS lambda configuration with associated API gateway

Figure 21: AWS SNS service configuration

51
Figure 22: AWS DynamoDB configuration

Figure 23: AWS secret manager service configuration

52
CHAPTER SIX

CONCLUSION

Limitations and Challenges

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

an extensive dataset of real-world complaints would not have been feasible.

Instead, mock data was used which may not accurately reflect actual data and

scenarios encountered in everyday use. As such, further testing and optimization

may be necessary in order to guarantee that the app functions correctly and meets

users' needs.

Another challenge encountered during the project was integrating third-

party services. The application relied on several third-party tools, such as map and

image processing services, which required additional configuration and

troubleshooting. This added complexity to the development process and could

have lead to increased development time and costs due to delays.


53
Future Work and Scope

In the future, the application can be further optimized by adding features

and functionalities tailored to its users' requirements. For instance, the user

feedback and reviews could be integrated into the design to improve complaint

quality as well as provide valuable insights into application performance.

To categorize the complaints automatically or to rank the complaints based on

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

accuracy and further enhancement

54
REFERENCES

1. "Cloud Deliver Models," [Online]. Available:


[Link] service-delivery-
models. [Accessed 13 Februrary 2022].
2. "Project Proposal," [Online]. Available:
[Link]
dback.d2l?db=140998&gr pid=215960&isprv=0&bp=0&ou=203595.
[Accessed 4 April 2022].
3. "Cloud Services - Amazon Web Services," [Online]. Available:
[Link] [Accessed 4 April 2022].
4. "React Native- learn once, write anywhere," [Online]. Available:
[Link] [Accessed 13 February 2022].
5. "Express - [Link] web application framework," [Online]. Available:
[Link] [Accessed 13 February 2022].
6. "Elastic Beanstalk CloudFormation Template," [Online]. Available:
[Link]
[Link].
7. "AWS Cognito CloudFormation Template," [Online]. Available:
[Link]
ws-resource-cognito- [Link]. [Accessed 4 April 2022].
8. "AWS S3 CloudFormation Template," [Online]. Available:
[Link]
[Link]. [Accessed 4 April 2022].
9. "APIGateway CloudFormation Template," [Online]. Available:
[Link]
ws-resource-apigateway- [Link]. [Accessed 4 April 2022].

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

You might also like