Development/Summer of Code/2024/MetaBrainz

From MusicBrainz Wiki
Jump to navigationJump to search

The MetaBrainz Foundation is a non-profit that believes in free, open access to data. It has been set up to build community maintained databases and make them available in the public domain or under Creative Commons licenses.

The projects listed here do not relate to any one *Brainz.

Getting started

(see also: Getting started with GSoC)

Ideas

MetaBrainz-wide notifications system

Proposed mentors: lucifer/mayhem
Languages/skills: Python/Flask/Postgres
Estimated Project Length: 350 hours.
Difficulty: Hard
Expected Outcomes: A system to show notifications to users on-site and in emails

Right now we have no means of letting users know when something happened in their MeB community (read: all projects). For example, just in ListenBrainz we have the following use cases. In order to keep people interested in the project, we should be sending notifications to users when things happen:

  • They have a new follower
  • A track was recommended to them personally.
  • When a playlist was created for them.
  • A YIM, monthly YIM or monthly stats are ready for a user.

There are probably more things for which we need to sending notifications, but you get the idea. Ideally such a system would set reasonable defaults for new users and then allow them to customize the settings to their own needs. Ideally the user could choose if they wish a certain notification to be sent at all and if so, if it should be sent immediately or in a digest. The user should also choose the digest frequency: None, daily, weekly.

We have sketched more detailed requirements and implementation plans in the past. You should join our IRC channel to start discussion on this project.

Note: This is a very hard project and we're only going to select candidates who are very proficient with Python/Flask and Postgres.

Matrix Room chatlogger

Proposed mentors: lucifer
Languages/skills: Python/Flask/Postgres or Node/Typescript/Postgres
Estimated Project Length: 350 hours.
Difficulty: Easy
Expected Outcomes: A chatlogger for our matrix rooms

We have recently decided to migrate from IRC to matrix for communication. We have BrainzBot (a fork of BotBotMe), an IRC based bot that reads all the messages and logs them to a Postgres database. These logs are displayed on chatlogs.metabrainz.org. We have a functioning IRC-matrix bridge so BrainzBot chatlogging continues to work fine, but it would be preferred to have a matrix-based version of the bot eventually. Since we self host our matrix homeserver where a lot of the room related data is stored, it would also be interesting to explore if we can directly serve chatlogs using its existing database. In addition to chatlogging, BrainzBot has a few other commands that would need to be accommodated in this new bot.