https://github.com/usmantahirr/infobip-notification-service
A robust TypeScript-based service for sending email and SMS notifications using Infobip's API. Features email notifications with file attachments, SMS messaging, input validation, rate limiting, OpenAPI documentation, and request logging. Built with Express.js, TypeScript, and Zod for type safety.
https://github.com/usmantahirr/infobip-notification-service
api email-service express infobip nodejs notifications open-api sms-service swagger typescript
Last synced: 6 months ago
JSON representation
A robust TypeScript-based service for sending email and SMS notifications using Infobip's API. Features email notifications with file attachments, SMS messaging, input validation, rate limiting, OpenAPI documentation, and request logging. Built with Express.js, TypeScript, and Zod for type safety.
- Host: GitHub
- URL: https://github.com/usmantahirr/infobip-notification-service
- Owner: usmantahirr
- License: mit
- Created: 2025-03-28T14:23:46.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-03-28T15:06:46.000Z (6 months ago)
- Last Synced: 2025-03-28T15:33:40.371Z (6 months ago)
- Topics: api, email-service, express, infobip, nodejs, notifications, open-api, sms-service, swagger, typescript
- Language: TypeScript
- Homepage: https://www.usmantahir.com/
- Size: 81.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Infobip Notification Service
A TypeScript-based service for sending email and SMS notifications using Infobip's API. This service provides a simple and secure way to integrate Infobip's messaging capabilities into your applications.
## 📚 Documentation
For detailed documentation, please visit our [Wiki](https://github.com/usmantahirr/infobip-notification-service/wiki):
- [Architecture Overview](https://github.com/usmantahirr/infobip-notification-service/wiki/Architecture-Overview)
- [API Documentation](https://github.com/usmantahirr/infobip-notification-service/wiki/API-Documentation)
- [Deployment Guide](https://github.com/usmantahirr/infobip-notification-service/wiki/Deployment-Guide)
- [Contributing Guidelines](https://github.com/usmantahirr/infobip-notification-service/wiki/Contributing-Guidelines)
- [FAQ](https://github.com/usmantahirr/infobip-notification-service/wiki/FAQ)## 🚀 Quick Start
1. Clone the repository:
```bash
git clone https://github.com/usmantahirr/infobip-notification-service.git
cd infobip-notification-service
```2. Install dependencies:
```bash
npm install
```3. Set up environment:
```bash
cp .env.example .env
# Edit .env with your Infobip credentials
```4. Start the development server:
```bash
npm run dev
```5. Send notifications using the API:
```bash
# Send SMS
curl -X POST http://localhost:3000/api/v1/notifications/sms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"recipient": "+1234567890",
"message": "Your verification code is: 123456"
}'# Send Email
curl -X POST http://localhost:3000/api/v1/notifications/email \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"recipient": "user@example.com",
"subject": "Welcome",
"message": "Welcome to our platform!"
}'
```## 🛠️ Tech Stack
- **Runtime**: Node.js with TypeScript
- **Framework**: Express.js
- **Validation**: Zod
- **Documentation**: OpenAPI/Swagger
- **Logging**: Winston
- **Security**: Helmet, CORS
- **API**: Infobip## 🔧 Configuration
Create a `.env` file with your configuration:
```env
# Application
NODE_ENV=development
PORT=3000# Infobip
INFOBIP_API_KEY=your_api_key
INFOBIP_BASE_URL=your_base_url
INFOBIP_SENDER_EMAIL=your_verified_sender_email
INFOBIP_SENDER_NUMBER=your_sender_number# Rate Limiting
RATE_LIMIT_WINDOW=60000
RATE_LIMIT_MAX_REQUESTS=100
```## 📦 Installation
1. Clone the repository:
```bash
git clone https://github.com/usmantahirr/infobip-notification-service.git
cd infobip-notification-service
```2. Install dependencies:
```bash
npm install
```3. Set up environment:
```bash
cp .env.example .env
# Edit .env with your credentials
```4. Start the service:
```bash
npm run dev
```## 🤝 Contributing
We welcome contributions! Please see our [Contributing Guidelines](https://github.com/usmantahirr/infobip-notification-service/wiki/Contributing-Guidelines) for details.
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🆘 Support
- [GitHub Issues](https://github.com/usmantahirr/infobip-notification-service/issues)
- [Documentation](https://github.com/usmantahirr/infobip-notification-service/wiki/Home)
- [API Reference](https://github.com/usmantahirr/infobip-notification-service/wiki/API-Documentation)
- Email: support@your-domain.com## 🙏 Acknowledgments
- Infobip for providing the messaging API
- Express.js for the web framework
- TypeScript for type safety
- Zod for runtime type validation
- All contributors to this project---
Built with ❤️ by Usman Tahir
Last updated: March 2025