You are here

November 13, 2011 Hackathon Projects

Tonic - MembersUnite

Organization Description: MembersUnite provides the opportunity for small donors to make a big difference. Members, who either subscribe for themselves or are given a subscription as a gift, pay a monthly dollar amount into the MembersUnite pool, ranging from $10 to $50. Through its extensive network of high-quality charitable organizations, MembersUnite selects three high-impact projects that could be completed with one month's worth of collected donations. Members vote on which project they would like to see go through; the winning project gets funded, and everyone can see the tangible, immediate impact that their donation has had on the world.
Project Description: Together with Code the Change, MembersUnite hopes to develop a mobile companion app for its primary product. The mobile app will allow members to sign in to their MembersUnite profile and read about projects, watch/listen to content on past and future projects, or place their votes for the big pot. The app will hopefully link seamlessly with the web content and allow members to access the difference that they make in the world from their pockets.
Existing Work on Project: No existing work on the mobile app. Hirav will take care of setting up some infrastructure prior to the event.
Technical Skills for Hackers: The mobile app will be for android, so working knowledge of Java and experience with coding android apps would be wonderful. - Lehakhyot

Organization Description:, AFFRM are non-profit organizations that promote regenerative medicine research, as well as patient education and support services. These organizations came into existence because of an unmet medical need, and society's failure to address a large number of people who with an incurable illness.
The largest number of people who seek assistance from are patients with COPD, but the site offers support services for a range of different medical conditions. COPD is the number 3 killer in the US, and number 5 worldwide. COPD stands for chronic obstructive pulmonary disease. There are several different types of COPD. The most common type of COPD is caused from non-allegic asthma in non-smokers, followed by emphysema, which is commonly caused from smoking.
A decision was made to setup a commercial gene silencing and activation technology, since this appears to be the most expedient method of achieving our goals.

Project Description: The goal of this project is to create a commercial website for a gene silencing and activation startup. This project will help our organizations mission to bring treatment to an incurable illness. Things that might be useful on the site are the following:
1) News area with graphics and headlines.
2) Calendar showing time frame for clinical trial research arms.
3) Contact Information for affiliated clinical trial sites.
4) Global search box for searching entire site.
5) Sitemap.
6) Logo and company name.
7) Shopping cart for collecting money for research project
8) Contact Us page.
9) About Us page.
10) Small animation on homepage.
11) International translation for foreign visitors (languages: Mandarin, Spanish)
A serious effort will be made to bring copies of site documentation to the Hackathon on 11-13-2011.
Existing Work on Project: No existing work has been done on the project. If time permits, documentation will be developed before 11-13-2011, so that there is a basis for developing ideas that can be committed to coding practice.
Technical Skills for Hackers: Javascript would be a logical language. However, this doesn't have to be a deal breaker.

SIRUM - Javascript Form Validation

Organization Description: Every year, a staggering $9 billion in usable medicine and supplies ends up destroyed in incinerators, or worse, dumped into our water supply. Incubated at Stanford's Haas Center, SIRUM converts medicine destroyers into medicine donors by focusing on untapped sources of surplus, creating a solution that both reduces waste and provides clinics with a simple way to receive donated medicine. SIRUM uses an online platform to automatically match surplus medicine from nursing homes, wholesalers and specialty manufacturers with the needs of community clinics. Our peer-to-peer network encourages local donations and avoids costly overhead, donation delays, and liability associated with warehousing medicine.
Project Description: Javascript User Validation - most of our users are non-technical and really struggle to register. Most mess up on the registration page and since we only have normal validation, they have to submit the form before seeing the errors. It would be nice to show the errors as they are filling in the form so they they can correct items in realtime. In addition to the registration page, there is a profile page, change/forgot password page, and security question page where we would want to implement realtime validation. We currently use jquery on parts of the site and would want to use this framework for the new validation code.
Existing Work on Project: We have regular form validation already and would want the JS code to use the functions already written in PHP (for checking username uniqueness etc) rather than writing similar, duplicative functions in javascript.
Technical Skills for Hackers: Our site is based on MVC PHP (codeigniter) with some Javascript functionality. We use Mysql for our backend and store our code in an SVN repository. The project as described will be mostly Javascript/Jquery with some rudimentary calls to existing PHP functions. I do however have a number of other smaller projects (just in case this one finishes early) that would be entirely PHP based.

echo source e.V. - echo

Organization Description: echo source e.V. is a German non-profit association founded in 2009. It develops open source software solutions for e-participation, e-deliberation and civic engagement to address a core problem of our time: the political disappointment and feelings of powerlessness of the individual. The association is non-partisan and politically independent.
Early 2011, echo Systems UG was founded as a 100% daughter of echo source e.V. to commercialize the software and related services and to help to finance the activities of echo source e.V. and make it independent of donations in the long term. The company operates as a social business and employs a so called "Your-Profit" business philosophy.
Project Description: "Discuss - Connect - Act!“ - The social software facilitates constructive, cross-language public dialogs for opinion formation and collective solution finding. It connects people sharing the same purposes and supports them in creating joint actions for social and political impact. Wherever we are in the virtual or real world, echo gives us the proof: we are no longer alone with our opinion and convictions - the echo of our voice can turn idea(l)s into reality.
echo is NOT yet another platform! Its content is embeddable in arbitrary webpages: e.g. in websites of political or non-governmental organizations, news portals, companies or in private blogs. Wherever they are, people can elaborate their ideas and solutions by writing the same drafts together - in a democratic process without moderators or admins. In this way, echo brings together all splinters of knowledge, opinions and their advocates beyond the borders of isolated websites, communities and languages – throughout the whole Internet.
echo's structured debates remain clear and comprehensible even with a nearly unlimited number of participants. They provide us with a rapid overview of alternative views, pro/contra arguments and multimedia background information. They make interrelations of topics easily comprehensible and make the position and argumentation of different social groups transparent: e.g. which parts of society and how many people are really against Genfood? What are the arguments of biotechnologists and ecologists? What is the position of political parties, NGOs and other organisations?
In order to achieve noticeable results in our everyday life, echo actively motivates like-minded people from the discussions to create joint actions. The range of these actions covers general projects, founding of NGOs and social businesses, as well as the organized utilization of direct democratic instruments (e.g. European Citizens' Initiative, ePetition, referendum, demonstration, boycott). By bundling all sorts of local, regional and global actions for a common goal, echo boosts the influence power of civil engagement.
Furthermore, echo helps to finance these projects with cost-neutral fundraising and a user-driven, democratic redistribution of all its surpluses generated by multiple scalable business models (“Your-Profit” business philosophy).
Through the promotion of constructive collaboration between citizens, states and their organizations, echo helps to avoid destructive confrontation and enables us to jointly develop innovative responses to the challenges of our time.
Existing Work on Project: We set up a PiratePad page with all technical information helping you to set up the development environment, check out the sources, etc.
The document also describes the first 3 tasks we tought they are interesting and doable in the scope of a hackerton.
Technical Skills for Hackers: echo is a Ruby on Rails project (still 2.3.5 due to some incompatibility issues with some gems preventing us to migrate to Rails 3).
For the client we extensively use jQuery and some tasks are also based on other JavaScript visualisation tools.
Native Arabic skills would also be great. We would like to localize echo to Arabic to help the "world revolution" at that side of the globe. :-)

Makerere University AI-DEV Group, Uganda - Whitefly Count

Organization Description: Makerere University is the main national university in Uganda. The Makerere AI-DEV group ( studies applications of machine learning, pattern recognition and computer vision in the developing world.
Project Description: As part of larger project to survey crop disease in developing countries, we are looking at automatically processing images of leaves taken with camera phones and extracting different types of information. One thing which would be very useful to do automatically would be to count the number of whitefly on the underside of a leaf from a photo. Whitefly spread a number of devastating viral crop diseases in the East African region, which has huge effects on food production, and knowing how many there are in different places helps in controlling them and predicting the spread of disease. Currently this is done manually by teams of surveyors, which is a laborious, time-consuming and error prone task. With an automated counting app on a phone for example, surveyors could work much more efficiently. Whitefly counting is a necessary activity in many countries particularly in Africa and Asia (as well as the US), so this could also be a useful tool with wider impact beyond our survey project.
In terms of image processing, the problem of detecting whiteflies looks very simple - they appear as small, thin white ellipses on the green background of the leaf. However, because their appearance is so simple, we've found difficulty in detecting them without also turning up a lot of false positives. It's likely that there are some combination of clever features (perhaps morphological, or to do with scale/rotation invariant feature transforms, or histograms of hue/intensity) and appropriate classification that will crack this problem. We've not had the time or resource to find a workable method though.
We ideally want to carry out this count on a mobile device, to get real time feedback. If this is not possible (e.g. because accurate algorithms turn out to require too much CPU) server side counting would also be useful. The current code has been written to run on a low cost Android phone, though it is not necessary for the hackathon team to implement the detection on a mobile device - we can port any good solutions created on other platforms (e.g. Linux) into our survey client app.
See for more information about the wider crop disease monitoring and mapping project.
Existing Work on Project: We have a baseline solution for counting whitefly on leaves to get the hackathon team started, though the accuracy is not yet very good.
Technical Skills for Hackers: Code preferably to be implemented with the OpenCV computer vision library (Python, C++ or Java), or another library which we can compile for Android. Some experience of image processing, computer vision, or machine learning will be necessary.

Africa Soil Information Service (AfSIS), ICT4Ag initiative,, Columbia University’s Earth Institute, - ODK Trace

Organization Description: The Africa Soil Information Service (AfSIS), is a cost-effective soil health surveillance service to map soil conditions, set a baseline for monitoring changes, and provide options for improved soil and land management strategies. Funded by the Bill and Melinda Gates Foundation, AfSIS is implemented by International Center for Tropical Agriculture (CIAT) together with the World Agroforestry Centre (ICRAF) and the Earth Institute (EI) at Columbia University.
AfSIS’ ICT4Ag project collects and analyzes farm-specific information. Using Open Data Kit and Android devices, ICT4Ag will document farm input-output quantities such as yields and economic returns to identify the current state of agricultural efficiency. The objective is to use survey information in conjunction with soil mapping data to improve agricultural models and provide feedback, management advice and extension information.

Project Description: Goal
Modify ODK collect so that it can collect a new type of data -- "gps_trace"
The objective of this modification is so that:
--> surveys using ODK can collect lines and polygons consisting of GPS points, ie, GPS traces.
Example: in Haiti, an agricultural surveying project would like surveyors to walk the boundary of a farmer's field, and collect a GPS trace of the walk. The surveyors will use these boundaries not only to locate farms , but also to later calculate area, which is crucial in calculating recommendations (ie, apply 50 kgs of manure per hectare)
Agriculture research is often conducted by enumerators with limited technical knowledge. AfSIS employs agricultural extension officers to conduct our surveys. Generally, these high school-educated extension officers, often employed by Ministries of Agriculture, visit with farmers and help them with any issues they are facing (pest, drought, disease, etc.) They have a knowledge and positive relationship with the rural communities in which they work, but their experiences with smartphones and maps is very limited.
By building tracing and area measurement directly into ODK Collect, we can simplify the enumeration process, speed up data collection, reduce error, and improve the enumerators’ experience with ODK.
N.B. This is only the need of our specific organization at this moment. ODK is widely used, and the development of ODK Trace will open up new opportunities for all organizations using ODK.
Recommended Interface
- Surveyor gets to a question that requires a gps_trace. He/she sees a button called "collect gps_trace" (See GPS point recorder for example)
- Upon pressing the button, GPS is activated, and begins honing in on the location. (Turning on the GPS earlier is okay, but measurement must begin when the button is clicked; the surveyor may not be at the right place before this....)
- The user must be able to see the accuracy of his/her current location, and the GPS co-ordinate. Then, a prompt appears which asks the user something like
-- "when your GPS accuracy is satisfactory, and you are at the starting location for your trace, press the "begin tracing" button below"
- After clicking "begin tracing", the user should be able to see his/her trace, with his/her current position, and his/her starting position depicted clearly in a reasonable zoom setting that shows both points and the path. (We assume no connectivity, but if there is connectivity, a background map can be loaded as well)
- When user hits "finish tracing" (which is on the screen that appears while tracing), the trace is stored as a .gpx/.kml file (implementer can choose..) and the user is brought back to the ODK survey question. As the question is filled out, summary data has to be displayed. A rough outline of the track just recorded, the distance covered by the trace, and the area if the type collected was "polygon" rather than line (see optional feature #3) will be part of the summary data. From this screen, the user should be able to swipe right to go onto the next question, orand press “re-record the data” if the summary data seems wrong to the person recording.
Technical reqs:
- Must be implemented as a widget in ODK collect 1.1.7, and ideally compatible with future versions of ODK.
- Optional #1: display length covered by current trace as user is tracing/walking.
- Optional #2: allow a min accuracy to begin tracing as a parameter
- Optional #3: allow two different data types, "gps_trace" vs. "gps_polygon". A polygon would be different in that as the user is tracing, there is an imagined polygon that connects the starting point of the trace and the end point. This should be display to the user as a dotted line (along with an area calculation to supplement the distance calculation that appears with lines), and optional #3.5 would be the ability to configure data collection so that an area would only be "completely collected" if the start point and the end points are X meters away from each other (x to be specifiable).
- Optional #4: allow choosing frequency of GPS data collection
Hints to the dev:
- Leverage existing tracing apps for Android (see "OSM tracker", "GPS averaging", “Locus Free”, “Distance and Area Measurement” [ etc.) and There is a family of GPS tracing apps built for joggers, we should leverage one of them. DAM in particular is used in the field for Area Measurement as of now. We have found DAM user experience to closely reflect the experience we hope to replicate within ODK Collect. Write-up of our previous experience with DAM can be found here.
- See other ODK widgets (barcode, GPS point recording, photo) for help

Existing Work on Project: No coding work has been undertaken on ODK Trace. Testing ODK in conjunction with area measurement/GPS apps, we have developed a feature list and desired UX guidelines. Additionally, we have begun testing GPS quality and developed a testing protocol that will be useful for ODK Trace field trials (read here: for more details)
Technical Skills for Hackers: ODK Trace development is best served by hackers with experience developing for the Android OS. Knowledge of GPS, area measurement, and ODK Collect would all be helpful but not absolutely necessary.

Envaya - Website Design Themes for Civil Society Organizations in East Africa

Organization Description: Envaya designs, develops, and deploys software that empowers and connects grassroots civil society organizations (CSOs) in developing countries. Envaya builds online and mobile tools at that allow grassroots organizations to easily create their own websites, collaborate with one another, and interact with the international development community. Envaya designs its software to be easy-to-use for CSOs in developing countries, particularly organizations with limited technical expertise.
Project Description: When civil society organizations create their websites on Envaya, they choose a design theme that provides background images, a visual layout, and a color scheme. Currently there are only nine different design themes for civil society organizations to choose from.
The project is to create additional design themes (or adjust existing themes) to enhance the visual appeal of civil society organizations' websites created with Envaya.
The end result of each design would be a HTML layout, CSS style rules, and a collection of GIF/PNG/JPEG files referenced by the CSS.
Designs will be licensed using the MIT license.
Existing Work on Project: Envaya has already created a web page on that allows designers and developers to edit and test design themes (HTML, CSS, and images) in the browser. This allows anyone to easily contribute designs without needing to set up a local development environment for Envaya's source code.
Creating new designs is also made easier because the CSS doesn't need to be created from scratch -- it only needs definitions that override Envaya's default styles. For example, a typical existing design includes ~100 lines of CSS, ~15 lines of HTML, and ~4 images.
Technical Skills for Hackers: Contributors should have experience with visual design of websites. In order to create a complete design, you or your team will need to be able to implement the design using HTML, CSS, and images. (In other words, the end result is an interactive web page, not a PSD file.)
If you are strong in HTML/CSS skills but weak in visual design/Photoshop talent, or vice versa, we encourage you to partner with someone with the complementary skill set.
The resulting HTML/CSS implementation must be widely compatible across many browsers including Internet Explorer 6, so knowledge of CSS browser compatibility/quirks is a plus.