# List of project ideas for Google Summer of Code 2016

**URL:** https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791
**Category:** Feature
**Created:** [31 januari 2016 om 11:47 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791 "2016-01-31T11:47:51Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [31 januari 2016 om 11:47 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/1 "2016-01-31T11:47:51Z")

</div>

Please post your links to any appropriate GSoC ideas here. If you’re not familiar with GSoC, briefly put it’s an event run by Google wherein they pay students to work on an open source project for 3 months.

> **[Google Summer of Code](https://summerofcode.withgoogle.com/)**
>
> Google Summer of Code is a global program focused on bringing more developers into open source software development.

If you have a feature on your wishlist that fits the scope of a 3-month student project, share it here!

> [@downey](#):
>
> One tip from our org as a 10-year GSoC veteran: Take any project scope that a seasoned open source developer could do in 3 months, then cut that scope in half. A typical student should be able to get that done in the allotted time. 🙂
> 
> (Of course, having some “bonus point” items is also always a good idea.)

If you have an idea that hasn’t been discussed before, please start a new topic about it first and then link to it from here. Feel free to share multiple links in one reply.

### GSoC Projects

> [@Webhook for Discourse events](https://meta.discourse.org/t/webhook-for-discourse-events/39808):
>
> I’m writing up the specs for this in order to facilitate [GSoC 2016 application](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791)Specs A single page at “/admin/webhook” for admins to manage their webhooks Admins will need to provide a Payload URL which the webhook service will POST the event payload to. Webhook will POST all events to the Payload URL by default. We should allow admins to select individual events which they require. A Webhook can be activated and deactivated. Logs of the POST request as well as the response should be kept and …

> [@Plugin: Feature voting separated from Likes](https://meta.discourse.org/t/plugin-feature-voting-separated-from-likes/38772):
>
> Continuing the discussion from [Feature to allow uservoice/getsatisfaction suggestions and voting](https://meta.discourse.org/t/feature-to-allow-uservoice-getsatisfaction-suggestions-and-voting/19812): “Post likes” and “Feature likes” don’t overlap well. If a company makes a popular Android app, the first person to type up a 70-character long “Make an iOS port” topic could quickly garner 1000 Likes. In this case the number of likes does not accurately reflect the quality of the post nor the user’s community participation. The flip side of this is that [users might reserve their likes](https://meta.discourse.org/t/is-liking-a-post-too-intimidating/37695). The motivat…

> [@Canned responses to help moderators encourage civilized discourse](https://meta.discourse.org/t/canned-responses-to-help-moderators-encourage-civilized-discourse/16680):
>
> So one of the great things about Discourse is it’s designed to help encourage actual civilized discourse. That’s a great goal, but in addition to software, it depends on watchful and tactful mentors. I think a lot of moderators don’t know how to (in words) tactfully discourage unhelpful behavior, and encourage helpful behavior. What would people think about having something like “canned responses” for moderators? These could either be sent to people via private message or by replying to a post. …

**Common event system for chatrooms**

> [@eviltrout](#):
>
> Ideally we’d have a set of plugins for various chatrooms, like discourse-hipchat, discourse-slack, etc, that would all expose the same event system.
> 
> Then we could do code like DiscourseEvent.trigger(:notify\_chat, “some chatroom text”) and have it work regardless of your chat software.

---

<div class="post-metadata">

### Author: ![downey](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/downey/32/166878_2.png) [@downey](https://meta.discourse.org/u/downey)
#### Post date: [31 januari 2016 om 15:54 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/2 "2016-01-31T15:54:32Z")

</div>

One tip from our org as a 10-year GSoC veteran: Take any project scope that a seasoned open source developer could do in 3 months, then cut that scope in half. A typical student should be able to get that done in the allotted time. 🙂

(Of course, having some “bonus point” items is also always a good idea.)

---

<div class="post-metadata">

### Author: ![tgxworld](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tgxworld/32/106117_2.png) [@tgxworld](https://meta.discourse.org/u/tgxworld)
#### Post date: [31 januari 2016 om 16:14 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/3 "2016-01-31T16:14:01Z")

</div>

Two related topics which I think would make a good project.

[https://meta.discourse.org/t/event-hooks-for-discourse/8296](https://meta.discourse.org/t/event-hooks-for-discourse/8296)  
[https://meta.discourse.org/t/webhooks-push-notifications/8770](https://meta.discourse.org/t/webhooks-push-notifications/8770)

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [12 februari 2016 om 16:02 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/4 "2016-02-12T16:02:17Z")

</div>

Deadline is 19th of February. Better hurry up and post your favourite features before then!

Some new additions:

> [@Try bot, a bot that teaches staff about Discourse](https://meta.discourse.org/t/try-bot-a-bot-that-teaches-you-about-discourse/26004):
>
> I think it would be nice to have a bot, somewhat like slackbot that you can use to learn and interact with on [https://try.discourse.org](https://try.discourse.org) Interacting with trybot would be achieved either by replying directly to a trybot post or mentioning @trybot Some example interactions I thing would be handy: @trybot can you reply to me in 20 seconds Trybot posts a direct reply to my post in 20 seconds @trybot can you create a new topic Trybot posts a new topic on try @trybot what is a badge trybo…

> [@Who would prefer a standard wysiwyg to markdown?](https://meta.discourse.org/t/who-would-prefer-a-standard-wysiwyg-to-markdown/31340):
>
> I just saw an interview with Michael Pryor of trello: At one point he says: We added markdown in Trello which in retrospect, was a mistake because it’s a developer centric feature in a non developer focused product. We overcame it by adding guidance on how to use markdown within the app, but users sometimes still get confused. I’m curious to know what the feeling out there is about the use of markdown in Discourse. Am I the only one who thinks discourse would appeal to many more people i…

(Focusing on “see who’s writing”🙂  
[https://meta.discourse.org/t/presence-features-for-forums/12](https://meta.discourse.org/t/presence-features-for-forums/12)

> [@Plugin idea: Image optimization with WebP](https://meta.discourse.org/t/plugin-idea-image-optimization-with-webp/36470):
>
> Inspired by this: When pictures are uploaded or locally downloaded, Discourse generates a WebP version of that image which it’ll use if it detects a compatible browser. Should probably only use WebP for thumbnails. Expanded images should always be the source file. Maybe the best approach would be a lightweight “standalone service” the way Discourse’s avatar generator works.

> [@Plugin: Manually curated topic summaries](https://meta.discourse.org/t/plugin-manually-curated-topic-summaries/39477):
>
> Related topics: [Plugin Idea: Thread Updates](https://meta.discourse.org/t/plugin-idea-thread-updates/7973)[Admin/mod ability to insert a post wherever](https://meta.discourse.org/t/admin-mod-ability-to-insert-a-post-wherever/39043)[Summarize this Topic → Write a Summary for this Topic](https://meta.discourse.org/t/summarize-this-topic-write-a-summary-for-this-topic/25460) Example use case: Problem statement Some topics, like a call-for-bug-reports or a new Howto, will receive a lot of replies that go stale shortly thereafter because the appropriate fixes/edits were applied as a response. When closing or marking as solved doesn’t make sense, the best solution to date is to delete these replies. The act of del…

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [12 februari 2016 om 21:05 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/5 "2016-02-12T21:05:23Z")

</div>

Presence feature is the only one there that I could get excited about.

That or the chat plugin in general.

---

<div class="post-metadata">

### Author: ![downey](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/downey/32/166878_2.png) [@downey](https://meta.discourse.org/u/downey)
#### Post date: [12 februari 2016 om 21:09 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/6 "2016-02-12T21:09:22Z")

</div>

> [@codinghorror](#):
>
> Presence feature is the only one there that I could get excited about.

Sounds like someone is volunteering to be a mentor for that one 😉

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [12 februari 2016 om 21:35 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/7 "2016-02-12T21:35:45Z")

</div>

Would you be interested in anything to do with creating a HTML mode for people with slow and expensive internet access? A possible specification for something like that would be Facebook’s criteria for their ‘Free Basics’ platform. [https://developers.facebook.com/docs/internet-org/platform-technical-guidelines](https://developers.facebook.com/docs/internet-org/platform-technical-guidelines)

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [12 februari 2016 om 21:36 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/8 "2016-02-12T21:36:22Z")

</div>

Sure that’d be solid. We’ve discussed the before here in a few topics. Essentially it is an enhancement to our web crawler rendering.

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [12 februari 2016 om 21:55 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/9 "2016-02-12T21:55:09Z")

</div>

I’d love to see @tgxworld translate plugin get some polish, in particular to allow manual translation into languages underrepresented on the internet like burmese and manual improvement of automatic translations. I could get behind this as a mentor, maybe together with @tgxworld?

[https://meta.discourse.org/t/discourse-translator/32630/58?u=tobiaseigen](https://meta.discourse.org/t/discourse-translator/32630/58)

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [12 februari 2016 om 22:16 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/10 "2016-02-12T22:16:03Z")

</div>

Well @tgxworld [works for Discourse](http://blog.discourse.org/2015/12/discourse-team-grows-by-50/) so that’d just be an official project.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [13 februari 2016 om 11:10 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/11 "2016-02-13T11:10:55Z")

</div>

Well it also means that if he manages to keep his hands off of it for the months leading up to GSoC actually starting, he would be the perfect mentor for such a polishing project.

Personally I was super psyched when I rediscovered @sam’s Try Bot suggestion. I can think of tons of cool stuff we could do with a bot on Meta, Try and onboarding for our hosted service. Also it’s an easy project to scope out since stretch goals are practically infinite.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [13 februari 2016 om 11:15 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/12 "2016-02-13T11:15:34Z")

</div>

That’d be really cool indeed. [Google AMP](https://www.ampproject.org/) is another spec to look at (and possibly more relevant, considering the recent backlash against Free Basics as of late).

Would love to see a fleshed out spec for it!

@riking played around with that a bit. Here are some relevant topics:

> [@Add a get-option to enable noscript view of a page](https://meta.discourse.org/t/add-a-get-option-to-enable-noscript-view-of-a-page/33823):
>
> If you watch a discourse forum with javascript disabled, you get a read-only view of that page. could you add a link to the read-only view at the bottom? so you can for example print the whole page or translate it with google,… also a functioning noscript view of a search result should be easy to implement with this option. At the moment it doesn’t work without js like this: [https://meta.discourse.org/search?q=something](https://meta.discourse.org/search?q=something)

> [@Make Discourse play nice with the Wayback Machine](https://meta.discourse.org/t/make-discourse-play-nice-with-the-wayback-machine/34579):
>
> I’ve noticed that when archiving Discourse topics using [archive.org](http://archive.org), the CSS is mangled. Here is an [example](https://web.archive.org/web/20151014020610/https://meta.discourse.org/t/core-dump-when-running-the-mybb-import-script/34332/9):

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [13 februari 2016 om 11:34 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/13 "2016-02-13T11:34:39Z")

</div>

Recently, I’ve been thinking about ways to make the topic list page more relevant to particular users on forums with a wide array of activity.

One topic on the subject is here:

> [@Facebook-like Newsfeed tab (As a means to better mix topics from high-volume and low-volume categories)](https://meta.discourse.org/t/facebook-like-newsfeed-tab-as-a-means-to-better-mix-topics-from-high-volume-and-low-volume-categories/38789):
>
> I was thinking about adding a category on a new forum that could risk being very noisy. The basic idea is similar to what is described here: [Wanted: Discourse Hacker News Plugin](https://meta.discourse.org/t/wanted-discourse-hacker-news-plugin/37620) My concern with adding such a category is that it could dominate the latest page if people post too much. But I don’t want to discourage posting anything interesting here. And I’m not sure that I want to completely hide the category from latest, because that could also damage its usefulness. So the first thought tha…

Another approach would be to allow _users_ to customize what tabs appear for topic lists, and what is shown within them (via a search query or a selected list of categories).

For instance, I don’t really need to see the Bugs or Features tabs here on Meta, so I might hide them. Or I might want to create a tab for Ideas which would include #features #Contribute > UX and another one for Issues which would include #Contribute > Bug and #Support. I might also want to add a Following tab that includes topics that are `in:watching or in:tracking`.

(I swear there is a topic exploring this idea, but couldn’t find it…)

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [13 februari 2016 om 11:42 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/14 "2016-02-13T11:42:57Z")

</div>

I fully agree that alternative display modes is well worth pursuing. I don’t think it could be part of GSoC though,

1. because there’s no solid spec for it yet (and I wouldn’t be able to draft it myself), and
2. it’s a very complicated task, most likely only suitable for core developers (I’m having second thoughts about adding WYSIWYG to the list for that same reason).

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [13 februari 2016 om 11:46 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/15 "2016-02-13T11:46:00Z")

</div>

I’ll volunteer to write up a spec for the user-customizable tabs. I don’t think it’s necessarily that complicated and may be doable as part of GSoC (but we can defer that discussion until there is a spec to review). I’ll keep the scope of what a first iteration might look like in mind as well.

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [13 februari 2016 om 19:39 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/16 "2016-02-13T19:39:53Z")

</div>

> [@erlend\_sh](#):
>
> That’d be really cool indeed. Google AMP is another spec to look at (and possibly more relevant, considering the recent backlash against Free Basics as of late).
> 
> Would love to see a fleshed out spec for it!
> 
> @riking played around with that a bit. Here are some relevant topics:

AMP is not ready for prime time. The most productive thing to do would probably be to take my branch and take out the AMP stuff, leaving just lean plain HTML.

Also, probably rename the trigger from `?amp` to `?nojs`.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [13 februari 2016 om 20:23 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/17 "2016-02-13T20:23:25Z")

</div>

> [@erlend\_sh](#):
>
> I was super psyched when I rediscovered @sam’s Try Bot suggestion. I can think of tons of cool stuff we could do with a bot on Meta, Try and onboarding for our hosted service. Also it’s an easy project to scope out since stretch goals are practically infinite.

Not a fan of chat bot unless we have a real chat function.

---

<div class="post-metadata">

### Author: ![erlend\_sh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/erlend_sh/32/119475_2.png) [@erlend\_sh](https://meta.discourse.org/u/erlend_sh)
#### Post date: [13 februari 2016 om 22:31 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/18 "2016-02-13T22:31:52Z")

</div>

3 posts were merged into an existing topic: [Try bot, a bot that teaches you about Discourse](https://meta.discourse.org/t/try-bot-a-bot-that-teaches-you-about-discourse/26004)

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [13 februari 2016 om 22:37 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/22 "2016-02-13T22:37:07Z")

</div>

It’s just hellishly complex to do natural language processing. That alone is a giant red flag for me.

And let’s compare:

> (typical discourse reply to a topic)
> 
> Hi this is DiscourseBot! Please upload an image and make it your logo!

with

> (full screen)
> 
> Welcome to Discourse! Please click the button (the only button that’s on the screen right now), to upload a logo for your forum.

I think the former is completely awful compared to a simple full screen setup wizard, to the point that I oppose it violently.

Anyway this gets into first run setup which is massively strategic for us this year, and there’s no way in hell I would outsource that. It’s deserving of a much deeper conversation far outside the scope of Google SoC.

---

<div class="post-metadata">

### Author: ![sam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sam/32/102149_2.png) [@sam](https://meta.discourse.org/u/sam)
#### Post date: [13 februari 2016 om 22:39 UTC](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791/23 "2016-02-13T22:39:42Z")

</div>

> [@codinghorror](#):
>
> and there’s no way in hell I would outsource that.

Yes, I completely agree with you here, let’s not add this to GSOC this is onboarding stuff that we want to build.

[Next page](https://meta.discourse.org/t/list-of-project-ideas-for-google-summer-of-code-2016/38791.md?page=2)
