Skip to content

WomenPlusPlus/deploy-impact-21-kona-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Image of banner

Dots by ConnectingDots

Dots: the alternative legal aid tech. A tool to connect people in need to the organisations best equipped to help them.

The project was developed for Kona Connect. Detailed information available under https://kona-connect.org/dots-legal-aid-tech/

Size Limit CLI Idea / Our Proposal

  • Offline application - once downloaded, no internet connection is required for the users to use it. Can be accessed by everyone everywhere.
  • The users are guided through a set of personal identification and needs questions that enable the app to find the right organisation for them.
  • Easy to maintain by reading data

Size Limit CLI Technical Solution

  • React Native Frontend application using Expo Framework, available for Android and IOS.
  • No backend, all data required by the application is stored in json format under ./Frontend/assets/jsonFiles for both content and configuration.
  • Minimal running cost of the application considering no additional cost is required for storage or backend infrastructure.

Size Limit CLI How does it work

  1. User needs to provide personal identification information (age, gender, etc.).

  2. Identifying their needs, based on a hierarchy of questions derived from the SDG definition (Dots diagram) by grouping different subsections into similar areas.

    Size Limit CLI

    Configuration of the needs hierarchy options and the mapping to SDG Group ID is stored inside the application in .json format. This data is used in the application to dynamically generate the Needs Questionnaire with the different options and derive the underlying SDG Group ID that would be used to filter the Organisation data: - "options_map" for Individual selection - "companies_options_map" for Company/Organisation selection
  3. Showing the list of relevant organisations for the user based on their selections. The system will filter the organisation data based on:

    • Personal identification information - for example if the user selects age: 0-12 -> filter only for organisations relevant for children
    • SDG Group derived based on the needs questionnaire
  4. Display detailed information about the organisations. Relevant details of the organisation selected by the user will be shown on the screen (Organisations in Senegal).

Installation

Size Limit CLI Prerequisites

Size Limit CLI Developers / Testers

For developers/testers that want to be able to run the code locally and develop or test:

  • Android simulator - Androit's phone emulator. Installation steps for both Windows and Mac can be found here
  • iOS simulator - Apple's simulator.
  • Expo app - developer tool to be able to run/test the app on mobile

Size Limit CLI Getting started

  1. Clone deploy-impact-21-kona-c repo locally
  2. Go to Frontend folder and run:
cd deploy_impact_21_kona_c/.Frontend
npm install
npm start
  1. Metro Bundler should open on localhost
  2. You can now run your application in 3 ways
    1. On a local computer using a phone emulator launching the virtual device configured (Android or IOS)
    2. In web browser - just open from the Metro Bundler page
    3. Open the Expo app on the phone and scan the QR code from the Metro Bundler page

Testing

Size Limit CLI Unit Tests

Unit tests are available under ./Frontend/test folder. They can be run via the following command.

npm run test

Results will look like this

Size Limit CLI

Size Limit CLI Manual Tests

Manual tests cases that were created and executed are available here. It contain an initial set of test cases that can be further expanded.

Data

All data required by the application is currently stored inside the application in the ./Frontend/assets/jsonFiles folder. This includes organisations data as well as data used for the hierarchy mapping of the needs, questionnaire options and mapping to SDG Group. The application uses this hierarchy mapping to dynamically generate the different options for the users depending on their selection.

All .json files used by the application were generated based on a original .csv files that can be found here: ./Frontend/assets/csvFiles. Users can easily maintain the .csv files and, when ready, the files can be easily converted to .json format and the application will use the new data.

Size Limit CLI

Based on the current implementation an update of the organisation or configuration data would require an update of the application as the data is self contained in the app. In the future, this can be enhanced by having the data in a central location and the application will update the data content at specific intervals when connected to the internet.

Size Limit CLI Update of Organisations data

In order to update some of the organisation details, the organisations.json file needs to be modified with the new information. This can be done by:

  • Update the organisation.csv file. The structure of the file should be the same as the old version, just an update of the data content.
  • Generate a new json file based on the updated .csv file. This can be easily done by using the steps defined under Conversion to json file section.

There is always the option to manually update the underlying organisation.json file, but we would recommend updating the organisation.csv file first and generating the json file from it. This is so that the golden source of the data remains in a redeable format on the .csv file.

After this, the application will use the new data for the organisations. Remember to test the changes before you go ahead with the update.

Size Limit CLI Needs Options and Mapping to SDG - maintenance

The application generates dynamically the options for the needs questionnaire as well as the mapping of the different options to the SGD Group based on configuration data in the application. This mapping is stored in the application under ./assets/jsonFiles.

  • options_map.json - stores the 3 level hierarchy of the needs options together with the mapping for SDG Group ID for Individuals
  • companies_options_map.json - stores the needs options for the Company/Organisation

This data can be updated in the same way as the organisation data by updating the right file depending on whether there are changes required for the needs questionnaire for Individuals, Company or both:

  • Update the required .csv file(s). The structure of the file should be the same as the old version, just an update of the data content.
  • Generate new json file(s) based on the updated .csv files. This can be easily done by using the steps defined under Conversion to json file section.

After this, the application will use the new configuration data to generate the needs questionnaire. Remember to test the changes before you go ahead with the update.

Size Limit CLI Conversion to json file

Required to update: organisations, options_map and companies_options_map data files.

To generate a json file from a csv file:

  1. Update any of the csv files in ./Fontend/assets/csvFiles
  2. Make sure the structure of the file is the same as the previous file
  3. Generate the json file
cd deploy_impact_21_kona_c/.Frontend
npm run convert-csv
  1. ./Fontend/assets/jsonFiles should be already updated.

Future Developments

Short Term

  • Expand the language support capabilities on the app to allow support for new languages. Data structure can easily be expanded to include an additional language column for both organisation and the needs mapping configuration. This will allow the application to dynamically switch the language and read the content from the data
  • Enable Data Collection by sending data from the app to a central storage where the data can be aggregated and centralised for user behaviour analysis
  • Create an Administration Panel where specific users can maintain the Organisation and needs mapping to configuration, to allow for quick update for the application. This can also be achieve by having the data in some google docs file where it can be updated and the application updates the local version at specific intervals based on the google docs files

Long Term

  • Include some AI capability to enhance the current deterministic approach. For example we could allow for text search on top of the existing needs questionnaire. In this way we could support more use cases and better serve the users
  • Allow organisations to register themselves and go through an approval process until they appear officially in the app. In this way the app can be self managed but still keep an oversight of the organisations that are included
  • Integration with other social apps which will allow the users depending on their needs to also be aware of other apps that could help them. There could be some integration with Sofia for domestic violence
  • Add FAQ section on the app where users can find answers to some common questions. For example things like: Do I need to pay to use an organisation service, Would there be repercussions if using a particular organisation
  • Online chat with social volunteers

Size Limit CLI FAQ and Troubleshooting

  1. Why do I have a folder named ".expo" in my project?

The ".expo" folder is created when an Expo project is started using the "expo start" command.

  1. What does the "packager-info.json" file contain?

The "packager-info.json" file contains port numbers and process PIDs that are used to serve the application to the mobile device/simulator.

  1. What does the "settings.json" file contain?

The "settings.json" file contains the server configuration that is used to serve the application manifest.

  1. Should I commit the ".expo" folder?

No, you should not share the ".expo" folder. It does not contain any information that is relevant for other developers working on the project, it is specific to your machine.

Upon project creation, the ".expo" folder is already added to your ".gitignore" file.

Size Limit CLI Team Members

Size Limit CLI License: GPL-3.0 License

This repository is licensed under the GPL - 3 license. You can find more information in the LICENSE file.

Project developed during Women ++ 's deploy(impact)'s program between 16th October - 27th November 2021 deploy impact is a hands-on software development program for social good.

About

Repository for Team kona-c for deploy(impact) running in 2021

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published