Document Owner | |
---|---|
Document Status | Draft |
Intern Working on this Project | |
Mentors | |
Source Code | https://github.com/ad-os/incubator-fineract |
Project Summary
- Enable generic way of sending notifications - these notifications should be capable of being delivered via the Community App, via the Android app for field officers or Android self-service app, via SMS, or via Email.
- Mingle Actions into the notification - To allow the user to directly act upon the alert directly from the notification (i.e. approve a client).
Approach for designing a generic notification system
The designing of the notification system will be done in two parts :-
Notification generation and storage
- Notification Delivery
How the system knows when to generate a notification
Let us start with the standard pub-sub(publication-subscription) model:
There is an event (like new Loan Request by Loan Officer) which is broadcasted.
There is an event (like new Loan Request by Loan Officer) which is broadcasted.
- The listener will now do something - for example, send an email to the Branch manager.
This part has to be async and it can achieved by implementing message queues. Read about them here.
How to generate a notification
A listener then generates a notification. The notification will have the following model :
Subject --> Object --> Action --> Actor
Subject - The user who needs to be notified
Object - The object on which action happened
Action - The action that resulted in this notification
Actor - Who did it
All the notifications can fit into this model. Now for our standard branch manager - loan officer interaction the notification may look like
Notify [User 322] a [new loan application] was [created] by [User 432]
subject object action actor
How to show notifications to the user
//To be done