GSoC 2021 Ideas: Ushahidi

NOTE: This ideas list is under development and will likely be changed up through the official announcement of GSoC projects. Please also visit the Google Summer of Code @ Open Source Center page for other sub-org information and details.


image

Ushahidi Overview

For all projects, we recommend the following steps to get started:

  1. Set up the Platform dev-environment (instructions are here: Setup Guides - Platform Developer Documentation, most of us use the Vagrant setup)
  2. Play around with the platform, login, change settings, add posts and surveys. There is a user-manual to be found here: Ushahidi Platform User Manual - Ushahidi Platform User Manual

Potential mentors for all project ideas on this page are available to answer your questions! Connect with us on Chat with general questions, or contact any of the Ushahidi Mentorship Team (subject to change!):

Project idea:

Improve performance in the Ushahidi Platform Client

Background
The Ushahidi Platform Client is heavy and slow to load for the user. A big bundle of javascript and css is loaded before the page is usable and everything is loaded in the same bundle. We want to improve this to make the experience better for our end users, especially in areas with bad connectivity. The project will be focused on decreasing the bundle size of the javascript, using codesplitting and dive deep into the configuration of webpack. It will also include finding and removing unused dependencies and finding replacements for heavy dependencies.

Tasks
We have a big bundle of javascript loaded when the user enters the page. All javascript used for all functionality on the site is loaded at the same time. This means a lot of unnecessary code for a lot of users. Tasks and questions to research:

  • Is there a way to split up the bundle and only import what is needed for each view or usecase. For example, can the code for the settings-view and analysis-view be separated?
  • Do we have any unused dependencies? Remove them
  • Some of our dependencies are really heavy, can we find replacements that is lighter?

Skills: Javascript, AngularJs, Webpack, Front End development

Difficulty level: Intermediate to difficult