Skip to content

1584 implement db notification and refactor notification logic#1624

Open
shubhammahure wants to merge 31 commits intodevfrom
1584-implement-db-notification-and-refactor-notification-logic
Open

1584 implement db notification and refactor notification logic#1624
shubhammahure wants to merge 31 commits intodevfrom
1584-implement-db-notification-and-refactor-notification-logic

Conversation

@shubhammahure
Copy link
Contributor

@shubhammahure shubhammahure commented Nov 10, 2025

Description

This PR has a combine implementation for "In-app Notification System" and "Email Notification System" which allows users to initiate/receive notification whenever project(application) or engine related any activity occurs.

As User story 1 & User story 2, 3 this implementation has covered five use cases for notification feature.

  1. When new user is added to the project or/and engine
  2. When user requests access for the project or/and engine
  3. When user’s role changes
  4. When project/engine member approves new user request or permission change
  5. When project/engine member declines new user request or permission change

As per the use cases, we have called notification utility method CreateNotification() across different ProjectUtility as well as EngineUtility methods.

For Email Notification three use cases are coverd, as follows

  1. when any user raise a project/engine access request
  2. when any member approves project/engine access request
  3. when any member updates SMSS file

Email notification will be send to authors of those project/engine

Changes Made

For In-app Notification:

  1. Implemented Notification Database integration by enhancing SMSSWebWatcher to check config and load the DB file, creating NotificationDbUtils to connect (It contains all the utility methods to perform operations) and initialize the new schema, adding NotificationOwlCreator to validate or recreate the OWL structure, updating DBLoader to verify the database connection at startup, and creating the NOTIFICATION table to store all notifications.

  2. Created PollNotificationReactor: This reactor returns number of new notifications for logged in user from Notification database table.

  3. Created FetchNotificationReactor: This reactor returns all the notifications for the logged in user from Notification database table. (New Notifications+ Read Notifications+ Unread Notifications)

  4. Created MarkNotificationReadReactor: This reactor is responsible to update “Read Notifications” in Notification database table. This reactor accepts notificationId & updates ‘Read’ status of the notification.

  5. Created DeleteNotificationReactor: Using logged in user, this reactor deletes single or multiple notification from the Notification database table for that given user.

NOTIFICATION table structure :

notification updated rows

For Email Notification:

  1. For email notification, added 3 helper methods in EmailUtility Class for sending email notification
  2. Added three html email templates for project access approval, engine access approval, SMSS file update

How to Test

For In-app Notification:

  • To test In-app notification feature, we need front-end UI, here is the front-end branch - link
  • Working video of notification feature
485259853-426eb3a0-26e4-4989-8576-fc8b84dc11cd.mp4

For Email Notification:

  • To test the functionality locally, I used MailPit and added credentials in social.Properties file.

  • Working video of email notification feature:

emailNotificationDemo1.mp4

@github-actions
Copy link

@CodiumAI-Agent /describe

@github-actions
Copy link

@CodiumAI-Agent /review

@github-actions
Copy link

@CodiumAI-Agent /improve

@shubhammahure shubhammahure marked this pull request as draft November 13, 2025 13:45
@shubhammahure shubhammahure marked this pull request as ready for review November 18, 2025 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement DB Notification and Refactor Notification Logic

3 participants