Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/baguilar6174/node-monitoring-app

This repository contains a monitoring application to create logs on different data sources. Also send emails using NodeMailer service. The application was implemented using clean architecture concepts and SOLID principles.
https://github.com/baguilar6174/node-monitoring-app

clean-architecture cron mongodb mongoose nodejs nodemailer postgresql prisma solid typescript

Last synced: 12 days ago
JSON representation

This repository contains a monitoring application to create logs on different data sources. Also send emails using NodeMailer service. The application was implemented using clean architecture concepts and SOLID principles.

Awesome Lists containing this project

README

        

# Node NOC (Monitoring Application)

This repository contains a monitoring application to create logs on different data sources. Also send emails using NodeMailer service. The application was implemented using clean architecture concepts and SOLID principles.

## Installation

Clone this repository

```bash
git clone https://github.com/baguilar6174/node-noc-app.git
```

Install dependencies

```bash
yarn
```

Clone `.env.template` file and rename to `.env`.

Replace your environment variables in `.env` file

## Running the app

If you need local mongo database

- Install docker
- Run `docker compose up -d` This command create a local volumen in root project to save data.

**Important**: If you don't need mongo from Docker, set your configuration into `.env` file `docker-compose.yaml` create two containers:

1. **Mongo Database**: the volume of this database is allocated in the root of your project `./mongo` if you delete this folder you'll lose your data.
2. **Postgres Database**: the volume of this database is allocated in the root of your project `./postgres` if you delete this folder you'll lose your data.

- Run `npx prisma migrate dev --name init` to create a migrations and schema in your Postgres database

- Run `npx prisma db push` to create tables and relationships

- Run `yarn dev`

If your want to create build production, run `yarn build`

## My process

### Built with

- Node
- Typescript
- Eslint & Prettier
- NodeMailer
- Mongo & Mongoose
- Postgres & Prisma

### What I learned

- Clean Architecture
- Entities
- Data sources
- Repositories
- Abstract classes
- Implementations
- Dependency injection
- Use Cases
- Services
- CRON Task
- Environment variables
- NodeMailer

## Development Features

- Clean Architecture
- SOLID

## Improves

-

## Stay in touch

- Website - [www.bryan-aguilar.com](https://www.bryan-aguilar.com/)
- Medium - [baguilar6174](https://baguilar6174.medium.com/)
- LinkeIn - [baguilar6174](https://www.linkedin.com/in/baguilar6174)