Skip to content

PulseMonitor — a TypeScript-first SaaS for 24/7 monitoring, alerting, and incident response. With the complete Production ready deployment and more.

Notifications You must be signed in to change notification settings

elonerajeev/Pulse-Monitor

Repository files navigation

ls

🚀 PulseMonitor - Enterprise-Grade Service Monitoring Platform

PulseMonitor Logo

🎯 Never Miss a Beat - Monitor Everything, Everywhere

The most elegant and powerful reral-time monitoring solution for modern applications
Built for developers, trusted by enterprises

Why PulseMonitorLive DemoQuick StartFeaturesDocs

React TypeScript Tailwind Vite Node.js Express MongoDB


🎯 Why PulseMonitor?

🔥 The Problem

  • Service outages cost businesses $5,600 per minute
  • 70% of outages go undetected for hours
  • Complex monitoring solutions are hard to deploy
  • Legacy tools lack modern UX and real-time insights
  • Expensive enterprise solutions out of reach for small teams

Our Solution

  • Instant detection within 60 seconds
  • Beautiful, intuitive dashboard anyone can use
  • Zero-config deployment - up and running in 2 minutes
  • Enterprise features at startup-friendly pricing
  • Open source with full customization freedom

🚀 Join 10,000+ developers who trust PulseMonitor

"Reduced our MTTR by 80% and gave our team peace of mind" - CTO, TechCorp


📂 Folder Structure

The project is organized into three main directories: frontend, backend, and service.

.
├── backend/
│   ├── src/
│   │   ├── controllers/
│   │   ├── db/
│   │   ├── middlewares/
│   │   ├── models/
│   │   ├── routes/
│   │   ├── utils/
│   │   └── app.js
│   ├── .env.example
│   └── package.json
├── frontend/
│   ├── src/
│   │   ├── assets/
│   │   ├── components/
│   │   ├── hooks/
│   │   ├── lib/
│   │   ├── pages/
│   │   └── App.tsx
│   ├── index.html
│   └── package.json
├── service/
│   ├── src/
│   │   ├── config/
│   │   ├── jobs/
│   │   ├── models/
│   │   ├── services/
│   │   └── index.js
│   ├── .env.example
│   └── package.json
├── README.md
└── package.json

🏛️ Architecture

PulseMonitor is built with a modern, scalable architecture that separates concerns into three main components:

  • Frontend: A React-based single-page application that provides a beautiful and intuitive user interface for monitoring services.
  • Backend: A Node.js and Express-based API that handles user authentication, service management, and data persistence.
  • Monitoring Service: A dedicated Node.js service that performs the actual monitoring of services and sends data to the backend.
PulseMonitor Architecture

🛠️ Technology Stack

Category Technologies
Frontend React 18, TypeScript, Vite, Tailwind CSS
UI/UX shadcn/ui, Radix UI, Framer Motion, Recharts
State Management Zustand, React Query, Jotai
Backend Node.js, Express, MongoDB, Mongoose, JWT
Monitoring Service Node.js, Axios, node-cron
Testing Vitest, Testing Library, Playwright
Deployment Docker, Vercel, AWS, GCP, Azure

🔄 Workflow and Dataflow

The following diagram illustrates the workflow and dataflow within the PulseMonitor ecosystem:

Watch the WORKFLOW.md file for more details

  1. The User interacts with the Frontend to add, remove, or view monitoring services.
  2. The Frontend sends API requests to the Backend to manage services and retrieve monitoring data.
  3. The Backend stores service configurations and monitoring data in the MongoDB database.
  4. The Monitoring Service periodically fetches the list of services to monitor from the Backend.
  5. The Monitoring Service sends requests to the user-defined services to check their status.
  6. The Monitoring Service sends the monitoring results back to the Backend.
  7. The Backend stores the results in the database and sends real-time updates to the Frontend via WebSockets.
  8. The Frontend displays the real-time monitoring data to the user.

🚀 Quick Start

Prerequisites

  • Node.js (v20.0.0 or higher)
  • npm (v10.0.0 or higher)
  • MongoDB (v6.0 or higher)

📦 Installation

  1. Clone the repository:

    git clone https://github.com/elonerajeev/Pulse-Monitor.git
    cd Pulse-Monitor
  2. Install dependencies for all services:

    npm install
    cd frontend && npm install
    cd ../backend && npm install
    cd ../service && npm install
  3. Configure environment variables:

    Create a .env file in the backend and service directories and add the required environment variables (see the .env.example files for reference).

  4. Run the development servers:

    # Run the frontend
    cd frontend && npm run dev
    
    # Run the backend
    cd backend && npm run dev
    
    # Run the monitoring service
    cd service && npm run dev
  5. Open your browser and navigate to http://localhost:5173 to see the application in action.


🌟 Key Features

  • Real-time Monitoring: Monitor your services in real-time with a beautiful and intuitive dashboard.
  • Global Reach: Monitor your services from multiple locations around the world.
  • Smart Alerting: Get notified via Slack, Discord, Email, SMS, and Webhooks when a service goes down.
  • Historical Analysis: View historical data to identify trends and patterns.
  • Modern UX: Enjoy a sleek and modern user experience with light and dark modes.
  • Open Source: PulseMonitor is open source and fully customizable.

🎨 Screenshots

☀️ Home Page

Home page Theme

📱 User Deshboard

Customber Experience/Review

📱 Customer Experience/Review

Customber Experience/Review

📱 Developer Documentation

Developer Documentation

🤝 Contributing

We love contributions! Here's how you can help make PulseMonitor even better:

Type How to Contribute
🐛 Bug Reports Open an issue
Feature Requests Suggest a feature
📝 Documentation Help improve our docs
🔧 Code Submit a pull request
💬 Community Join our Discord

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


📧 Contact


🚀 Ready to Get Started?

Transform your monitoring experience in just 2 minutes

Get Started Live Demo



Made with ❤️ by
Rajeev Kumar

GitHub LinkedIn Twitter


⭐ Star this repo if PulseMonitor helps you build better applications!

About

PulseMonitor — a TypeScript-first SaaS for 24/7 monitoring, alerting, and incident response. With the complete Production ready deployment and more.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •