Skip to content

Grace Hopper 2018 Open Source Day Hackathon

rpleven edited this page Sep 21, 2018 · 7 revisions

OSD 18 Projects

Project 1: Electing Women "Testimony" Prototype (mobile and webapp versions)

Problem Statement

There is a growing global movement to increase the number of women elected to public office as a key to creating a safer, fairer, more prosperous world. But in every country, women political candidates face common challenges which create an uneven playing field with their male opponents. Frequently, women face harassment, threats, violence, and corruption, leading them to feel isolated and discouraged. This problem is compounded by other obstacles such as lack of funds, and challenges reaching out to constituents (who are frequently illiterate or may not have access to computers). Such obstacles often make it difficult to encourage women to run for office, and if they do run, to keep them from dropping out due to these pressures.

Solution

As a way to help overcome these barriers, Women's P2P Network is creating a “toolkit” in the form of a (1) webapp and (2) mobile app that will connect women candidates to their local constituents as well as to each other in a supportive global community. The toolkit will also ultimately offer support services such as fundraising.

GHC Open Source Day Hackathon 2018 Projects

Project 1: "Testimony" Prototype

The goal of the GHC projects will be to create a scaled-down demo that will allow for iteration with women's organizations and supporters. We are building one feature of the toolkit:

  • Women candidates tell stories from the campaign trail
  • Other women offer messages of support

Our target users are someone who may not have a smartphone with good internet connectivity. Most of them (Women in Kenya especially) have brick phones, which have the capability of sending SMS. To build an inclusive demo, we want to handle SMS, MMS (Pictures), Video to be sent to different support groups. For now, we want to use Twitter as our primary support group and Twilio network for sharing the SMS texts, MMS, Videos via the mobile network. Every SMS sent to the registered Twilio number must be posted as a tweet on twitter account (We want to use our Women's P2P account for the final product, but for hackday we want to use a demo account) Support messages/ replies to the tweet must be sent back to the same number as SMS/MMS/Video.

Mobile Phone Version

We want to build a basic demo/prototype, where someone with a mobile phone (not a smartphone necessarily)

  • Messages(SMS/MMS/Video) sent via Twilio must be tweeted onto the demo twitter account.
  • Replies to a tweet must be sent back to the user's mobile via Twilio.
  • All the rest calls related to Twilio and Twitter must be handled within the flask app.

Web Client Version

Apart from the mobile phone support, we want to build a web client as well, from which people can share messages/ high-quality videos/ Images to send it to support groups. Please have a look at the React Native client.

Project Prep

Skillset

  • Python
  • An idea on using Twilio APIs, Twitter APIs
  • Flask
  • Deploying server code (flask app) to Heroku
  • JavaScript
  • ReactJS (Webclient)
  • An idea on web development
  • Git

Prerequisites

We will be using this repo to submit our hackday code! Please take a look at the development workflow.

Project 2: Women's P2P Website Redesign

The current website is hosted on PHP / Drupal 7. In addition to giving space giving space for existing pages, we would like to organize the website for a better outreach, and multimedia-forward documentation of the women's campaigns we are supporting. We would expect you to build the website using Python / Django.

Skills required

  • Good design skills for the frontend
  • Python / Django

Preparation

Some ideas and wireframes will be added over the weekend. Please feel free to research, come with ideas.

Project 3: Design for digital stories Web Page

A visually-engaging landing page for the streaming messages generated by the "Electing Women Testimony" (Project 1). For Open Source Day, this will be a front-end design project only. Come with research, samples, and ideas.

Preparation

Details, page samples, and sample wireframes will be uploaded by the weekend

Opening a pull request

  • Please help us follow the best practice to make it easy for the reviewer as well as the contributor. We want to focus on the code quality more than on managing pull request ethics.
  • Single commit per pull request
  • For writing commit messages please check out the following blog post.
  • Follow uniform design practices. The design language must be consistent throughout the app.
  • The pull request will not get merged until and unless the commits are squashed. In case there are multiple commits on the PR, the commit author needs to squash them and not the maintainers cherrypicking and merging squashes.
  • If you don't know how to squash commits, please watch the following video.
  • If the PR is related to any front end change, please attach relevant screenshots in the pull request description

Submitting an issue

If you are submitting a new issue please follow the below template

  • Provide a general summary of the issue in the Title
  • Expected Behavior If you're describing a bug, tell us what should happen If you're suggesting a change/improvement, tell us how it should work

  • Current Behavior If describing a bug, tell us what happens instead of the expected behavior If suggesting a change/improvement, explain the difference from current behavior

  • Possible Solution Not obligatory, but suggest a fix/reason for the bug, or ideas how to implement the addition or change

  • Steps to Reproduce (for bugs) Provide a link to a live example or an unambiguous set of steps to reproduce this bug. Include code to reproduce, if relevant

  • Context How has this issue affected you? What are you trying to accomplish? Providing context helps us come up with a solution that is most useful in the real world

  • Your Environment Include as many relevant details about the environment you experienced the bug in

    • Version used:
    • Environment name and version (e.g. Chrome 39, node.js 5.4):
    • Operating System and version (desktop or mobile):
    • Link to your project:

Code review

  • At least one reviewer(mentor) have to approve the pull request before merging.