Skip to content

Hamood268/PulseWatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚡ PulseWatch - Always Watching

A modern, real-time API monitoring platform built with Node.js, Express, and MongoDB. Keep your APIs and endpoints healthy with continuous uptime monitoring, performance tracking, and instant status updates.

✨ Features

🎯 Core Monitoring

  • Real-time Endpoint Monitoring - Continuously check API health with customizable interval options
  • Uptime Tracking - Calculate and display uptime percentages based on historical data
  • Response Time Analytics - Monitor and track API response times with millisecond precision
  • Status History - Keep up to 100 historical checks per endpoint for trend analysis
  • Multi-Endpoint Management - Monitor unlimited APIs from a single dashboard

💎 User Experience

  • Intuitive Dashboard - Clean, modern interface with real-time status updates
  • User Profiles - Personal monitoring workspace for each user
  • Mobile Responsive - Fully functional on desktop, tablet, and mobile devices
  • Visual Status Indicators - Instant health status with color-coded indicators (Online/Offline)
  • Smart Filtering - Filter endpoints by status (All/Online/Offline)

🔒 Security & Authentication

  • JWT Authentication - Secure user sessions with HTTP-only cookies
  • Input Validation - Comprehensive XSS protection and input sanitization
  • Rate Limiting - Built-in protection against abuse
  • User Authorization - Users can only access their own monitors
  • Password Encryption - Bcrypt hashing with salt rounds

🛠️ Technical Features

  • RESTful API - Clean, well-documented API endpoints
  • Automatic Scheduler - Background jobs for continuous monitoring
  • Dynamic Scheduler Updates - Automatically restarts monitoring when URL/interval changes
  • Graceful Shutdown - Properly cleanup schedulers on server stop
  • Error Handling - Comprehensive error handling and logging
  • CORS Support - Configured for secure cross-origin requests

🚀 Tech Stack

Backend

  • Node.js - Runtime environment
  • Express.js - Web framework
  • MongoDB - Database with Mongoose ODM
  • JWT - Authentication tokens
  • Bcrypt - Password hashing

Frontend

  • Vanilla JavaScript - No framework dependencies
  • Modern CSS - Custom styling with CSS variables
  • Responsive Design - Mobile-first approach
  • Real-time Updates - Auto-refresh every 10 seconds

Security

  • Input Sanitization - XSS protection
  • HTTP-only Cookies - Secure token storage
  • CORS - Cross-origin resource sharing
  • Rate Limiting - Request throttling

📦 Installation

Prerequisites

  • Node.js (v14 or higher)
  • MongoDB (v4.4 or higher)
  • npm or yarn

Setup

  1. Clone the repository
git clone https://github.com/hamood268/pulsewatch.git
cd pulsewatch
  1. Install dependencies
npm install
  1. Configure environment variables
# Create .env file in Backend directory
PORT=3000
MONGODB_URI=mongodb://localhost:27017/pulsewatch
JWT_SECRET=your-super-secret-jwt-key-change-this
NODE_ENV=development
  1. Start MongoDB
# Make sure MongoDB is running
mongod
  1. Run the application
# Development mode
npm run dev

# Production mode
npm start
  1. Access the application
Open http://localhost:3000 in your browser

🖥️ Live Website

Try out PulseWatch exclusively here!

📖 API Documentation

API Documentation can be viewed live here

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

📝 License

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

👤 Developer

Mohammed

About

A modern, real-time API monitoring platform built with Node.js, Express, and MongoDB. Keep your APIs and endpoints healthy with continuous uptime monitoring, performance tracking.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors