All Projects
Backendintermediate View on GitHub

NotifyHub

Real-time notifications with SignalR, Hangfire background jobs, and Redis

2–3 hours to set up9 technologies5 guided steps

About This Project

Build a production notification system that sends real-time alerts via SignalR, queues email/SMS jobs with Hangfire, and caches notification state in Redis. Covers the full 'Background Jobs & Messaging' section of the .NET roadmap plus real-time web sockets.

What You'll Learn

Build real-time WebSocket connections with SignalR
Queue and process background jobs reliably with Hangfire
Use Redis for fast in-memory caching and pub/sub
Design a multi-channel notification system
Handle job failures, retries, and dead letters

Key Features

Real-time push notifications to browser via SignalR WebSockets
Fire-and-forget email notifications with Hangfire
Scheduled digest emails with Hangfire recurring jobs
Redis caching for unread notification counts
Notification preferences per user (email on/off, push on/off)
Notification history with pagination
Hangfire dashboard UI at /hangfire
Dead letter handling and retry logic
Multi-channel support: in-app, email, and SMS

Setup Guide

1

Clone and start dependencies

Clone the repo and start Redis + PostgreSQL with Docker.

bash
git clone https://github.com/asmanasir/NotifyHub.git
cd NotifyHub
docker-compose up -d
2

Configure environment

Set Redis, database, and SendGrid keys.

bash
cp .env.example .env
# Required: REDIS_URL, DATABASE_URL
# Optional: SENDGRID_API_KEY (emails fall back to console)
3

Apply migrations

Create notification, user, and job tables.

bash
dotnet ef database update

Running the Project

1

Run the API

Starts API on :5000, SignalR hub at /hubs/notifications, Hangfire dashboard at /hangfire.

bash
dotnet run
2

Test real-time notifications

Open the test client to see SignalR in action.

bash
# Open http://localhost:5000 in two browser tabs
# Send a notification from one tab and see it appear instantly in the other

Project Info

CategoryBackend
Difficultyintermediate
Setup time2–3 hours to set up
Technologies9 tools

Tech Stack

ASP.NET Core (.NET 8)SignalRHangfireRedisStackExchange.RedisSendGridEF CorePostgreSQLDocker

Prerequisites

  • .NET 8 SDK installed
  • Docker Desktop (for Redis + PostgreSQL)
  • SendGrid account (free tier) or use the built-in console sink
View Source on GitHub
L

Learnixo

Project Author

Covers the Background Jobs & Messaging section of the .NET roadmap plus real-time SignalR — two of the most in-demand skills for senior .NET positions.