WomenPlusPlus / deploy-impact-21-kona-b

Repository for Team kona-b for deploy(impact) running in 2021
https://dots.azureedge.net/
GNU General Public License v3.0
4 stars 5 forks source link

Project logo

Dots: the alternative legal aid tech

[![Program](https://img.shields.io/badge/Program-Deploy(impact)-blueviolet.svg)](https://www.womenplusplus.ch/deploy-impact) [![Status](https://img.shields.io/badge/Status-Developing-blueviolet.svg)](https://github.com/WomenPlusPlus/deploy-impact-21-kona-b/projects/5)

Kona Connect’s legal team, together with students and expert volunteers from around the world, are developing a tool to connect people in need to the organisations best equipped to help them. This tool which is accessible 24/7 through any device, will automatically guide its users to the help they need, whilst simultaneously reducing aid agencies’ staggering workloads, freeing up time to help more individuals.

📝 Table of Contents

‼️ Problem Statement

The 17 Sustainable Development Goals (SDGs) are the world’s shared plan that includes ending extreme poverty, reducing inequalities, and protecting the planet. Achieving the Goals by 2030 will require a lot of effort, determination to learn about what works, and agility to adapt to new information and changing trends. Initiatives that generate impact and advance the SDG commitment to “leave no one behind,” should be backed by evidence, practical commitments, and action - something that doesn't happen right now.

Access to tailored and trustworthy information is essential for individuals in precarious (and often life-threatening) situations. However, it is easy to get lost in a bureaucratic maze amongst the numerous support institutions that exist. Databases containing information of aid organisations already exist, but the information tends to be incomplete and fails to describe the services provided.

The urgency to solve this problem is reflected by the increase of people living in precarious situations. A main factor of this increase is statelessness. A stateless person is someone who is "not considered as a national by any state under the operation of its law" 1. UNHCR estimates that statelesness affects millions of people worldwide, and at least 700.000 are in West and Central Africa 2. Being stateless is just one of the many reasons that lead people to be in vulnerable situations, rendering it of high importance the provision of a tool that eases peoples' search for help.

:boom: Mission

Our mission is to:

💡 Solution

Facilitating the search for assistance and support can be done by empowering people to know what their human rights are, where to look for reliable help, what to expect from aid services, and how to contact the right organisations.

6 weeks ago we did brainstorming sessions to define how we were going to solve the stated Dots problem, and how we could use the information to satisfy our stakeholders' needs. The solution was provided by Kona Connect by means of the platform "Dots.", a web app used by people in vulnerable situations to search for help. To do this, Kona Connect's team has identified and classified the social organisations. In order to provide accurate information for the users, we have improved the database by including a classification of the NGOs based on their target user, location and contact information (coordinates, address, email, phone number, opening hours, web site, social media, etc.)

The classification of the NGOs target users is based on the 17 United Nations Sustainable Development Goals (SDG). The SDGs are a collection of goals carefully designed by the UN to create a better planet for a better future 3. By means of these goals we not only achieve a meaninful classification of the organisations, but also we are able to trace the impact created by Dots.

The main goal of the tool is to connect people in need to the right organisations as quickly as easily as possible. For this, our solutions provides two main options:

To measure the impact of our app we have to define, evaluate and quantify impact (brainstorming and inspiration ideas). The Credit Suisse Impact Management Project Framework was selected to define and evaluate the likely impact of Dots across five dimensions. We will explain how each classification contributes to the definition of Dots impact. The defined impact has been aligned to the 2030 SDG targets.

In the first stage, our solution is focused on providing help for the people located in Senegal. Therefore, the web app is available in English and French, and has a framework which allows easy translation to any regional language. Moreover, thanks to the design of our UX/UI experts, most interface options are coupled with an icon to make the app more accessible and intuitive.

:iphone: The web app

Dots web app is a responsive website so it can be used from any device (laptop, phone, tablet). Our website is also a Progressive Web App (PWA), so the user can save our website on their phone and have our launcher icon on their home screen. They will be then able to open our website like a mobile app. The decision of choosing this technology was supported by the advantages that it has compared to a native app:

Other resources: MDN

You can now use it here: https://dots.azureedge.net/

Pages

The app has the following pages:

For developers

If you are a developer you need to know this.

⚠️ Prerequisites

Frontent:

Backend:

:computer: Installation

Frontend (Client)

Find the instructions on how to run it here.

Backend (Server)

Find the instructions on how to run it here.

:house: Repository structure

Cloud deployment

The frontend and backend are hosted on Azure. The frontend uses Azure storage containers with a CDN in front. The backend uses App Service to run the Python code.

Specific deployment commands can be found in the frontend and backend directories.

To deploy the web app Azure CLI would need to be installed and correctly set up. Find out more here.

:bar_chart: The database

Databases containing information of aid organisations already exist, but the information tends to be incomplete and doesn't describe the services provided. For this reason we decided to create our own and to be able to ask the user about it.

The database information can be found in /backend/data/csv/data. This file contains all the NGO information in a human readable format. For each NGO the information collected is: NGO name, objective, services, can the NGO be contacted by individuals, phone_number, email, website, address, region, latitude, longitude, opening hours, hotline, facebook, linkedin, twitter, youtube, instagram, tiktok, flicker, sound_cloud, and other in case they have another social media account.

The organisations services are categorised in the database according to the SDG and targets that they contribute to. This allows us not only to provide a meaninful grouping of NGOs, but also to trace the impact of the app. In order to be more accurate when recommending NGOs to the user, an age and gender classification was added. This allows the app to recommend specific NGOs directly to the group of people they are able to help.

To make the database more machine readable, it was processed and divided into the following datasets:

Maintenance

This app is just as powerful as the information it contains, thefore it is very important to increase and enrich the database. For now, to add a NGO to the database one would need to add the information manually to the corresponding .csv files. The goal is that in the future the information will be stored in a SQL database and the addition of new NGOs will be semi-automated through the NGO-application page. Read more about future develompments in the section Future Work.

Access

Using the APIs that provide information to the front end and the migration to SQL:

The SQL database creation was developed in parallel to the creation of the CSV classification tables and API connections between CSV file and front end. We decided to do this because we used an shared Excel document to create classification tables, standardise the NGOs information provided, and create questions and answers of the quiz.

We wanted to avoid using CSV files in the future, therefore the CSV files are migrated into database. As a further step we would like to connect the front end directly to the database, and just have the CSV for an initial run.

We have written down all the API end points that can access this database such as getting organisation information and quiz information. The list of APIs includes the explanation of usage.

In the future, we suggest having an admin portal to access the SQL database. In the admin portal an authentication system should be included to validate who is the user managing the database information. A tool that generates access tokens for API authorization scenarios that limit the access to the database is OAuth.

This same logic could be applied to the organisation information in our database by providing editing access to each NGO. The organisations can submit their data through the "organisation application form" and the data will be sent to the database portal at the same time as it will send an alert to the Dots team by Email or other notification system. The Dots team should have the capacity to accept or discard the submitted organisation information. In case the information is not approved, Dots should be able to answer the notification mail to the NGO and get back to the organisation. The organisation should be provided with an access to edit or delete its information.

:books: App translation

Currently the app is available in English and French, but it has been specially developped so that it can be easily translated to any language. The tranlation files are handled by the front-end and can be found in /frontend/public/locales/.

For more information about the translation library used on Dots, please have a look at the frontend documentation.

:art: UX/UI

To know and emphathise with the user was one of our main priorities when developing the app. Therefore, our UX/UI team has done wonderful job researching information to understand the user needs, frustrations and pain points. This information, combined with the feedback obtained from interviews with potential users, helped us to design the different aspects of the app such as colours, icons and wording. To find more information about the design process and user research check the UX/UI_docs

:postal_horn: Troubleshooting

If you find any error or weird behaviour when using Dots, please open an issue and we will try to address it ass soon as possible.

:robot: Future Work

The app provided here is only the minimum viable product of the Dots. app and several improvements are planned to come:

:clipboard: License

This repository is licensed under the GPL - 3 license. This guarantees the end users the freedom to run, study, share, and modify the software provided. You can find more information in the LICENSE file.

👥 Authors

🙏 Acknowledgments