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.
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.
Frontend
Backend API
https://notifierzapp.onrender.com
Health Check
https://notifierzapp.onrender.com/api/health
Main dashboard with notification statistics and CRM event simulators.
Interactive notification dropdown with unread badge and quick actions.
Search, filter, and manage notifications with read/unread status.
- 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
- 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
git clone https://github.com/mohammadhashim135/notifierz.git
cd notifierzcd backend
npm installCreate a .env file inside the backend folder.
PORT=8000
MONGODB_URI=your_mongodb_atlas_connection_stringStart the backend server.
npm run devOpen a new terminal.
cd frontend
npm installCreate a .env.local file inside the frontend folder.
NEXT_PUBLIC_API_URL=https://notifierzapp.onrender.com/apiRun the frontend.
npm run devOpen the application at:
http://localhost:3000
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.mdThe backend includes automated integration tests built with:
- Jest
- Supertest
- MongoDB Memory Server
Run the tests:
npm testGenerate a coverage report:
npm run test:coverageContributions are welcome! If you’d like to improve feel free to fork the repo and submit a pull request.
git checkout -b feature-branchgit commit -m "Added new feature"git push origin feature-branchThis project is licensed under the MIT License.
💡 Developed with ❤️ by Mohammad Hashim


