GNU socialgnusocial

Summer of Code 2022

About the programme

Check the programme page to learn more about the programme and on how to apply.

GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase.

If you would like to know how is it like to be a GSoC student at GNU social, read this blog post!

Summer Stipend

We have applied as an organisation to Google Summer of Code 2022, we are still waiting for the result. In 2020 we've had a successful student supported by The Freaks Club, you can reach thndrbvr and try your luck, or look for another sponsor.

Ideas

Below is a list of ideas you can work on this Summer at GNU social. You should pick one (or mix a couple) of them and talk on IRC about it. The community will help you understanding what has to be done so you can put a good proposal together.

Warning: We do not accept projects of 175h workload.

Improve GNU social v3 form handling

Description: Our current forms have their controller embedded in the UI construction.

Outcomes: Processing on dedicated controller, splitting logic from UI.

Skills required: PHP

Skills preferred: Twig

Mentors: Hugo Sales, Eliseu Amaro

Difficulty: Hard

Workload: 350h

XMPP Plugin

Description: - Add XMPP Notifications queue; - Add reply to note via XMPP; - and Add XMPP chat.

Outcomes: This would be a port of the v2 XMPP plugin with improved functionality.

Skills required: PHP, XMPP

Mentors: Diogo Cordeiro, Alexey Sorokin, Joshua Judson Rosen

Difficulty: Hard

Workload: 350h

Integrate GS cache into Symfony and Configurable Autoloader

Description: We have a custom cache system which is not understood by Symfony. Improve our autoloader so it can be configurable instead of just loading everything.

Outcomes: Symfony profiler can give useful information concerning cache. Decide which plugins should be loaded on runtime; Replace components with local ones; Replace templates with local ones.

Skills required: PHP

Mentors: Hugo Sales, Diogo Cordeiro

Difficulty: Hard

Workload: 350h

Old school image manipulation without JS

Description: Pure HTML + CSS solutions for Image-related manipulation

Outcomes: Provide an easy Twig macro interface for image manipulation, this includes: cropping images without requiring client side JS; adding annotations to images; and a plugin to have a XMP interface background animaton using SVGs.

Skills required: CSS2.2, PHP

Skills preferred: Twig

Mentors: Eliseu Amaro

Difficulty: Medium

Workload: 350h

Bring back GNU social v2 themes

Description: Restore that nostalgic and old-fashioned UI.

Outcomes: Have a heartwarmed community finding you wholesome.

Skills required: Semantic HTML, CSS2.2, Orca

Mentors: Eliseu Amaro

Difficulty: Medium

Workload: 350h

Reliability Engineering

Description: Create unit tests for components and plugins.

Outcomes: Review the whole unfully tested codebase.

Skills required: PHP, PHPUnit

Mentors: Hugo Sales, Diogo Cordeiro, Eliseu Amaro

Difficulty: Medium

Workload: 350h

Bring back LinkRedirectPlugin, URLShortnerPlugin, HappeningsPlugin, PollPlugin, and SMSPlugin

Description: Restore these functionalities that were available in v2.

Outcomes: The user can set a url shortner, create events, and create polls.

Skills required: PHP, CSS2.2, HTML

Mentors: Diogo Cordeiro, Eliseu Amaro

Difficulty: Medium

Workload: 350h