A modern microservices-based emergency alert system for sending SOS notifications to trusted contacts.
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.
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.
- π 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)
- TypeScript - Statically typed JavaScript
- Node.js - JavaScript runtime
- Express - Web framework
- gRPC - High-performance RPC framework
- PostgreSQL - Relational database for structured data
- MongoDB - NoSQL database for document storage
- Redis - In-memory data store for caching
- RabbitMQ - Message broker for distributed systems
- Docker - Containerization platform
- Docker Compose - Multi-container orchestration
- Elasticsearch - Search and analytics engine
- Kibana - Data visualization dashboard
- Logstash - Data processing pipeline
- Prisma - Next-generation ORM for TypeScript and Node.js
- ESLint - Static code analysis tool
- Prettier - Code formatter
- β 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
- π API Gateway
- π Complete SOS request lifecycle management
- π Real-time status updates
- π Analytics and reporting
The system uses gRPC for service-to-service communication. Proto definitions are available in the services/shared/proto directory:
auth_service.proto: Authentication service definitionsuser_service.proto: User management service definitionsnotification_service.proto: Notification service definitionssos_service.proto: SOS request management service definitions
REST API documentation will be available when the API Gateway service is completed.
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
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.
- 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! β