Notification Center is an independently deployable component(microservice) intended for sending various types of notifications.It provides a common abstraction layer on top of the various notification types and tracks the status of the notifications.
- Getting Started
- Usage
- How to contribute
- Built with Dependencies
- Code of Conduct
- Authors
- Security Contact Information
- Support
- Troubleshooting
- License
- Announcements
- Acknowledgments
Notification center consists of below two components which are used for sending and managing the notification & alerts.
- notification-api
- notification-sp
To build the project in the local working directory after the project has been cloned/forked, run:
mvn clean install
from the command line interface.
The list of tools required to build and run the project:
- Java 17
- Maven
- Container environment
-
Install Docker on your machine by referring to official Docker documnentation to have a Container environment.
checkstyle.xml is the coding standard to follow while writing new/updating existing code.
Checkstyle plugin maven-checkstyle-plugin:3.2.1 is integrated in pom.xml which runs in the validate phase and check goal of the maven lifecycle and fails the build if there are any checkstyle errors in the project.
To run checkstyle plugin explicitly, run the following command:
mvn checkstyle:check
To run the tests for this system run the below maven command.
mvn test
Or run a specific test
mvn test -Dtest="TheFirstUnitTest"
To run a method from within a test
mvn test -Dtest="TheSecondUnitTest#whenTestCase2_thenPrintTest2_1"
The component can be deployed as a Kubernetes pod by installing Notification Center charts.
Links: Notification-Api Charts Notification-Sp Charts
Sequence diagram of Notification Center:
Notification Center component will be responsible for the below features,
- Provision notification templates.
- Send notification to the user via mobile PUSH, Email, SMS channels. user.
- Send notification to the vehicle (In Vehicle Messaging)
- Create notification for campaign
- Notification History - List of notifications.
- Notification History - Detail.
- Notification Group Preferences
- Notification User Preferences
- Provision notification grouping/entitlement.
- Call Center Integration.
- Support for Quiet time.
- Notification User Profile Using Webhook 2.0. Send notification using model/any vehicle attribute specific templates.
- Send notification using custom placeholders.
- Spring - Web framework used for building the application
- Maven - Build tool used for dependency management
- MongoDB - NoSQL document database
- Project Lombok - Auto-generates Java boilerplate code (e.g., getters, setters, builders)
- Apache Common - Java Library
- Jackson - Reading JSON Objects
- Morphia - A Java tool for mapping Java objects to MongoDB documents
- Logback - Concrete logging implementation used with SLF4J
- slf4j - Logging facade providing abstraction for various logging frameworks
- Mockito - Mocking framework for testing
- JUnit - Unit testing framework
-
parent pom: version of other modules and 3rd-party library used in notification center
-
streambase jar
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>streambase</artifactId>
</dependency>- streambase test jar
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>streambase</artifactId>
<type>test-jar</type>
<scope>test</scope>
</dependency>- cache-enabler
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>cache-enabler</artifactId>
</dependency>- nosql-dao
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>nosql-dao</artifactId>
</dependency>- utils
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>utils</artifactId>
</dependency>- transformers
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>transformers</artifactId>
</dependency>-
sp/pom:
-
services-common
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>services-common</artifactId>
</dependency>-
api/pom:
-
api-common
<dependency>
<groupId>org.eclipse.ecsp</groupId>
<artifactId>api-common</artifactId>
</dependency>Please read CONTRIBUTING.md for details on our contribution guidelines, and the process for submitting pull requests to us.
Please read CODE_OF_CONDUCT.md for details on our code of conduct, and the process for submitting pull requests to us.
![]() Pankaj Behere π π |
![]() Lavin Motwani π π |
The list of contributors who participated in this project.
Please read SECURITY.md to raise any security related issues.
Contact the project developers via the project's "dev" list - ecsp-dev
Please read CONTRIBUTING.md for details on how to raise an issue and submit a pull request to us.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
All updates to this component are present in our releases page. For the versions available, see the tags on this repository.


