Event/Task Reminder System


The Event/Task Reminder application helps to send reminder notifications to the available email or mobile set by a user in the system.
The architecture of this application is based on a 3-tier architecture and some batch programs which execute asynchronously.


Please find the functional requirement below –

User Role:

  • Admin
  • User
  • Guest User


Guest/Logged-In User

  • Navigate the Application Home Page
  • Read Application Functionality(s)
  • Create a Profile
  • Create an Event/Task for the notification
  • Modify an Event/Task
  • Delete an Event/Task
  • List of Event/Task Information
  • View Event/Task Details
  • Set Global notification preferences like Email, SMS, WhatsApp, etc


  • Register a user
  • Update the profile for a specific user
  • Review Event/Task created
  • Review failed records
  • Execute the Batch to send the notification manually

Non Functional

NFRs are a set of specifications that describe the system’s operational capabilities and constraints and attempt to improve its functionality. These are the requirements that outline how well it will operate including things like speed, security, reliability, data integrity, etc.

Performance and scalability

“Performance is an indication of the responsiveness of a system to execute any action within a given time interval, while scalability is the ability of a system either to handle increases in load without impact on performance or for the available resources to be readily increased.

Portability and compatibility

Degree of effectiveness and efficiency with which a system, product or component can be transferred from one hardware, software or other operational or usage environment to another.

Portability, in relation to software, is a measure of how easily an application can be transferred from one computer environment to another. A computer software application is considered portable to a new environment if the effort required to adapt it to the new environment is within reasonable limits.

Compatibility can refer to interoperability between any two products: hardware and software, products of the same or different types, or different versions of the same product. In IT, compatibility means programs, devices and systems interact with each other without issues arising.

Reliability, maintainability, availability

hen it comes to products and services, reliability, availability, and maintainability are often grouped as desired attributes. It happens so often that they have their own grouped acronym: RAM.

The terms are often used to describe hardware and software products. It’s important to remember that each word has its distinct meaning that usually runs the risk of getting lost. To make sure that each product and service we build ticks every box, we need to understand each term on its own.

The definition of reliability is the probability of a piece of hardware or software performing its intended purpose well and for a certain amount of time. Of course, different systems will have their own criteria for what counts as ‘working well’ and different amounts of time expected.

Availability refers to the probability that the hardware or software in question is operational and ready to use. It’s also often known as the time it’s expected to function. 

Maintainability refers to how much time or resources are required to fix failures. It’s also known as serviceability and essentially measures how easily something can be repaired.


Security is protection from, or resilience against, potential harm (or other unwanted coercion) caused by others, by restraining the freedom of others to act. Beneficiaries (technically referents) of security may be of persons and social groups, objects and institutions, ecosystems or any other entity or phenomenon vulnerable to unwanted change.


Localization is the adaptation of a product or service to meet the needs of a particular language, culture or desired population’s “look-and-feel.” A successfully localized service or product is one that appears to have been developed within the local culture.


Usability refers to the quality of a user’s experience when interacting with products or systems, including websites, software, devices, or applications. Usability is about effectiveness, efficiency and the overall satisfaction of the user.

Event/Task Notification Microservices

Please find all possible microservices for this application below –

Database Schema

These database entities (tentative information) store the user and their activities in the relational database. We can use Postgre or MySQL databases. Please find the Entity Relationship Diagram (ERD) with brief information below –
This entity stores the user information like user ID, name, date of birth, etc.
The user will have one or more addresses so we have to store the address information in Addresses Entity. We can use one more table to reference the address type.
This entity stores the message sent to the user from the application. It will store messages text and other critical information.
This entity stores information related to user activities. It will refer to other entities like Use_Activity, Activity Type, and Webpage.

These database entities store the user and their respective event or tasks.
One user can create multiple events and set reminders.
This entity stores the user information.
This entity stores the event information.
This entity stores the reminder information.
Event Template
This entity stores the event template information.

These database entities store the user and their respective payment information.

Please add your comments to add more information to the blog.

Leave a Reply

Your email address will not be published. Required fields are marked *