A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs

Overview

Uptime Monitoring Server

A dockerized uptime monitoring RESTful API server that allows authenticated users to monitor URLs, and get detailed uptime reports about their availability, average response time, and total uptime/downtime.

Overview

  • Signup with email verification.
  • CRUD operations for URL checks (GET, PUT and DELETE can be called only by the user user who created the check).
  • Authenticated users can get detailed uptime reports about their URLs availability, average response time, and total uptime/downtime.
  • Authenticated users can group their checks by tags and get reports by tag.
  • Stateless authenication using JWT.
  • APIs consume and produce application/json.

Setup

Installing locally

  • npm install
  • Create a new database on MongoDB and change the .env file with the new connections details, (OR you can work with the current database)
  • npm run start

Running the Docker image

  • Download the repo
  • cd to the project directory
  • Run in terminal docker-compose -f docker-compose.yml up

How to use the API endpoints

  • Registeration

    • (POST) /api/auth/signup to sign up using your email and password
    • (POST) /api/auth/verify to verify your email by the code sent to your email
    • (POST) /api/auth/login to login and get a response with the auth-token you will be using accross the API server (you will need to add it to the header)
  • CRUD operations on the Checks

    • (GET) /api/checks to get all of your checks
    • (GET) /api/checks/:id to get a specific check
    • (POST) /api/checks to create a check
    • (DELETE) /api/checks/:id to delete a check of yours
    • (PUT) /api/checks/:id to update a check of yours
  • CRUD operations on the Reports

    • (GET) /api/reports to get all of your reports
    • (POST) /api/reports/tags to get all of your reports having the same specified tag(s)

Credit

This is part of bosta backend challenge.

Still working on some features

You might also like...

Lolis-rest - RESTful API for lolis-api

Lolis REST RESTful + Website for Lolis API. Introduction This is a RESTful API which will be used on Lolis API Website and Wrapper. This API uses Imgu

Aug 11, 2022

A focused RESTful server framework for Deno 🌰🦕

acorn Rapidly develop and iterate on RESTful APIs using a strongly typed router designed for Deno CLI and Deno Deploy. import { Router } from "https:/

Dec 10, 2022

Transform URLs in strings to actual links.

Transform URLs in strings to actual links.

Transform URLs in strings to actual links. It will find valid links in the given string and create a tags for it. Internally, it uses this Regex to

Nov 4, 2022

Generate colorful and temporarily identifiable SVGs with unique urls.

Generate colorful and temporarily identifiable SVGs with unique urls.

reptiles.dev Generate colorful and temporarily identifiable SVGs with unique urls.

Dec 6, 2022

Change import URLs in JavaScript code using import maps. e.g. `import * from "before"` to `import * from "after"`

esm-import-transformer Can transform any ESM source code import URLs using an import maps object. This package works in ES modules or in CJS. // Befor

Jul 31, 2022

Hash.js is a 0.5 KB script that lets you in a super simple way manipulate everything behind # in urls.

Hash.js - URL Hash Manipulation Hash.js is a 0.5 KB script that lets you in a super simple way manipulate everything behind # in urls. Tested in lates

Aug 1, 2022

Jump to github urls (browser addon)

Jump to github urls (browser addon)

Currently a Firefox addon. Find GitHub locations quickly using your browser's history. Usage Use your mouse or keyboard. Use the filter to search for

Nov 28, 2022

RESTful API using Hapi NodeJs Framework. This app is project from Dicoding Couses, Belajar Membuat Aplikasi Back-end untuk Pemula

RESTful API using Hapi NodeJs Framework. This app is project from Dicoding Couses, Belajar Membuat Aplikasi Back-end untuk Pemula

Jan 3, 2022
Owner
Anas Hamed
Software Engineer
Anas Hamed
Borscht - A Russian service monitor to track the uptime of domains and services

borscht ?? Borscht is a simple uptime and status monitor of Russian sites and services You can view the public status page here ?? About ?? This proje

Grant Birkinbine 10 Jul 8, 2022
A modern uptime monitoring tool & status page based on Supabase.

StatusBase (Supabase) Uptime monitoring tool & beautiful status pages Powered by Supabase! Free • Open Source • Notification View Demo · Report Bug ·

StatusBase 20 Dec 3, 2022
Changd is a open source web monitoring application for monitoring visual site changes using screenshots, XPath's or API's.

Changd is a open source web monitoring application and a free alternative to ChangeTower.com, Hexowatch.com, and other SaaS-based solutions. Changd ca

Paul Aschmann 110 Jan 3, 2023
Journeys is a django based community-focused website that allows users to bookmark URLs (through chrome extension) and share their journeys through timelines.

Journeys is a django based community-focused website that allows users to bookmark URLs (through chrome extension) and share their journeys through timelines. A timeline is a collection of links that share a common topic or a journey of building and learning something new. Users can create timelines, share them publicly, and explore resources.

Students' Web Committee 14 Jun 13, 2022
API of my readings, developed in Nest.js, MongoDB, Nginx and Dockerized

My Readings step by step for configuration with docker OBS: required docker and docker-compose cp -r .env.sample .env docker-compose up example what t

William Koller 30 Jul 1, 2022
Scrape data from Instagram without applying for the authenticated API 🎯

scraper-instagram Scrape data from Instagram without applying for the authenticated API. Getting started Prerequisites NodeJS NPM or Yarn Install From

fabi.stehle 11 Jan 5, 2023
A dockerized express mysql starter using typescript which iclude user management

A dockerized express mysql starter using typescript which iclude user management

Nimatullah Razmjo 2 Jan 26, 2022
Atlan is a CLI that helps you to manage local dockerized infrastructure without any needed knowledge on Docker and Docker Compose.

Atlan CLI Atlan is a CLI that helps you to manage local dockerized infrastructure without any needed knowledge on Docker and Docker Compose. What is A

Myastro 10 Aug 17, 2022
A TypeScript library for OPAQUE Asymmetric Password-Authenticated Key Exchange Protocol

opaque-ts This is a Typescript library for the Asymmetric Password-Authenticated Key Exchange (OPAQUE) protocol. Use Available at: @cloudflare/opaque-

Cloudflare 51 Dec 30, 2022