Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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.
- Host: GitHub
- URL: https://github.com/baguilar6174/node-monitoring-app
- Owner: baguilar6174
- Created: 2023-12-22T21:52:44.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-02T21:17:07.000Z (11 months ago)
- Last Synced: 2024-01-03T22:00:29.324Z (11 months ago)
- Topics: clean-architecture, cron, mongodb, mongoose, nodejs, nodemailer, postgresql, prisma, solid, typescript
- Language: TypeScript
- Homepage:
- Size: 251 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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)