From Berkman Klein Google Summer of Code Wiki
Jump to navigation Jump to search
This page is for an old project that is not be part of Google Summer of Code currently. If you are a student looking for projects to get involved with we suggest you check out the projects linked to from the main page of this wiki.


Teem, an app focused on increasing the participation and sustainability of commons-based peer production communities (e.g. wikis, makerspaces), open online communities (networks, open organizations) or social movements (social centers, collectives). After doing intensive social research and prototype testing, we are aware of the main needs of the different roles within a community (following the classical 1-9-90 rule: core, occasional collaborators and users), and the tools they typically lack (related to management and internal organization). The app is grounded on these findings to reduce the frustrations of all participants and increase participation (90s=>9, 9s=>1)... while providing a kind-of project management tool for communities (but informal/liquid/open to fit the context) together with a work-space with collaborative edition (like a google-doc) and a group chat (like a whatsapp/telegram group). You have a quick presentation of this in http://tiny.cc/teem-slides and the current web-app in http://teem.works There is also an Android app encapsulating the web-app: http://tiny.cc/teemapp Code in https://github.com/P2Pvalue/teem

Ideal candidate:

Teem is interested in proactive candidates with experience in Javascript, HTML and CSS, and ideally experience with the AngularJS framework. Qualities that we would welcome are initiative, creativity, and interest/experience with communities and/or social movements. You may check Github’s open issues and the project ideas below to have an overall ideas of the possible evolutions of Teem. Of course, GSoC candidates are encouraged to adapt our proposals to their interests and we are very open to new ideas or unexpected evolutions of chosen ones.

Project ideas:

Reputation-based or gratitude-based immaterial rewards

Participants in collaborative communities are sometimes rewarded in several ways, e.g. reputation (e.g. Ebay), badges (e.g. Stack Exchange), thanks (e.g. Open Subtitles). We would like to experiment with different types of rewards, in order to see how participants react to them. We are especially interested in exploring the “thanks” as a reward. This may derive in a research article eventually.

Knowledge recommended: Javascript (ideally AngularJS), HTML and CSS.

Mentors: Samer shassan@cyber.law.harvard.edu, Antonio antoniotenorio@ucm.es

Meeting minutes tool

Meetings are crucial in collaborative communities, but there does not exist a proper tool that provides an appropriate solution to taking meeting minutes and its multiple issues: sorting the agenda, prioritize certain points, curating a good record after several meetings, filtering tasks and agreements to communicate them in an efficient way to people who couldn't attend… Teem has already a real-time collaborative space (“pad”, from etherpad) ready for each working group, and the project is already being extended for the specific use of taking minutes in face to face meetings. This project will build onto the (yet to be developed) tools for face to face minute taking tools, adding features, and expanding it in a direction of interest by the GSoC student.

Knowledge recommended: Javascript (ideally AngularJS), HTML and CSS.
Mentors: Samer shassan@cyber.law.harvard.edu, Antonio antoniotenorio@ucm.es

Update Teem to cutting-edge technologies

Web technologies evolves in a frenetic speed, and what was state of the art technologies 3-4 years ago might be deprecated today. Far from just blind following fancy fashions, some of the innovations deserve to be considered in order to bring stability, scalability and sustainability to Teem. In this project, the GSoC student will acquire knowledge of cutting-edge technologies. We are considering three technology update candidates: 1) push mobile notifications without GCM, 2) SwellRT and 3) Angular 2. The GSoC project proposal may consider one, two, or the three of them.

  1. Push notifications in Android have traditionally relied in the privative and centralized service Google Cloud Messaging (GCM) (nowadays renamed Firebase Cloud Messaging). This has been an important issue for the Free/Open Source Software communities and advocates, as it forces all Android apps to communicate their activity to Google. Recent efforts have been done by other projects to provide free/open source working alternatives for mobile push notifications, the most recent and famous being Signal’s anouncement https://github.com/WhisperSystems/Signal-Android/commit/1669731329bcc32c84e33035a67a2fc22444c24b. Teem would benefit from this changes by providing a more Free/Open Source Software and privacy friendly tool that can be endorsed by organizations such as the Free Software Foundation or the F-Droid repositories. In addition, if done general enough, it would facilitate the path to other tools willing to make the same effort. This transition difficulty is a-priori considered as medium-hard.
  2. One of the most critical dependencies Teem has is SwellRT, the distributed real-time collaboration framework we developed for Teem. SwellRT has evolved a lot and nowadays has a new API, more developer friendly. However, Teem is still using the old deprecated version, and an update to the new version is needed. This transition difficulty is a priori considered to be easy-medium.
  3. Teem’s code is developed with Angular, a JavaScript framework which a few months ago proposed a new version (Angular 2) which is not backwards compatible. This idea project would study the adequacy and viability of migrating Teem to Angular 2 and to update Teem if the benefits are clear. There are multiple tutorials to migrate from Angular to Angular 2, which would facilitate the process. This transition difficulty is a priori considered as medium, although with high investment of time/effort.

Knowledge recommended: Javascript (ideally Angular), HTML and CSS. For GCM, Android Java. Mentors: Samer shassan@cyber.law.harvard.edu, Antonio antoniotenorio@ucm.es

Integrate Teem with third-party apps

Internet applications do not exist as independent islands but rather as a part of a live ecosystem where everything is connected. Teem aims to be the best tool for communities to collaborate and share their projects. In order to become so, it has to be seamlessly integrated with existing communities tools and workflows. As an example of a success case, Slack has become the chosen chat tool for many groups due to their wide integration options.

Teem can be extended in many ways to provide an interconnected and smooth experience for communities. Some integrations ideas are:

  1. Providing context information about links (e.g. like Facebook or Telegram integrate inserted links, recognizing it as a video, a piece of news, a document...).
  2. Sharing tasks and sentences from Teem’s projects in Social Networks (e.g. as Medium blog posts sentences can be shared in Twitter).
  3. Integrate with other collaborative project management tools used by communities such as Trello by sharing the tasks and their state across tools.

Despite these, other integrations with third-party apps could be explored by the project. Knowledge recommended: Javascript (ideally Angular), HTML and CSS. Mentors: Samer shassan@cyber.law.harvard.edu, Antonio antoniotenorio@ucm.es