Skip to content

sanathkmr14/PulseGuard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

101 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PulseGuard

PulseGuard React Node.js MongoDB Redis TailwindCSS

PulseGuard is a robust, real-time uptime monitoring solution designed to track the availability and performance of your services. Built with a modern tech stack, it offers instant alerts, detailed analytics, and a live dashboard to ensure your systems are always up and running.


πŸš€ Key Features

  • Real-Time Monitoring: Instant status updates powered by WebSockets and Redis Streams.
  • Multi-Protocol Support: Monitor various services including HTTP/HTTPS, TCP, UDP, DNS, PING, SMTP, and SSL Certificates.
  • Instant Alerts: Get notified immediately via Email (Brevo/Nodemailer) when a service goes down or experiences degraded performance.
  • Detailed Analytics: Track uptime percentages, response times, and review comprehensive incident history logs.
  • Background Workers: Highly scalable job processing and scheduling powered by BullMQ and Redis.
  • Interactive Dashboard: Beautiful, responsive UI with real-time data visualization using Recharts.

πŸ›  Tech Stack

Frontend

  • React.js: Dynamic, component-based user interface.
  • Vite: Lightning-fast build tool and development server.
  • Tailwind CSS: Utility-first CSS framework for modern, responsive design.
  • Recharts: Composable charting library for beautiful data visualization.
  • Socket.io-client: Real-time bi-directional communication.

Backend

  • Node.js & Express.js: High-performance REST API.
  • MongoDB & Mongoose: Flexible document database for storing users, monitors, and logs.
  • Redis & ioredis: High-speed caching, Pub/Sub messaging, and Job Queues.
  • Socket.io: Real-time event broadcasting to the frontend.
  • BullMQ: Robust, Redis-based background job processing.
  • Jest & Supertest: Comprehensive unit and integration testing suite.

πŸ“¦ Getting Started

Follow these instructions to get a copy of the project up and running on your local machine for development and testing purposes.

Prerequisites

Ensure you have the following installed on your system:

  • Node.js (v18.0.0 or higher recommended)
  • MongoDB (Local instance or MongoDB Atlas)
  • Redis (Local instance or Cloud Redis)

Installation

  1. Clone the repository:

    git clone https://github.com/sanathkmr14/PulseGuard.git
    cd PulseGuard
  2. Install dependencies for both backend and frontend:

    npm run install:all

    Alternatively, you can manually run npm install in both the backend and frontend directories.

Environment Variables

You will need to set up environment variables for both the backend and frontend to function correctly.

1. Backend (backend/.env) Create a .env file in the backend directory:

PORT=5000
MONGODB_URI=your_mongodb_connection_string
REDIS_URL=redis://localhost:6379
JWT_SECRET=your_jwt_secret

# Email Service Configuration
SMTP_HOST=your_smtp_host
SMTP_PORT=your_smtp_port
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_pass

2. Frontend (frontend/.env) Create a .env file in the frontend directory:

VITE_API_URL=http://localhost:5000/api
VITE_SOCKET_URL=http://localhost:5000

Running the Application

You can start both the backend and frontend development servers concurrently using the root script:

npm run dev
  • Frontend: http://localhost:5173 (Vite default)
  • Backend API: http://localhost:5000

πŸ’‘ How to Use PulseGuard

Once your application is up and running, you can start monitoring your services immediately:

  1. Access the Dashboard: Open your browser and navigate to the frontend URL (e.g., http://localhost:5173).
  2. Create an Account: Register for a new account or log in.
  3. Add a Monitor: Click on "Create Monitor", select your desired protocol (HTTP, TCP, PING, DNS, etc.), and enter the target URL or IP.
  4. Configure Alerts: Set up your email notifications to get pinged instantly if a service goes down or latency spikes.
  5. View Analytics: Visit the Analytics page to view real-time charts of your uptime and response times.

🀝 Contributing

We welcome and deeply appreciate contributions from the open-source community! Whether you are fixing bugs, improving documentation, or proposing new features, your efforts help make PulseGuard a better tool for everyone.

To ensure a smooth and collaborative workflow, we recommend opening an issue to discuss significant changes or new feature ideas before submitting a pull request. This helps align your work with the project's roadmap and saves everyone valuable time.

Let's connect and collaborate!


πŸ“„ License

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

About

πŸ›‘οΈ PulseGuard β€” Real-time website uptime monitor that tracks availability, response time & sends instant alerts when your sites go down/degraded.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages