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.
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