Skip to content

huseynovvusal/sos-notification-microservice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

72 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🚨 SOS Notification Microservices

A modern microservices-based emergency alert system for sending SOS notifications to trusted contacts.

πŸ“‹ Overview

SOS Notification Microservices is a backend application designed to help users notify their trusted contacts in emergency situations. The system enables users to:

  • πŸ”” Send SOS alerts to pre-registered trusted contacts
  • πŸ‘₯ Manage trusted contacts for emergency notifications
  • πŸ“± Deliver notifications through multiple channels (email, SMS)
  • πŸ”„ Track and resolve emergency situations

This project demonstrates modern microservices architecture, event-driven design, and real-time notification capabilities using industry-standard technologies.

πŸ—οΈ Architecture

The system is built using a microservices architecture with the following components:

Note: This project is under active development. New features and improvements are continuously being added.

Core Services

  • πŸ”‘ Auth Service: Handles user authentication and authorization
  • πŸ‘€ User Service: Manages user profiles and trusted contact relationships
  • πŸ†˜ SOS Service: Processes emergency requests and coordinates notifications
  • πŸ“² Notification Service: Delivers alerts through multiple channels
  • 🌐 API Gateway: Provides a unified entry point for client applications (planned)

πŸ› οΈ Tech Stack

Backend

  • TypeScript - Statically typed JavaScript
  • Node.js - JavaScript runtime
  • Express - Web framework
  • gRPC - High-performance RPC framework

Databases

  • PostgreSQL - Relational database for structured data
  • MongoDB - NoSQL database for document storage
  • Redis - In-memory data store for caching

Messaging

  • RabbitMQ - Message broker for distributed systems

DevOps & Infrastructure

  • Docker - Containerization platform
  • Docker Compose - Multi-container orchestration
  • Elasticsearch - Search and analytics engine
  • Kibana - Data visualization dashboard
  • Logstash - Data processing pipeline

Development Tools

  • Prisma - Next-generation ORM for TypeScript and Node.js
  • ESLint - Static code analysis tool
  • Prettier - Code formatter

πŸ” Features

Current Features

  • βœ… User authentication and authorization
  • βœ… User account management
  • βœ… Trusted contact relationships
  • βœ… Basic notification framework
  • βœ… Service communication via gRPC
  • βœ… Event-driven architecture with RabbitMQ
  • βœ… Centralized logging with ELK stack

Planned Features

  • πŸ”œ API Gateway
  • πŸ”œ Complete SOS request lifecycle management
  • πŸ”œ Real-time status updates
  • πŸ”œ Analytics and reporting

πŸ’» API Documentation

gRPC Services

The system uses gRPC for service-to-service communication. Proto definitions are available in the services/shared/proto directory:

  • auth_service.proto: Authentication service definitions
  • user_service.proto: User management service definitions
  • notification_service.proto: Notification service definitions
  • sos_service.proto: SOS request management service definitions

REST API (Planned)

REST API documentation will be available when the API Gateway service is completed.

πŸ“Š Project Structure

sos-notification-microservice/
β”œβ”€β”€ docker-compose.yml          # Main Docker Compose configuration
β”œβ”€β”€ elk-stack/                  # Elasticsearch, Logstash, Kibana config
β”œβ”€β”€ services/                   # Microservices
β”‚   β”œβ”€β”€ auth-service/           # Authentication service
β”‚   β”œβ”€β”€ notification-service/   # Notification service
β”‚   β”œβ”€β”€ shared/                 # Shared libraries and proto definitions
β”‚   β”œβ”€β”€ sos-service/            # SOS management service
β”‚   └── user-service/           # User management service
└── volumes/                    # Persistent data volumes

πŸ› οΈ Project Status

This project is currently in active development, with approximately 55-60% of the planned features implemented. Key components that are fully functional include:

  • βœ… Authentication and authorization
  • βœ… User and contact management
  • βœ… Basic notification infrastructure
  • βœ… Service communication via gRPC
  • βœ… Database integrations

Features under development:

  • πŸ”„ SOS Service implementation
  • πŸ”„ Enhanced notification capabilities
  • πŸ”„ API Gateway integration

This project will continue to evolve with new features, optimizations, and improvements over time.

πŸ™ Acknowledgements

  • This project was created as a learning exercise and portfolio showcase
  • Inspired by real-world emergency alert systems
  • Built with modern microservices best practices

⭐ Like this project? Give it a star on GitHub! ⭐

About

🚨 SOS Notification β€” A microservices-based notification system built with gRPC, RabbitMQ, and Node.js for reliable and scalable message delivery.

Topics

Resources

Stars

Watchers

Forks

Contributors