Google Summer of Code 2015 Ideas Page

Gina Trapani edited this page Feb 16, 2015 · 2 revisions
Clone this wiki locally

ThinkUp has applied to be a mentor organization in Google Summer of Code 2015!

Potential GSoC students can review this list of possible ThinkUp projects to get some ideas.

This is just a suggested list – if you have a great idea that isn’t described here, don’t be shy about proposing it. Student applicants can tackle a project either listed on this page or submitted to us for approval.

Create new, rich ThinkUp insights and improve existing insights.

In the context of ThinkUp, an insight is one of the individual modules in ThinkUp’s main stream, which tells an interesting narrative about a facet of ThinkUp’s data. See an example ThinkUp stream here. An example insight is a message like “17 weeks till @jack reaches 100,000 followers at his current growth rate.”

To apply for this project, propose 6 new insights you’d like to add to ThinkUp’s stream. You must submit images using ThinkUp’s Insight Creator in your proposal.

Insight prompts:

  • ThinkUp wants to help people find more meaning from their activity on social networks. What new and interesting insights can ThinkUp surface for users? Build new pluggable insights that will show up in the ThinkUp stream.
  • Artistic or expressive new kinds of ThinkUp insights. Instead of charts & graphs or numbers-based insights, could we look at ThinkUp data through the lens of poetry or linguistic analysis? What deeper connections could be exposed through code?
  • Design new ways to display ThinkUp insights visually using the Google Charts API, D3, or other visualization engines.
  • Enhance or replace existing insights with better visualizations and different ways of exploring the data. Right now ThinkUp often shows straightforward presentations of data from its database, but these could be made much more elaborate, with animations or time series or interactive displays.

Insights are discrete plugin code files which perform calculations on ThinkUp’s existing data sets. Students would be expected to create 1 to 2 new insights (with tests and documentation) per week, about 6-8 before midterm evaluations, and another 8-12 before final evaluations.

Create a ThinkUp Android or iOS app with push notifications about new insights.

This project has two parts:

1. Create a new plugin which sends push notifications of new insights to a cloud messaging service which can notify listening clients.
2. Build mobile app which alerts ThinkUp users when they have new insights via push notifications.

Port ThinkUp’s test suite from SimpleTest to PHPUnit.

ThinkUp’s current test suite is built on SimpleTest. This project includes:

Upgrade ThinkUp’s view templates to Smarty 3.

See this ticket

Create backend and frontend performance profiling and tests.

ThinkUp has a simple SQL query profiler built into it already. How can we expand it to identify problematic queries on an ongoing basis and speed them up?

  • Using large, publicly-available datasets, set up automated performance tests which identify non-performant SQL queries during the development process.
  • Set up front-end performance tests which optimize ThinkUp’s use of JavaScript and CSS to make the speediest mobile and desktop experience possible. Are there particular ways that Bootstrap or jQuery interact with mobile browsers which may be slowing down ThinkUp?

To apply for this project, tell us about your experience optimizing webapps on the frontend and backend. What tools can we use to performance-test and automate those tests for future use?