Improve UX of the Notifications Module: GSoC'24 Project Report

Published on by Dhanus

Category: gsoc

Tags: gsoc notifications new-features

Google Summer of Code, OpenWISP UX Improvements to the Notifications Module

As my Google Summer of Code (GSoC) journey with OpenWISP draws close, I want to reflect on my gratifying experience. First and foremost, I would like to extend my deepest gratitude to my mentors, Federico Capaono (nemesifier) and Gagan Deep (pandafy). Their unwavering support, insightful feedback, and expert guidance have been invaluable throughout this summer. Working under their mentorship has been an incredibly enriching learning experience, helping me better understand open-source development.

About the Project

The OpenWISP Notifications Module provides email and web notifications for the OpenWISP platform. Its primary goal is to enable other OpenWISP modules to notify users about significant events occurring within their network. Offering timely and relevant notifications helps users stay informed about critical activities and changes within their managed infrastructure.

For a complete overview of its features, refer to the features section of the OpenWISP documentation.

My Work on Improving the User Experience (UX)

This summer, I focused on Improving the User Experience (UX) of the Notifications Module. My work involved consolidating notifications into single emails to prevent inbox flooding, implementing global preferences for easier notification management, and developing a REST API for administrators. Additionally, I created a user-friendly interface for managing notification preferences, including direct links in email footers and an unsubscribe option. These enhancements aimed to streamline notification management, reduce inbox clutter, and significantly improve the overall user experience on the OpenWISP platform.

Features Implemented

Batch Email Notifications to Prevent Email Flooding

Batch Email Summary

Batching email notifications helps manage the flow of emails sent to users, especially during increased alert activity. By grouping emails into batches, the system minimizes the risk of emails being marked as spam and prevents inboxes from rejecting alerts due to high volumes.

Key aspects of the batch email notification feature include:

  • When multiple emails are triggered for the same user within a short time frame, subsequent emails are grouped into a summary.
  • The sending of individual emails is paused for a specified batch interval when batching is enabled.

Pull Request: Batch email notifications #276

Notification Preferences Page

Notification Preferences Page

The Notification Preferences Page allows users to manage their notification settings through a user-friendly interface. This enhancement gives users greater control over how they receive notifications, enabling them to disable notifications for all organizations or selectively enable notifications for specific organizations. The page also offers administrators to manage notification preferences for other users.

Key aspects of the notification preference feature include:

  • Global Preferences: Users can disable notifications for all organizations or keep notifications enabled for specific organizations only.
  • REST API: Administrators can manage the notification preferences of other users via a dedicated API.
  • Dedicated View: A user-friendly UI to manage all notification preferences in one place.

Pull Request: Notification Preferences Page #290

Other Contributions

In addition to my main project, I made several other contributions to the organization, improving various features, fixing bugs, and enhancing the overall functionality of the modules. Here are some of the additional PRs I worked on:

OpenWISP Notifications

OpenWISP Controller

OpenWISP Monitoring

My Experience

My GSoC journey with OpenWISP has been an incredible learning experience. I gained valuable skills, particularly in writing tests and reusing existing solutions, which improved my code's efficiency and reliability. The mentors played a huge role in helping me refine my work, offering insightful feedback that enhanced my coding skills and deepened my understanding of open-source development.

What's Next?

As my GSoC journey concludes, I'm excited to keep contributing to OpenWISP and other open-source projects. I plan to focus on fixing bugs, enhancing features, and tackling new challenges. I also look forward to helping new contributors to get started in their open-source journey.