Navaneeth-Sharma / notification-sys

a kafka-redis based notification system

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Notification System

System Design

image

Features active

  • Restrict user level requests to send notification
  • Email
  • SMS
  • Custom App handler
  • Analytics

Tech Stack Used

  • Confluent Kafka to setup Server and module
  • Redis to store and count the number of requests each day
  • FastAPI
  • SMTP
  • Docker to containerize it and make each thing a different service

How to run this locally

  1. Add .env files for each service and take .env.example for reference and change accordingly

  2. Run Docker Compose to start local the kafka and redis servers and 3 different services docker-compose up

  3. send a post request to localhost:3000 with body

        {
            "title": "thenav",
            "description": "Awesome !!This is a cool notification",
            "tags": ["hiTag"],
            "userMail": "mainuser@email.com",
            "emailReciever": "youwanttosend@email.com"
        }

The max count is 10 per day for each title for now.

About

a kafka-redis based notification system


Languages

Language:Python 86.3%Language:Dockerfile 13.7%