In this blog post, I would like to write a few things about the project I am working on currently. Following is the brief description about the project.
Introduction:
The growth of Internet in the last few years has been extremely overwhelming. Along with it, the growth of smartphone market too has increased tremendously. Through these, the communication between people and organizations has become relatively very easier and efficient. However, the delivery and the traceability of the messages is not known to the sender through most of the message delivery applications. Though applications like WhatsApp provide delivery confirmation and the traceability (read/unread status) of the messages, they require user’s mobile number which definitely hampers one’s privacy. In the case of other group communication applications, most of them require user’s email ids and they do not provide any delivery confirmation nor traceability. So, in order to overcome these difficulties we have proposed a new web application where the user’s mobile number is not required but we provide them with delivery confirmation and traceability. By using this application, we will be leveraging the smartphone market and also avoid unnecessary spamming to the users with the messages.
Technologies:
This section provides a brief overview of the entire technologies used to build this project.
Back End: PHP (Laravel Framework): Laravel is a free, open-source PHP web application framework for the development of web applications following the model–view–controller (MVC) architectural pattern.
Front End:
Angular Js- This is an open-source web application framework mainly maintained by Google and by a community of individual developers and corporations to address many of the challenges encountered in developing single page applications. It aims to simplify both the development and the testing of such applications by providing a framework for client-side model-view-controller (MVC) and model-view-view-model (MVVM) architectures, along with components commonly used in Internet applications.
Angular Material: The Angular Material project is an implementation of Material Design in Angular.js. This project provides a set of reusable, well-tested, and accessible UI components based on the Material Design system.
Google Cloud Messaging:
Google Cloud messaging: (GCM) is a service that enables developers to send data from servers to both Android applications or Chrome apps and extensions.
The service provides a simple, lightweight mechanism that servers can use to tell mobile applications to contact the server directly, to fetch updated application or user data. The service handles all aspects of en-queuing of messages and delivery to the target application running on the target device.
Simple email Service: Amazon SES is an email platform that provides an easy, cost-effective way for you to send and receive email using your own email addresses and domains. For example, you can send marketing emails such as special offers, transactional emails such as order confirmations, and other types of correspondence such as newsletters. Building a large-scale email solution is often a complex and costly challenge for a business. You must deal with infrastructure challenges such as email server management, network configuration, and IP address reputation.
Simple Queue Service: Amazon Simple Queue Service (Amazon SQS) offers reliable and scalable hosted queues for storing messages as they travel between computers. By using Amazon SQS, you can move data between distributed components of your applications that perform different tasks without losing messages or requiring each component to be always available.
Databases: MySQL in RDS (Relational Database Systems) of Amazon Web Services. Deployed in the cloud.
Web Application Work Flow:
Creating an Organization:
- Login with admin account
- Go to organizations page (top right corner)
- To create an organization, click on “+” button and name your organization
Creating Groups:
- If you want your users to be categorized, follow the below instructions else go to “Add Users”
Click on “Groups” button and create groups by clicking on “+”
4.1 If you have user email IDS, click on respective “Groups” button and add users with their mail IDs. An invitation will be sent to their email IDs
4.2 If you do not have user email IDs, click on “Links” button, check “Include in Groups” box, create a link and publish to users
(Users in the groups by default are the organization users)
Add Users:
- If you want all your users under the organization without categorizing,
5.1 If you have user email IDS, click on “Users” button and add the users with their mail IDs. An invitation will be sent to their email IDs
5.2 If you do not have user email IDs, click on “Links” button, create a link and publish to users
Send message:
- To send a message, click on “Notices” button and click “+”, key-in subject and description and push the message
Assigning user roles:
- To assign roles to the added users, click on “Admins” button and click “+”, search for the user email ID and assign the responsible role.
Detailed Analytics:
- To check the group users or re-invite the users, go to respective groups and click on the “Users” label
- To check the read stats, go to respective groups and click on the “Users” label
- To check the user details like which group member, notices sent and role of the user click “Users” and search with the registered email ID.
The project has used different cloud features like Google cloud messaging, Simple Queue Service, Simple email Services from the Amazon Web services. The application development kits like Android SDK for mobile application development are used as part of the project.
Using this application we can mass communicate with organizations and it also helps us to reach the message instantly to the targeted audience. The application can be used with different industries like Retail industries to send out their offers and release latest information about their products, Educational industries to share information to student’s parents, faculty and staff and to the local clubs and communities to send out their messages to their members etc.
You can check out the application at Notyces.com
Scope for Future Work:
So far in this application, only the analytics of the messages or notices sent are detailed. Once the log is generated that a user has clicked on the message, a function gets triggered and the status of the read status of the message is changed from unread to read. However, there is no chance for a user to acknowledge that he has read the message. So, in the future work, we can add an additional feature for acknowledging the message.
The system only allows one administrator for a given organization. Instead, we can create the system with multi-level administrators such that under a single organization, different groups can be maintained with different administrators and a different set of users in each group. With these additional features, the application would be even more sophisticated.
References:
- Google Cloud messaging
- Amazon Web Services Introduction Guide
- Laravel Framework Documentation
- SQS and SES Developer Documentation