Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zrougamed/dynamic-notification-system

A Go-based dynamic notification scheduler. Supports multi-channel notifications (Slack, Email, SMS, Webhook), flexible intervals, and database-driven job scheduling with execution logging.
https://github.com/zrougamed/dynamic-notification-system

automation database-integration extensible golang job-scheduler modular-design notification notification-system opensource scheduler slack-integration sms webhook

Last synced: 1 day ago
JSON representation

A Go-based dynamic notification scheduler. Supports multi-channel notifications (Slack, Email, SMS, Webhook), flexible intervals, and database-driven job scheduling with execution logging.

Awesome Lists containing this project

README

        

# πŸ› οΈ Dynamic Notification System

Welcome to the **Dynamic Notification System**! πŸš€ This project was created to address the growing need for a scalable, flexible, and multi-platform notification solution in modern applications. πŸŽ‰

[![Go Build and Release](https://github.com/zrougamed/dynamic-notification-system/actions/workflows/go.yml/badge.svg)](https://github.com/zrougamed/dynamic-notification-system/actions/workflows/go.yml)
![Linux Support](https://img.shields.io/badge/platform-linux-green.svg?logo=linux&style=flat-square)
![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)
![Go Version](https://img.shields.io/badge/go-1.23-blue?logo=go&style=flat-square)
![GitHub release](https://img.shields.io/github/v/release/zrougamed/dynamic-notification-system?style=flat-square)
![Maintained](https://img.shields.io/badge/maintained-yes-green.svg?style=flat-square)

## 🌟 Why We Built This

In today's fast-paced digital world, businesses and individuals need to communicate across a variety of platforms, protocols, and channels. Whether it's sending notifications to chat applications, email, SMS, or push notifications, the complexity of managing these systems can become overwhelming.

This project simplifies that process by providing:
- A dynamic plugin-based architecture to integrate **any notification platform** seamlessly.
- Support for scheduling jobs and automating notifications. ⏰
- A unified interface for managing notifications, ensuring consistency and simplicity. 🎯

## ✨ Features

- **Multi-Platform Support**: Easily add new platforms like Slack, Discord, Telegram, Email (SMTP), Push Notifications, SMS, Signal, Rocket.Chat, and more! 🌐
- **Dynamic Plugin Loading**: Add new channels without restarting the application. Just drop in a new plugin! πŸ”Œ
- **Configuration-Based**: Define enabled platforms and their credentials in a simple `config.yaml` file. πŸ“
- **Scheduler Integration**: Automate notifications using scheduled jobs with support for recurring tasks. ⏳
- **Scalable and Modular**: Built with scalability in mind, making it suitable for businesses of all sizes. πŸ“ˆ

## πŸ’Ό Business Value

- **Cost Efficiency**: Avoid vendor lock-in by integrating multiple notification providers dynamically.
- **Improved Communication**: Reach your customers, team, or stakeholders wherever they are.
- **Customizable and Extensible**: Tailor the system to meet your unique business requirements.
- **Rapid Development**: Focus on your core business logic without worrying about notification infrastructure. πŸš€

## 🀝 Call for Collaboration

We believe in the power of open-source and the amazing things we can achieve together! ❀️ Here’s how you can contribute:
- Add support for new notification platforms or protocols. πŸ”§
- Improve the core architecture for performance and scalability. ⚑
- Share your ideas, feedback, or use cases to shape the future of this project. πŸ’‘
- Report bugs and submit pull requests to make this project even better. πŸ›

### Let's build something amazing together! 🌍 Feel free to reach out or open an issue to get started. πŸ™Œ

## πŸ“„ Getting Started

1. Clone the repository:
```bash
git clone https://github.com/zrougamed/dynamic-notification-system.git
```
2. Build and run the application:
```bash
go build -o notification-system main.go
./notification-system
```
3. Define your configuration in `config.yaml`:
```yaml
channels:
slack:
enabled: true
webhook_url: "YOUR_SLACK_WEBHOOK_URL"
```

## πŸ›‘οΈ License

This project is licensed under the [MIT License](LICENSE). Feel free to use, modify, and distribute as you wish. 🌟

---

🌟 **Star this repository** if you find it helpful, and don’t forget to share it with others who might benefit! ⭐