Skip to content
MYNazir edited this page Feb 20, 2026 · 132 revisions

NotifyEngine - Pace University Capstone Project


NotifyEngine Logo

NotifyEngine

ML-Powered Notification Delivery Service with Adaptive Channel Routing

Website · Repository


Project Description

NotifyEngine is an intelligent notification routing service that learns from user behavior to automatically choose the best delivery channel (email, SMS, push, or in‑app) for every message. Designed for developers and product teams sending high‑volume notifications, it replaces static routing rules with an XGBoost ML model that adapts per‑user in real time.

Unlike developer tools like Courier, Knock, or Novu that rely on fixed priority rules, and enterprise platforms like Braze or MoEngage that cost $50K+/year and aren't developer-first, NotifyEngine offers a simple API with per‑user ML routing that continuously improves with every notification sent.

Key outcomes: Higher engagement rates, lower SMS spending, circuit breaker during provider outages, and no manual routing logic to maintain.


Team Members


Zeeya Ramani
Data Analyst / Developer

Salvatore Ardisi
Technical Lead & Architect / Scrum Master

Rhythm Patel
AI Engineer / Developer

Dhawalshree Mengane
Data Analyst / Developer

Mohammed Nazir Yusif
Security Engineer / Project Manager

Krish Dhorajiya
AI Engineer / Tester

Architecture at a Glance

                                         ┌───────────────────┐
                                         │   React Dashboard │
                                         │  (Vite + Tailwind)│
                                         └────────┬──────────┘
                                                  │ HTTP + WebSocket
                                                  ▼
┌──────────┐    POST notifications       ┌──────────────────┐     ┌──────────────┐
│ Developer│ ──────────────────────────► │  API Server      │────►│ PostgreSQL   │
│  Client  │ ◄── 202 Accepted            │  Express + TS    │     │ (Multi-tenant│
└──────────┘                             └────────┬─────────┘     │  + RLS)      │
                                                  │ Enqueue       └──────────────┘
                                                  ▼                      ▲
                                         ┌─────────────────┐             │
                                         │  Redis + BullMQ │             │
                                         │  (Job Queue)    │             │
                                         └────────┬────────┘             │
                                                  │ Dequeue              │
                                                  ▼                      │
                                         ┌────────────────┐              │
                                         │   Worker       │──────────────┘
                                         │  (Delivery +   │
                                         │ Feature Ext.)  │
                                         └───┬────────┬───┘
                                             │        │
                              ┌──────────────┘        └──────────────────┐
                              ▼                                          ▼
                     ┌───────────────────┐                    ┌─────────────────────┐
                     │  ML Service       │                    │  Delivery Channels  │
                     │  FastAPI + XGBoost│                    │  Email              │
                     │  Epsilon-Greedy   │                    │  Push               │
                     └───────────────────┘                    │  SMS                │
                                                              │  In-App             │
                                                              └─────────────────────┘
Component Technology Purpose
API Server Node.js, Express, TypeScript Request handling, auth, validation, enqueuing
Worker Node.js, BullMQ, TypeScript Feature extraction, ML routing, delivery execution
ML Service Python, FastAPI, XGBoost Engagement prediction, epsilon-greedy exploration
Database PostgreSQL 16 Multi-tenant storage with row-level security
Cache/Queue Redis + BullMQ Async job processing, rate limiting, caching
Dashboard React, Vite, Tailwind, shadcn/ui Real-time analytics, routing intelligence, notification explorer
Real-time Socket.IO In-app delivery channel + live dashboard updates
Observability Prometheus, Grafana, Pino Metrics, dashboards, structured JSON logging
CI/CD Docker, GitHub Actions Containerized deployment, automated testing, secret scanning

Core Algorithms

Algorithm Role How It Works
XGBoost Channel Prediction Decision trees trained on delivery outcomes. Each tree corrects the previous tree's errors. Outputs per-channel engagement probability-highest wins.
Epsilon-Greedy Exploration Strategy 90% exploit (use model's best prediction), 10% explore (try alternative channels). Prevents the model from getting stuck on old data.
Circuit Breaker Reliability Monitors provider failure rates in real-time. Opens on threshold -> reroutes to next-best channel -> auto-recovers utilizing a half-open test after cooldown.

Diagrams

Architecture Diagram

See Architecture at a Glance above. Detailed component diagram coming Sprint 1.

ER Diagram

Coming Sprint 1

Context Diagram

Coming Sprint 1

Sequence Diagram

Coming Sprint 1


Languages and Tools

Languages & Frameworks

TypeScript Node.js Express React Vite Python FastAPI

ML & Data Science

XGBoost scikit--learn pandas

Databases & Infrastructure

PostgreSQL Redis Socket.IO BullMQ

UI

Tailwind CSS shadcn/ui

Validation

Zod Pydantic

Observability

Prometheus Grafana Pino

Testing

Jest pytest

DevOps & CI/CD

Docker GitHub Actions

Tools

GitHub Jira Slack VS Code Claude ChatGPT


NotifyEngine Final Application Artifacts

Final MVP Demo

Coming Sprint 3

Application Manuals

User Manual-Coming Sprint 3

Deployment Manual-Coming Sprint 3

API Documentation-Coming Sprint 3

Technical Paper

Draft coming Sprint 2 · Final coming Sprint 3


CS691 - Spring 2026 Deliverables

Product User Stories and Acceptance Criteria

View User Stories and Acceptance Criteria Spreadsheet as PDF | Download Product Backlog as Excel Workbook-Coming Sprint 1


Sprint 0

Presentations

  1. Watch Sprint 0 Presentation Video | Click here to download mp4 File
    0a. View Sprint 0 Presentation Slides as PDF
    0b. Download Sprint 0 Presentation Slides as PowerPoint

Completed Tasks

0. Sprint 0 Completed Tasks-Coming Soon

Retrospective

  1. Watch Sprint 0 Retrospective Video | Click here to download mp4 File

Sprint 1

Planning

1. Watch Sprint 1 Sprint Planning Video | Click here to download mp4 file-Coming Mar 26

Presentations (Sprint Reviews)

1. Watch Sprint 1 Presentation Video | Click here to download mp4 File-Coming Mar 26
1a. View Sprint 1 Presentation Slides as PDF
1b. Download Sprint 1 Presentation Slides as PowerPoint

User Stories and Acceptance Criteria Sprintwise

1a. View Sprint 1 User Stories and Acceptance Criteria Spreadsheet as PDF-Coming Mar 26
1b. Download Sprint 1 User Stories and Acceptance Criteria as Excel Workbook

Application Test Cases

1a. View Sprint 1 Test Cases as PDF-Coming Mar 26
1b. Download Sprint 1 Test Cases as Excel Workbook

Prototype and Source Code

1a. Link to Prototype-Coming Mar 26
1b. Sprint 1 Source Code

Sprint Burndown Chart and Completed Tasks

1a. Sprint 1 Burndown Chart-Coming Mar 26
1b. Completed Tasks

Retrospective

1. Watch Sprint 1 Retrospective Video | Click here to download mp4 File-Coming Mar 26


Sprint 2

Planning

2. Watch Sprint 2 Sprint Planning Video | Click here to download mp4 file-Coming Apr 16

Presentations (Sprint Reviews)

2. Watch Sprint 2 Presentation Video | Click here to download mp4 File-Coming Apr 16
2a. View Sprint 2 Presentation Slides as PDF
2b. Download Sprint 2 Presentation Slides as PowerPoint

User Stories and Acceptance Criteria Sprintwise

2a. View Sprint 2 User Stories and Acceptance Criteria Spreadsheet as PDF-Coming Apr 16
2b. Download Sprint 2 User Stories and Acceptance Criteria as Excel Workbook

Application Test Cases

2a. View Sprint 2 Test Cases as PDF-Coming Apr 16
2b. Download Sprint 2 Test Cases as Excel Workbook

Prototype and Source Code

2a. Link to Prototype-Coming Apr 16
2b. Sprint 2 Source Code

Sprint Burndown Chart and Completed Tasks

2a. Sprint 2 Burndown Chart-Coming Apr 16
2b. Completed Tasks

Retrospective

2. Watch Sprint 2 Retrospective Video | Click here to download mp4 File-Coming Apr 16


Sprint 3

Planning

3. Watch Sprint 3 Sprint Planning Video | Click here to download mp4 file-Coming May 14

Presentations (Sprint Reviews)

3. Watch Sprint 3 Presentation Video | Click here to download mp4 File-Coming May 14
3a. View Sprint 3 Presentation Slides as PDF
3b. Download Sprint 3 Presentation Slides as PowerPoint

User Stories and Acceptance Criteria Sprintwise

3a. View Sprint 3 User Stories and Acceptance Criteria Spreadsheet as PDF-Coming May 14
3b. Download Sprint 3 User Stories and Acceptance Criteria as Excel Workbook

Application Test Cases

3a. View Sprint 3 Test Cases as PDF-Coming May 14
3b. Download Sprint 3 Test Cases as Excel Workbook

Prototype and Source Code

3a. Link to Prototype-Coming May 14
3b. Sprint 3 Source Code

Sprint Burndown Chart and Completed Tasks

3a. Sprint 3 Burndown Chart-Coming May 14
3b. Completed Tasks

Retrospective

3. Watch Sprint 3 Retrospective Video | Click here to download mp4 File-Coming May 14


Team Working Agreement

Team Working Agreement as PDF | Download Team Working Agreement as DOCX


Additional Project Artifacts

Product Personas

Sarah Kim Daniel Ross Amanda Lopez
Backend Developer Persona PDF Product Manager Persona PDF Growth Lead Persona PDF

Monorepo Structure

notifyengine/
├── apps/
│   ├── api/              # Node.js Express API server (TypeScript)
│   ├── worker/           # BullMQ queue workers (TypeScript)
│   ├── ml-service/       # Python FastAPI ML prediction + training
│   └── dashboard/        # React admin dashboard (Vite + Tailwind)
├── packages/
│   └── shared/           # Shared TypeScript types + constants
├── infra/
│   ├── docker-compose.yml
│   ├── prometheus.yml
│   ├── grafana/dashboards/
│   └── migrations/       # PostgreSQL migrations
├── models/               # XGBoost model artifacts
├── .github/workflows/    # CI/CD + TruffleHog secret scanning
├── turbo.json
├── package.json
└── CLAUDE.md             # Project config with coding standards + security rules

Clone this wiki locally