22 Summer of Code 2017 Ideas List
Erlend Sogge Heggen edited this page 2017-03-16 13:37:00 -05:00

Introduction

Discourse is a 100% open source discussion platform built for the next decade of the Internet. Our software works as a mailing list, a discussion forum, and a long-form chat room. Read more about our project at: meta.discourse.org

Important Reading for Prospective Student Applicants:

Summer of Code Project Ideas

PLUGIN: Integration with OpenCollective

OpenCollective is a service that enables open source projects to receive regular donations from their fans, users or companies that want to sponsor development. Essentially a "Patreon for Open Source". Discourse already has an official plugin for Patreon, so there's already a great example project to learn from.

Specs

  • Research OpenCollective API and explore its possibilities
  • Integrate OpenCollective with Discourse groups, matching emails
  • Grant custom Discourse badge/title to OpenCollective supporters
  • Display OpenCollective info in profiles

Stretch goals:

  • Could we continuously sync up OpenCollective accounts against a usergroup? (which could have access to VIP categories and things like that).
  • Would it be possible to separate supporters into multiple groups, based on the amount they're contributing every month?

Discuss: Open a new topic to start discussing this project!

For a private conversation with mentors, send an email to team@discourse.org.

Further reading

PLUGIN: Gitter integration

Announce new Discourse topics on your Gitter channel. Post to Discourse via Gitter.

Discuss here: https://meta.discourse.org/t/gitter-post-notifications-to-chat-post-transcripts-to-forum/51247

For a private conversation with mentors, send an email to team@discourse.org.

Further reading

PLUGIN: Convert GIFs to MP4/WebP

GIFs can be extremely bandwidth intensive. This could be mitigated by building a lightweight service that converts GIFs to the .mp4 or .webp (for supported browsers) format.

Specs

  • Grab all .gif links and process them.
  • Convert GIF to MP4
  • Put the MP4 file in front of the GIF in the rendered post.

Discuss here: - https://meta.discourse.org/t/plugin-idea-image-optimization-with-webp/36470/2

For a private conversation with mentors, send an email to team@discourse.org.

Further Reading

PLUGIN: Manually curated topic summaries

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. Topic summaries offer a less destructive solution.

Specs

  1. Click moderator wrench
  2. Click select posts and select the ones you want to show in the summary
  3. Click "Create Summary"

This forces a summarised view of this topic by default. You get pretty much the exact same effect as you get from deleting posts, except the "public record" of helpful replies is maintained.

To view all replies, you simply click the "Show all posts" button.

  • Feature is only accessible to Trust Level N and above.
  • Enabled per-category

Discuss here: https://meta.discourse.org/t/plugin-manually-curated-topic-summaries/39477 (spec)

For a private conversation with mentors, send an email to team@discourse.org.

Further Reading

PLUGIN: Topic list tabs for user-customizeable saved filters

On some forums with a large variety of content, users will be most interested in topics that fall into a subset of the categories or tags available. When this becomes the rule, rather than the exception, forum admins can configure the home page to be the category listing rather than the /latest page. But then users must choose which door to go down - and they may be interested in seeing a listing from multiple categories at once.

Specs

Discuss here: https://meta.discourse.org/t/topic-list-tabs-for-user-customizeable-saved-filters/40953

For a private conversation with mentors, send an email to team@discourse.org.

Common event system for chatrooms

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.

This idea needs a proper spec. If you're interested in pursuing this idea, ask @eviltrout on Meta for more information.

Mute user's posts

Discourse already supports muting users, but it will only prevent them from sending you PMs. An extended version of muting would add an option to hide a muted users post from view.

For a private conversation with mentors, send an email to team@discourse.org.

Further reading

"Make your own" with #pr-welcome

We have 100+ topics marked with the #pr-welcome tag. Most of these tasks are not big enough on their own to merit a 3 month project, but with a combination of these tasks you'll have a stacked TODO-list in no time.

For a private conversation with mentors, send an email to team@discourse.org.

  • Find tasks that match your interests and skill set. Try look for tasks that are related somehow, e.g. tasks that have to do with groups.
  • Ask follow-up questions in the topics of the various tasks to get a clear understanding of the problem at hand.
  • Collect a bundle of tasks that you'll have a high chance of completing within 3 months.
  • Add a few more tasks as stretch goals.
  • Not all pr-welcome tasks are properly specced out. Make sure you use your preparation period to ask questions about your selected tasks until each task is properly specified.

Some examples below.

User Data Bundle

Tasks that involve authentication and user data.

For a private conversation with mentors, send an email to team@discourse.org.

UX Bundle

Tasks that involve a lot of user experience work, and will benefit from some prior UX experience as some tasks require further specification.

For a private conversation with mentors, send an email to team@discourse.org.

Email Bundle

Anything that touches on email.

For a private conversation with mentors, send an email to team@discourse.org.

Search Bundle

Search all the things.

For a private conversation with mentors, send an email to team@discourse.org.