BDCT custom Shoutem extension gives admins the ability to create and send notifications to users subscribed to notification groups or subgroups.
The client contacted us via Shoutem support to create an extension for them, for their approx. 20 existing apps that have over 1,000 users, through which an admin/moderator could create and send notifications to users subscribed to notification groups or subgroups.
We broke down the project to the following features:
- Create and send the notifications
- Schedule notification with a cancel option
- Create groups and subgroups
- Notification detail screen
- Notification inbox
- Attach files to a notification
- Link URL to a notification
- Deeplink inclusion to a notification
- Login (required for admins/moderators)
- Roles creation
- Assign moderators to groups and subgroups
- Subscribe to groups and/or subgroups
- Statistics on how many people have opened the notification
- Statistics on how many notifications have been sent in a certain period
The first thing we had to do is the backend that would handle the notifications, user creation and group, and subgroup creation.
For the base of the backend, we’ve used the Metronic UI kit.
The functionality of the backend was coded using the Laravel PHP framework through which we have defined user and group creation, roles and notification handling.
For push notification delivery we’ve used the OneSignal cross-platform push notification service, meaning it sends push notifications to both iOS and Android via the same protocol. OneSignal also offers a wide range of statistical data, such as how many notifications have been sent, successfully sent, received, successfully received and opened. This statistical data is beautifully presented with the Metronic UI kit, that also allows you to set a statistics period.
Using the AWS deployment platform we have created the server instance (EC2), file storage (S3) and database (RDS).
For the mobile side of the development, we’ve used the latest technology in mobile development – React Native framework. React Native allowed us to build the app extension natively for both Android and iOS, meaning it would function on Android and iOS devices. Using React Native there’s no need to use two different frameworks to build apps for multiple operating systems.
After the whole development of the backend and the mobile app extension we’ve got a fully functional backend that communicates with the app, receiving notifications the admins/moderators want to send and distributing them to users subscribed to certain groups/subgroups, ability to create new groups/subgroups and assign moderators to them via created roles and detailed statistical graphs.
As for the app, we made a simple, user-friendly, notification creator with all the listed features and ability to schedule a notification, an option center where the regular users can subscribe to desired groups/subgroups. The moderators get access to the notification creator through registration, which then notifies all admins and moderators via email, and when the new moderator gets approved, they receive a push notification and an email confirming they have been given the moderator role.