E-Democracy Pages Wiki

Search Wiki

 

Tools

 

Difference between revisions of "Google Summer of Code 2013"

From E-Democracy.org

(GroupServer API)
(Extracting Evaluation Data)
 
Line 21: Line 21:
 
== Extracting Evaluation Data ==
 
== Extracting Evaluation Data ==
  
'''Skills Needed or Learned:''' Python; MVC; Zope; GroupServer; Basic Data Processing and Analysis; API Creation; Git
+
'''Skills Needed or Learned:''' Python; MVC; Zope; GroupServer; Basic Data Processing and Analysis; API Creation; Git; Buildout
  
 
Like any other organization, we need to make decisions based on data. There is quite a bit of data stored in the E-Democracy platform about how our users interact with the platform and each other. However, most of this data is not currently accessible outside of database queries. This means that a lot of this data is not available for decision making. A module that makes it easy to request data about our dozens of groups or thousands of members would be hugely valuable to our staff and researchers.
 
Like any other organization, we need to make decisions based on data. There is quite a bit of data stored in the E-Democracy platform about how our users interact with the platform and each other. However, most of this data is not currently accessible outside of database queries. This means that a lot of this data is not available for decision making. A module that makes it easy to request data about our dozens of groups or thousands of members would be hugely valuable to our staff and researchers.

Latest revision as of 10:04, 18 April 2013

Welcome

Hello Summer of Code students! We are happy that you are interested in applying to work with E-Democracy this summer. If you are completely new to E-Democracy, you can check out the About Page for more information about the organization and our mission. You can also check out the Developing for E-Democracy page for background on E-Democracy's forum platform and resources for developers.

Below are a few projects that we feel will make great Summer of Code projects. We also encourage you to submit an idea of your own that fits our mission of building communities using online communications. Finally, we have a set of other Technology Project Ideas that you may want to look through for more inspiration for your project application.

Project Ideas

Mobile Posting

Skills Needed: Mobile Development (mobile optimized HTML5/CSS/JavaScript; Python; MVC; Zope; GroupServer; possible Android or iOS app programming); Git

In an effort to make online neighborhood dialog more accessible, we are looking to create a great posting experience for our mobile users. We are especially interested in making the process of posting a photo from a mobile device as smooth as possible.

In this project, you will implement a front end that easily allows users to make a post from their mobile device. The frontend should be optimized to look good and function well on a smartphone, and should have the specific purposes of allowing a user to select which group to post to, select which thread to post to (or a new thread), author a post, add a photo from their device's storage or camera (if they choose), and submit the post/photo.

The initial version of this front end will be developed using HTML 5 and JavaScript. After developing this page, OS specific apps might be developed that rely heavily on the webpage. The goal of the OS apps is to allow a user to delay transmitting their post until they are on a Wi-Fi network, and add Post to E-Democracy as an option to the OS photo sharing menu.

See Mobile App for a more thorough description of this idea and its background.

Extracting Evaluation Data

Skills Needed or Learned: Python; MVC; Zope; GroupServer; Basic Data Processing and Analysis; API Creation; Git; Buildout

Like any other organization, we need to make decisions based on data. There is quite a bit of data stored in the E-Democracy platform about how our users interact with the platform and each other. However, most of this data is not currently accessible outside of database queries. This means that a lot of this data is not available for decision making. A module that makes it easy to request data about our dozens of groups or thousands of members would be hugely valuable to our staff and researchers.

In this project, you will implement the View and Controller portions of a module that retrieves data about the groups, topics, posts, and users of E-Democracy. This module will allow a user to set boundaries on the data retrieved (e.g. posts in certain groups over a certain month) and will provide the user with a CSV for download. Time permitted, an API can be created to export this data in JSON for consumption by other programs, and a simple data preview display can be created.

For more information on the broader evaluation project that this is a part of, see Evaluation Dashboard

GroupServer API

Skills Needed or Learned: Python; MVC; Zope; GroupServer; API Creation; Git; Buildout

There is a lot of content available on E-Democracy, and a lot of potential uses of E-Democracy as a communications platform across devices and platforms. However, the platform that E-Democracy is built on does not provide an API for accessing or interacting with groups, topics, and posts.

This project overlaps a bit with the Extracting Evaluation Data project, except that it focuses on the content of groups/topics/posts/users, and is solely concerned with creating an API.

See GroupServer API for more details on this project.

A good plan for this project is to follow the order presented in the GroupServer API page. The first phase of the project should involve providing access to content that does not require authentication. The next phase of the project should allow for a client to authenticate via the API. The third phase of the project should allow for adding content based on the authentication of the client.

Web and VoIP Blockclub Prototype

Skills Needed or Learned: VoIP Implementation; Git; Software Prototyping; Drupal (maybe)

We have a dream that neighbors should be able to share community and emergency information on whatever technology they are most comfortable with. Imagine a service where your neighbor could call a number and record a message for her nearest 50 neighbors. Then you could listen to her message on a website, and respond via a text message. Or, imagine a service where you could call a number to immediately alert your nearest 50 neighbors of an emergency like a robbery.

In this project, you will help create that dream.

This project is about creating a prototype/MVP of the above idea that we can test in one or two neighborhoods. You will need to create a site that allows users to post messages to a group via their computer and via audio based phone. Users should also be able to read/listen to these posts via their computer or phone, and be able to register via their computer or phone. Block captains/administrators should also have the ability to add users to the group via CSV upload.

As the most experimental idea, this project will require significant leadership from the student. We recommend that anybody who applies for this project should have a well-developed plan for how they will create the prototype described above. Our own research has found interesting projects in Drupal (particularly MyVoxBox and VozMob) that can be the foundation for a prototype, but you should feel free to submit a proposal using any technology that you are confident can be used to create the above prototype in roughly 10 weeks. We also would love to hear your thoughts on how to extend this idea to make it more accessible and a stronger tool for building community (there is a conspicuous lack of text messaging above).

Check out Electronic Block Clubs for a lot more info on this idea, including a draft system architecture for a more sophisticated multi-media group messaging system.

 

Home - Mobile - Forums - Wiki - Blog - About - Help - Contact - People - Donate - Rules - Archives