<img alt="" src="https://secure.leadforensics.com/150446.png " style="display:none;">
Go to top icon

Creating Static Notifications with Custom Templates

Mandar Kamate Nov 18, 2015

Technology

Notifications have become very common place today. Notification systems provide a way of sending messages to users whenever certain changes happen. For instance, whenever a user registers to a portal or forgets his password.

notifications.jpg

Typical notification systems basically comprise of three channels for notifications - Email, SMS and Web notifications. Each of them can be integrated with the main application where notification will be sent whenever an action is performed on the module or feature. For example, an application has a registration module, where a user is allowed to enter his details and register to the portal to use its features. Upon successful registration, he/she gets the notification as soon as the registration is successful. Notifications can also be sent for the ‘Forgot Password’ feature. New notifications can also be configured to allow one of Email/SMS/Web notifications or all of them at the same time.

On a recent project, we implemented notifications in two different ways:

  • Instant or One-Time notifications – Basically a one-time notification is sent instantly when a user performs some action (ex. Forgot password notification).
  • Notifications processed by a job (reminder notifications) – These are the notifications picked up and sent by a recurring job, which send notifications such as reminders (ex. For subscription payment, reminders can be configured and sent)

The notifications generated on any action, are inserted to the Notification Queue table with update template along with flags.

The notification system we worked on during the project consisted of the following important sections:

1. Notification Configuration - Here, a user sets the configuration settings w.r.t. modules and its actions. Only the admin user can access this page. For example, admins can set priority of notification, whether email, SMS or web notifications have to be sent for particular module, action combination (e.g. Registration-Submit) and other such actions.

notification_config.png

Admins can modify the template and other settings from this screen by clicking on the edit functionality in the last column. Once you modify the screen, you see a screen similar to the one below:

notification_config_2.jpg

2. Notification Manager - This is an automated system where, once the end user is done with some activity, the system will send the appropriate notification based on configuration for that particular Module/Feature-Action. E.g. once a user registers to a portal successfully, a notification saying “HI <user>, Welcome to the portal” will be displayed. Again notification may be sent by ‘Email’, ‘SMS’ or ‘Web’, based on the configuration settings.

Web Notifications - For Web Notifications, whenever any user logs in, unread notifications count will be displayed on top (as a bubble on the bell icon). When a user clicks on the bell icon, the list of Read/Unread notifications will be displayed in Normal/Bold font styles respectively. Users can also delete notifications i.e. the notifications will be removed from the UI list. The notification will stay in the database with ‘IsWebDeleted’ flag.

notifications_3.jpg

3. Console Application or Service- This application/service will refer to the Notification Manager assembly (.dll) and trigger at regular intervals using Windows task scheduler.

 

  • DB structure
    • Table_Notification_Config
notifications_4.png
    • Table_Notification_Queue
notifications5.png

e-Zest is a leading digital innovation partner for enterprises and technology companies that utilizes emerging technologies for creating engaging customers experiences. Being a customer-focused and technology-driven company, it always helps clients in crafting holistic business value for their software development efforts. It offers software development and consulting services for cloud computing, enterprise mobility, big data and analytics, user experience and digital commerce.