https://github.com/sajanv88/notification-system
Simple notification system tutorial source code.
https://github.com/sajanv88/notification-system
bull mongodb monorepo nestjs-backend nextjs15 notification-system redis-cache
Last synced: 3 months ago
JSON representation
Simple notification system tutorial source code.
- Host: GitHub
- URL: https://github.com/sajanv88/notification-system
- Owner: sajanv88
- Created: 2025-06-26T15:48:08.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-06-27T06:33:11.000Z (3 months ago)
- Last Synced: 2025-06-27T07:38:20.121Z (3 months ago)
- Topics: bull, mongodb, monorepo, nestjs-backend, nextjs15, notification-system, redis-cache
- Language: TypeScript
- Homepage:
- Size: 229 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Notification System Monorepo
This is simple notification system tutorial source code.
## Project Structure
```bash
notification-system/
├── apps/
│ ├── api/ # NestJS Apps (Api)
├── notification-engine/ # NestJS Apps (Notification engine)
│ └── web/ # NextJs app (UI & BFF)
├── pnpm-workspace.yaml
├── package.json
```
## High Level Architecture```bash
┌───────────────────────────────────────────────────────┐
│ Web/REST API Service │
│ (NestJS - handles both event catalog & subscriptions)│
└───────────────┬───────────────────────┬───────────────┘ │ │
│ │
▼ ▼
┌─────────────────────────┐ ┌──────────────────────┐
│ MongoDB │ │ Redis │
│ (Events & Subscriptions)│ │ (Cache & Queue) │
└─────────────────────────┘ └──────────┬───────────┘
│
▼
┌───────────────────────────────────────────────────────┐
│ Notification Engine Service │
│ (NestJS - handles scheduling & sending notifications)│
└───────────────────────────────────────────────────────┘```
## Getting Started
- Install deps
```bash
pnpm install
```
- Run frontend and backend
```bash
pnpm dev
pnpm build # build both frontend and backend
```
## Docker
- `compose.yaml` file contains mongodb, redis and fake-smtp server. This is used for local development.## Fake SMTP
please read this guide: [fake-smtp](https://haravich.github.io/fake-smtp-server/)