Contributor
daniel-rey

Extend and improve the CERNBox Notifications platform


Mentors
Hugo Gonzalez Labrador, javfg
Organization
CERN-HSF
Technologies
mysql, javascript, go, typescript
Topics
web, Notifications
Reva is the core of the CERNBox service. It is a middleware framework, providing interoperability between storage and application providers using a universal set of APIs. Currently, Reva’s notifications system is under development. In the next few weeks, a small set of actions in the notifications system will be launched, including • Notifying a user you shared a file/folder with them via email. • Notifying a user you uploaded a file to a folder they shared with you. I propose to improve this notifications center with several additions. The notifications would have a new settings option in which the user can primarily choose which MIME type and possibly file type he wants to receive notifications for. This is to be done with additions to the database schema, possibly designing a completely new schema. Also, there is major work to be done in the back-end system in order to fully support this feature, and of course lastly, in the front end - there needs to be work done on creating the settings window and parsing the user choices for the setting they want to choose. After this, another improvement can be done to the notifications center which is the ability to get metrics on certain data - in particular how many files/folders of a certain type or in general have been shared to this or by this user. There is mostly work on the front end to be done here designing the possible options in the settings to display this metric. But also work on accessing the database to get these metrics displayed to the user. Deliverables: The extension of the simple notifications into a notifications center in the UI, including settings for filtering the MIME type of the file • Documentation on the implementation, reusability, extensibility, and testability of the system, alongside a guide on how to use the UI. • This includes extensions of the current back-end architecture as well as extensions in the front-end UI. • A richer API system for notifications that include metrics analysis