BANG projects for 2017


Depending on the sophistication level and programmng/research balance, most of these projects can be adapted for Honours, MSc or PhD. Honours projects are typically programming and testing oriented, MSc projects typically use a programming effort to collect research data for analysis to answer a research question, and PhD projects do this in order to explore a novel contribution to the field of Computer Science and/or ICT4D. Note that Honours teams can also be convened to address a more complicated (and larger) programming effort. The research group is involved with two community-based research projects: Zenzeleni and SignSupport. For each community project, we list new, ongoing and recently finished projects to provide some context. BANG also has relationships to software development NGOs and social enterprises in the ICT4D space; and a third category of internship-based projects follows. BANG projects can be supervised and co-supervised by supervisors of your choice providing they fit within our funding mandates, i.e. prospective BANG postgrads must fit projects within the funding umbrella in order to receive support to carry out a given task, e.g. bursary, devices, airtime, travel, etc.


Zenzeleni - a solar-powered and wireless rural community network. Click here for more info.

Available projects 

Billing services for data and voice. We have recently added low cost high speed Internet VoIP break in and out services to a rural community-run wireless mesh network.  The network is managed by a co-operative in Mankosi and is physically placed in people's homes. We are using a homegrown prepaid billing system for VoIP co-designed with the community which uses Interactive Voice Response (IVR) and A2Billing.. We need to add additional functionality to bill various forms of data usage in addition to voice. Note that we also bill for charging mobile phones at solar charging spots. Ideally, an integrated billing platform needs to be worked out with the community: there will be different types of users, e.g. community residents and entities like a backpackers, secondary (junior and senior) school staff and students, clinic and NGO. The project requires understanding the current system, examining similar systems available from the Internet and coming up with a plan to improve functionality and ease of use. The former requires automated function, unit and integration testing, and the latter requires user-centred usability testing.

Field validation tools. Because Zenzeleni Mankosi is so remote, it is difficult to debug network problems and bottlenecks remotely. We need apps that run on mobile phones to use in the field to debug issues such as signal strength, data throughput, packet loss, jitter (variations in delay) amongst other problems. A couple years ago, we built a mobile app that mimics the functionality of D-ITG to conduct simple Quality of Service (QoS) tests by simulating traffic flows. We would like to build on this work by providing a mobile tool that can operate in the field. Of course, we would want to test the app in a local laboratory testbed (which we have in operation in the BANG lab). The project requires understanding the mobile D-ITG app that we already have, and also looks at mobile field validation tools available online in order to cull ideas to improve functionality and ease of use. The former requires automated function, unit and integration testing, and the latter requires user-centred usability testing.


Simulation of wireless mesh networks in ns-3 or some other simulator. There are mainly three drivers that allow implementation of wireless mesh networks: madwifi, ath5k and ath9k. This project aims to obtain a good understanding of real life implementations of mesh mode, and then review the wireless mesh (adhoc) modules in ns-3, providing, when necessary, patches to allow simulation of the mesh modes with the three different drivers mentioned. This should allow one to configure quality of service (QoS) according to the implementations studied and/or created above. Once a robust and trusted mesh module exists for ns-3, simulations can be carried out to measure performance of a mesh network, and results will be compared with those obtained in a real network. This project can be restricted, e.g. for an Honours, by focusing on a single driver. An MSc would compare drivers.


Back-end traffic shaping and prioritisation/Front-end user information. Given the recent addition of low cost broadband to Zenzeleni Mankosi, we expect an explosion in the use of WiFi-enabled phones on the network. In other words, we expect to add 10's if not 100's of WiFi-enabled smart and not-so-smart phones onto the mesh network in infrastructure mode, for use with data and with VoIP. This project endeavors to understand community members' usage and preferences and prepares a tool that allows shaping and prioritising of traffic accordingly, from the perspective of the routers themselves. This project’s technical aspects delve into traffic shaping and prioritisation, e.g. exploring IntServ and DiffServ approaches for the wireless mesh network, which is currently based on BATMAN-adv; although we are looking toward LibreMesh for the near future, so work with the latter is encouraged. On the other hand, a front-end user-centred approach aims to inform the end-user about which network to use to make a call or surf to a site, based on network conditions and availability, e.g. a choice between GMS/2G/3G and WiFi from the mesh network, or if the mesh network is at capacity, rather refer the user to an available mobile data or GSM connection. This end user app must include a cost analysis, i.e. informing the user about the most cost-efficient and/or battery-efficient way to do what the user wants to do; thus empowering the user to make an informed choice (which, of course, could be automated with appropriate settings).


Work in progress

Mobile battery usage comparison. Compare cell phones using mobile data vs. Wi-Fi to do the same things, e.g. WhatsApp, Facebook, email and voice over Internet Protocol (VoIP). This project requires a piece of software to drive the exact same application usage on the same phones in order to compare the battery consumption of mobile data vs. Wi-Fi; with GSM on and off. The hypothesis: Wi-Fi consumes less battery than 3G for the same services. This is in progress by Shree Om (PhD student), Dr Carlos Rey-Moreno and Prof. Blignaut (Statistics).

Impact of WiFi clients on mesh networks: scalability and quality of service. PhD Computer Science. Shree Om (supervised by Tucker) aims to explore scalablity of nodes, clients and the number of calls for a village telco network running batman-adv with a testbed at the university with an eye toward deployment in the field.

Improving performance in mesh networks. MSc. Taha Abdalla (supervised by Bagula) aims to reduce the number of OGMs (originator messages) used by batman-adv to spread the routing table throughout the mesh network.


 Recently finished projects that can be continued

Community Telco: an acceptable solution for providing affordable communications in rural areas of South Africa. PhD. Dr Carlos-Rey Moreno (now a post-doctoral fellow) collected data in Mankosi to examine the acceptability of Zenzeleni in terms of technical, social, financial and legal concerns. The result is South Africa's 1st and only legally run rural community-owned ISP. We need to collect more data to examine the impact of Zenzeleni in this area and surrounding areas.

Trust and e-billing for voice services on a rural community mesh network. MSc. Josee Ufitamahoro (supervised by Venter, Tucker) conducted participatory design with the local community to design a billing system for voice services. A prototype was implemented with A2Billing and is currently in use in Mankosi by Zenzeleni Network, a not-for-profit community cooperative.


Traffic generation and analysis on a mobile device. MSc cum laude. Ghislaine Livie Ngangom Tiemeni (supervised by Venter, Tucker) implemented a prototype of D-ITG on a mobile phone to enable mobile devices to generate and analyse traffic over a wireless network.



SignSupport - a  mobile communication app for Deaf people. Click here for more info.


Available projects

Authoring tool for SignSupport, a rich communication service. SignSupport is a mobile app that helps Deaf people communicate with hearing people who cannot sign. We currently have three scenarios for SignSupport: a visit to the pharmacy, computer literacy training and diabetes self-management information. We have built a prototype of an authoring tool for SignSupport that an informed end user can use to produce any of these scenarios, and in fact, create their own, e.g. to report a crime at the police station. The problem with our prototype is that it generates output that must be consumed by another app to render the user interface (for the Deaf user). We want to bypass that stage and write the app directly to HTML (more likely HTML5) so that the scenario (output) app can run on any device, in any browser. It would be useful to read up on SignSupport, esp. Sifiso Duma's thesis before taking on this project.

Authoring tool for ODK. We have built a signed language video interface to ODK. Open Data Kit (see is a mobile data collection tool out of the University of Washington (UW); and we are lucky to actually know the people (Carl and Yaw) that started this project at UW, and continue to run it as a business called Nafundi. The main input to ODK in order to render a mobile form/questionnaire is a spreadsheet full of questions (and answers/options). This project builds on our instrumenting ODK with signed language videos, to collect data from Deaf people, by crafting an authoring tool with a graphical front end that produces the Excel xls that ODK consumes. The tool is intended to be used by Deaf people who can create their own questionnaires with signed language videos. In other words, instead of having to learn Excel, this tool enables a user to populate an ODK form with a more intuitive graphical user interface, signed language videos, that get turned into text, and then populate the Excel spreadsheet that ODK expects. This will be especially helpful when creating signed language interfaces for ODK forms,  by Deaf signers and/or people working with a signed language interpreter.

Sign language video frame grabber is intended for a sign language user to select a key frame from a sign language video that ‘represents’ the meaning of a video. The intention is to use that selected frame as an icon for the sign language video in an application, perhaps to identify a button or a selection, or to play the full video to clarify the content. In other words, in an app, instead of playing the entire sign language video, we rather allow a sign language speaker to select a frame from the video for that video. A more interesting angle to this would be for the sign language speaker to select several key frames, and animate them in a gif that will suggest more completely the meaning of the clip to a sign language speaker.


Evaluation of SignSupport on low-end smartphones. We have developed and tested the current SignSupport prototype on mid-range smart phones. We know the prototype will work well on later versions of Android. However, we’d like to know if Deaf users will be able to use SignSupport on low-end phones running slightly older versions of Android. This project requires porting SignSupport to such phones and testing them out with Deaf users in order to compare users’ impressions of the application and its performance. This mostly involves the evaluation of sign language video intelligibility, for which  guidelines exist. This project can also involve modification to the way SignSupport handles and stores videos in order to improve performance on lower end phones.


Android bandwidth pricing calculator. In 2012, we built a mobile packet monitor front end and back end to collect and visualise the data consumed by various applications running on an Android device. This project carries that prototype further, possibly based on other tools like Android’s Data usage app, adding support for multiple data plans, a wider array of price visualizations, support for multiple SSID’s on the WiFi interface and calculations to help users decide if they should make a GSM call, VoIP or some sort of breakout, e.g. SkypeOut.


Work in progress

Authoring tool for SignSupport. MSc. Sifiso Duma (Tucker) Thus far we have designed and built three versions of SignSupport for a Deaf person: 1) visiting a doctor, 2) visiting a pharmacist and 3) assisting with ICDL training. SignSupport essentially presents a scripted conversation flow between a Deaf person and a hearing person around a specific scenario. There is no automatic translation. All of the potential sign language videos are stored on the phone. We are generalising the tool to be able to define conversation flows for any given conversation scenario, e.g. visiting the police station, home affairs or library. We would like each scenario to be crafted and loaded onto the phone individually, depending on need. The authoring tool is meant to help domain specialists construct the conversation flow and to aid in populating the context with recorded sign language videos and related text and icons. We have a prototype that needs improvement.

Signed language interface for ODK. Contract programmer (YY Wang, an MSc Computer Science graduate working in local software engineering company) does exactly what the title suggests: provides signed language interfaces, in this case South African Sign Language (SASL) to collect data from Deaf end users with ODK. In addition to populating the interface with signed language questions, and answers (in addition to iconic answers), the enhancement includes call outs to transcription tools such that a SASL interpreter can populate otherwise text-based data for standard ODK tools.


Mobile video relay and security. PhD. Andre Henney (Tucker). This project integrates a real-time mobile relay system based on the MobileASL codec to SignSupport. This app can be invoked on a mobile device when a Deaf person requires interpretation to clarify information surrounding any given SignSupport scenario, and relies on a remote sign language interpreter. This project also addresses the privacy and security of the interpretation service in the context of the South African protection of private information (POPI) bill.


SignSupport field clinical trial in an actual pharmacy. PhD (Pharmacy) Mariam Parker (Bheekie, Tucker) needs to obtain ethics clearance from a national board in order to conduct clinical trials. The goal will be to piggy back on another such effort, e.g. one for diabetes, and also learn whether or not we must adhere SignSupport to telemedicine specifications wrt technical specs like framerate, video size, etc.


SignSupport for diabetes information. PhD (Industrial Design Engineering, TU Delft) Prangnat Chininthorn (Diehl, Tucker). Continuing on her work designing the pharmacy version of SignSupport for her MSc, Prang will look at the best ways to provide diabetes information to Deaf users according to Deaf users' needs articulated by Deaf people.


Recently finished projects that can be continued

 SignSupport mock clinical trial in an actual pharmacy. PhD (Pharmacy) Mariam Parker (Bheekie, Tucker) is trialled the output of Michael Motlhabi’s version of SignSupport in an actual pharmacy with Deaf participants in Paarl. However, due to ethics constraints, the Deaf participants were not allowed to use SignSupport in conjunction with actual medications.

Video notification for SignSupport. For the pharmacy SignSupport scenario, we need to add a video notification, containing a sign language video, within the SignSupport application, to remind a Deaf user when to take a given medication. The notification has two parts: first, a picture of the medication, and second, a sign language video that informs the user how to take it. The reminder system needs to be automatically configured and set into motion by the SignSupport application once a pharmacist adds a prescription. The system needs to be able to handle multiple alerts at the same time. It also needs to have a link from the reminder back to the medicine’s entry in the SignSupport system. Another task is to increase the intensity of the phone’s vibration for alerts. A useful add-on would be to track user compliance of actually taking the medication.


Pattern passcode for SignSupport. In 2013, Duma modified the standard Android pattern passcode to allow a user to use a point more than once to enable more complicated patterns with repeatable points. A reused point is colour-coded to how many times it is used. Modifications in 2014 by Bulumko Matshoba include: removing the advance button, adding a pattern reset, enabling the user to lift the finger and skip to another location for disjunctive patterns, and a formal test to see if pattern passcodes really work better with Deaf users than textual passwords and PINs. The main reason why we are interested in pattern passcodes is that many Deaf users are minimally textually literate and since they communicate in signed language, they will prefer visual passcodes. Thus the pattern reset is not as straightforward as a text password reset with email.


Sign language-based data collection with ODK (Open Data Kit) augmented text and paper-based questionnaires with signed language videos. The problem was that we have to have the text-based questionnaires interpreted on the spot. This limits the data collection process because if we have 2 interpreters, we can only interview 2 Deaf people at a time. With a sign language enhanced system, we can collect yes/no and multiple-choice answers, and even free form answers in sign language to be interpreted later. All of the questions are asked in South African Sign Language ont the device. The existing prototype, developed by Sibusio Sibiya, can be improved and tested out with Deaf end users.



Internship-linked projects with local software development NGOs/social enterprise

Android app to collect and visualise data for water safety. SeeSaw has an app called Snapture that takes photos of codes that represent water quality. Theywould appreciate support on the following aspects: Automatic processing of the codes (i.e. shape or colour recognition that does some of the processing automatically and also creates a user-friendly process for picking up errors – as we will never be able to reach 99% processing accuracy); amendments to the web platform upon which the results are visualised – for instance being able to filter the results by time (adding time sliders) – and finding other ways to improve our current visualisation (see screenshot on later page); and possible development of an accompanying Android app (referred to hereafter as eSnapture) which takes the images of these codes and turns them into “push-buttons” on the screen of a smartphone. The idea is to have something that replicates the look and feel of Snapture, but which does not require any processing of codes. The Android app we have sends these photos to our server where we have a rough-and-ready system that allows us to manually process the codes. As we get more codes, we would like this process to be automated and the manual process (that we will still need to verify processing and correct errors or „non-processable codes) to be improved. eSnapture would be a new Android app that would use the codes as images that are pushed on the touch screen. The idea is that this could be used by managers or those familiar with technology. The idea is to keep the look and feel the same as the version where you take a photo of the codes. „Twin apps, if you like. Lastly, some improvements to our backend where we show results would be welcome. This is hosted on CouchDB, see ( For more background data, see this overview.


Data visualizer for CommCare: Dimagi makes extensive use of CommCare is an open source, mobile and cloud-based platform designed to support frontline workers globally in gathering and distributing information. Using it anyone can build a mobile application to collect data and perform case management. CommCare has a number of built in reports that allow users to view the activity of the mobile workers however it is does not have any reports that allow the users to perform analysis of the data they are collecting. This project would make use of theCommCare APIs to retrieve data for a project space on CommCare HQ and provide an online interface where a user can do basic data analysis and generate some charts of their data. For example, a CommCare user may be collecting information about children and would like to plot a graph showing the age distribution of the children in their study. In CommCare HQ the data for the children would be stored in Cases which can be retrieved via the Case API. The deliverables for this project would be a standalone web application which retrieves data from the CommCare HQ Case API and provides a web interface where users can view the data and plot basic charts.