Skip to content

PulseCheck is an all-in-one modern uptime monitoring and SSL certificate health tool for websites providing real-time notifications to ensure optimal performance and reliability.

Notifications You must be signed in to change notification settings

MoigeMatino/pulse-check

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PulseCheck - Uptime monitoring and SSL management system

🚧 UNDER DEVELOPMENT 🚧

A modern, all-in-one uptime monitoring and SSL certificate health tool designed to keep your websites and applications running smoothly. With real-time notifications via email, SMS, and Slack, PulseCheck ensures you're always informed about downtime, SSL expirations, and critical issues—so you can act fast and stay ahead.

Objective

The goal of this project is to help businesses and individuals stay informed about the status of their applications and websites by:

  • Ensuring minimal downtime with quick alerts.
  • Proactively notifying about SSL certificate expiry.
  • Offering a centralized dashboard for status monitoring and alert management.

Features (Planned)

  1. Uptime Monitoring:
    • Periodically checks the availability of registered websites and applications.
  2. SSL Monitoring:
    • Tracks SSL certificate expiration and notifies users in advance.
  3. Real-Time Alerts:
    • Sends notifications via SMS, email, and Slack when issues are detected.
  4. Customizable Alerts:
    • Allow users to set alert thresholds and notification preferences.
  5. Dashboard:
    • Displays application status history, SSL expiry dates, and recent alerts.

Technology Stack

  • Backend: FastAPI (Python)
  • Database: PostgreSQL
  • Background Task Processing: Celery or APScheduler
  • Notifications: Twilio, Slack SDK, Amazon SES
  • Frontend: (To be decided, likely React or HTMX)

Architecture Diagram

graph TD
    subgraph Frontend
        A[React/Vue.js Dashboard] -->|API Calls| B[FastAPI Backend]
    end

    subgraph Backend
        B -->|Task Scheduling| C[Celery Worker]
        B -->|Database Operations| D[PostgreSQL]
        C -->|Task Queue| E[Redis]
    end

    subgraph Third-Party Services
        B -->|Send Notifications| F[Twilio]
        B -->|Send Notifications| G[SendGrid]
        B -->|Send Notifications| H[Slack]
    end

    subgraph Monitoring
        I[Prometheus] -->|Metrics| J[Grafana]
    end

    subgraph Deployment
        K[Docker] -->|Orchestration| L[Kubernetes]
    end

    style A fill:#f9f,stroke:#333,stroke-width:2px
    style B fill:#bbf,stroke:#333,stroke-width:2px
    style C fill:#f96,stroke:#333,stroke-width:2px
    style D fill:#6f9,stroke:#333,stroke-width:2px
    style E fill:#f66,stroke:#333,stroke-width:2px
    style F fill:#69f,stroke:#333,stroke-width:2px
    style G fill:#69f,stroke:#333,stroke-width:2px
    style H fill:#69f,stroke:#333,stroke-width:2px
    style I fill:#f9f,stroke:#333,stroke-width:2px
    style J fill:#f9f,stroke:#333,stroke-width:2px
    style K fill:#6f9,stroke:#333,stroke-width:2px
    style L fill:#6f9,stroke:#333,stroke-width:2px
Loading

Architecture & Flow

  • Monitoring Service: Handles periodic checks for uptime and SSL status.

  • Notification Service: Manages sending alerts via SMS, email, or Slack.

  • API Layer: Exposes endpoints for user interaction (e.g., adding websites, setting thresholds).

  • Frontend: Dashboard for users to view data (can be built using React, HTMX, or another framework).

  • Database: Stores user data, registered applications, alert configurations, and logs.

    Key Components:

    • Scheduler: Periodically triggers uptime and SSL checks (e.g., Celery, APScheduler).
    • Worker Queue: Ensures scalable and asynchronous processing of tasks (e.g., Redis + Celery).
    • Database: PostgreSQL for structured data storage.
    • Notification Integrations: Use libraries or APIs for Twilio (SMS), Amazon SES (email), and Slack.

    Flow:

    • Users register and add websites with configurations (alert preferences, thresholds).
    • Scheduler triggers monitoring tasks periodically.
    • Monitoring tasks log results in the database and trigger notifications if conditions are met.
    • Dashboard retrieves data from the database to display application status and alert history.

Current Status

The project is in its early development stages. Core features such as uptime monitoring and SSL checks are being prototyped.

Intentions

This project aims to:

  • Provide an accessible, user-friendly solution for monitoring uptime and SSL health.
  • Offer a scalable platform for small to medium-sized businesses.
  • Eventually evolve into a SaaS product with subscription tiers and advanced analytics.

Getting Started

This repository will soon include setup instructions, including how to:

  1. Clone the repository.
  2. Install dependencies.
  3. Run the application locally.

Stay tuned for updates!

Contributing

Contributions are welcome! If you'd like to collaborate, please fork this repository and submit a pull request with your changes.

About

PulseCheck is an all-in-one modern uptime monitoring and SSL certificate health tool for websites providing real-time notifications to ensure optimal performance and reliability.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published