Skip to content

luscalima/nou

Repository files navigation

nou

API monitoring application

About nou

nou is an open-source monitoring platform designed to periodically provide insights into the health of websites and APIs. Utilize the nou UI to easily manage monitors, allowing you to observe your applications' uptime and receive timely notifications in the event of any failures.

⚠️ This repo only contains de source code of the application's server-side

Table of contents

Build with

Features

  • Monitor managment

⚠️ Other features are being implemented. See the roadmap.

Get started

Requirements

Installation and usage

  1. Clone this repo
$ git clone [email protected]:luscalima/nou.git # ssh
  1. Install the dependencies
$ pnpm install
  1. Start the required services (database etc.)
$ docker compose up -d
  1. Run the migrations
$ pnpm migrate:latest
  1. Start the application
$ pnpm dev

Architecture

This project implements a more simplified architecture in the MSC (Model, Service, Controller) format. The following bullets explain each of these layers in more non-technical detail:

  • The model layer is responsible for representing data and defining the business domain. The components that compose this layer are:
    • Models. Classes that define the form and nature of data.
    • Repositories. Abstractions that define the signature of methods that manipulate data defined by models.
    • Providers: Concrete implementations of repositories with a specific technology.
  • The service layer is responsible for handling the business logic. The component that compose this layer is:
    • Services. Classes that expose methods to manipulate rules and handle business errors.
  • The controller layer is responsible for handling API requests and resposes. The component that compose this layer is:
    • Controllers. Classes that expose static methods that handle things related to the HTTP protocol and validate input data and parameters.

Roadmap

Version 0.1.0 (Upcoming release)

  • Monitor management:
    • CRUD operations.
  • Contact management:
    • CRUD operations.
    • Linking a contact to a monitor.
  • Monitoring
    • Script to run cronjobs based on parameters.
    • Service for cronjobs handling.
  • User interface:
    • Monitor management.
    • Contact management.
  • Alert for contacts:
    • Email sending.

Future plans

  • Automation with CI/CD.
  • Community feedback.

Contributing

  1. Fork the repository
  2. Create a new branch (feature branch method):
$ git checkout -b feature/new-feature
  1. Make your changes and commit them.
  2. Push to the branch:
$ git push origin feature/new-feature
  1. Submit a pull request.

Releases

No releases published