Skip to content
mohammadhashim135Public

About

A production-ready, tenant-aware notification system that automatically generates and delivers event-based notifications through a modern notification dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔔 Notifierz: Full Stack Notification System

A production-ready, tenant-aware notification system demonstrating an end-to-end notification pipeline where simulated business events automatically generate notifications and deliver them to the appropriate users through a modern notification dashboard.


✨ Project Overview

Notifierz simulates a notification system for an AI-native CRM used by talent and influencer agencies.

The application provides a complete end-to-end notification workflow, from event generation to notification delivery and user interaction.

Key capabilities include:

  • Tenant-aware notification management
  • Event-driven notification triggers
  • Notification bell with live unread badge
  • Read and unread notification management
  • Automatic polling for new notifications
  • Responsive Next.js dashboard
  • Automated integration testing
  • Production deployment

The backend follows a clean layered architecture using Controllers, Services, Middleware, Validation, and MongoDB Atlas, while the frontend is built with Next.js, React Query, and Tailwind CSS.


🌐 Live Demo

Frontend

https://notifierz.vercel.app/

Backend API

https://notifierzapp.onrender.com

Health Check

https://notifierzapp.onrender.com/api/health


📸 Screenshots

Dashboard

Main dashboard with notification statistics and CRM event simulators.

Dashboard


Notification Center

Interactive notification dropdown with unread badge and quick actions.

Notifications Dashboard


Notifications Dashboard

Search, filter, and manage notifications with read/unread status.

Notifications Dashboard


🚀 Features

Backend

  • Tenant-aware notification APIs
  • Notification CRUD operations
  • MongoDB Atlas integration
  • Request validation using Zod
  • Global error handling middleware
  • Async controller wrapper
  • Service-based architecture
  • Trigger-based notification generation
  • Database seed data
  • Pagination support
  • Unread-first notification sorting
  • Tenant isolation
  • Automated integration tests using Jest and Supertest

Frontend

  • Modern responsive dashboard
  • Notification bell with live unread badge
  • Interactive notification dropdown
  • Search notifications
  • Read / Unread filters
  • Trigger simulator
  • Dashboard statistics
  • Relative timestamps using date-fns
  • Automatic polling every 15 seconds
  • Toast notifications
  • Type-safe API integration using React Query and Axios

⚙️ Setup Instructions

1. Clone the Repository

git clone https://github.com/mohammadhashim135/notifierz.git
cd notifierz

2. Backend Setup

cd backend
npm install

Create a .env file inside the backend folder.

PORT=8000

MONGODB_URI=your_mongodb_atlas_connection_string

Start the backend server.

npm run dev

3. Frontend Setup

Open a new terminal.

cd frontend
npm install

Create a .env.local file inside the frontend folder.

NEXT_PUBLIC_API_URL=https://notifierzapp.onrender.com/api

Run the frontend.

npm run dev

Open the application at:

http://localhost:3000

📂 File Structure

Notifierz/
├── backend/
│   ├── src/
│   │   ├── config/
│   │   ├── constants/
│   │   ├── controllers/
│   │   ├── interfaces/
│   │   ├── middleware/
│   │   ├── models/
│   │   ├── routes/
│   │   ├── seed/
│   │   ├── services/
│   │   ├── tests/
│   │   ├── types/
│   │   ├── utils/
│   │   ├── validators/
│   │   ├── app.ts
│   │   └── server.ts
│   ├── dist/
│   ├── coverage/
│   ├── package.json
│   ├── tsconfig.json
│   └── jest.config.ts
│
├── frontend/
│   ├── src/
│   │   ├── app/
│   │   ├── components/
│   │   ├── hooks/
│   │   ├── lib/
│   │   ├── providers/
│   │   ├── services/
│   │   ├── types/
│   │   └── utils/
│   ├── public/
│   ├── package.json
│   ├── tsconfig.json
│   └── next.config.ts
│
├── docs/
│
└── README.md

🧪 Testing

The backend includes automated integration tests built with:

  • Jest
  • Supertest
  • MongoDB Memory Server

Run the tests:

npm test

Generate a coverage report:

npm run test:coverage

🤝 Contributing

Contributions are welcome! If you’d like to improve feel free to fork the repo and submit a pull request.

Steps to Contribute:

1. Fork the repository

2. Create a new branch:

git checkout -b feature-branch

3. Make your changes and commit:

git commit -m "Added new feature"

4. Push to the branch:

git push origin feature-branch

5. Open a Pull Request


License 📜

This project is licensed under the MIT License.

💡 Developed with ❤️ by Mohammad Hashim

About

A production-ready, tenant-aware notification system that automatically generates and delivers event-based notifications through a modern notification dashboard.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages