Skip to content

RuhamLeal/monitor-inside-app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

116 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Monitor Inside 💻

Summary
  1. About the Project
  2. Technologies
  3. Features
  4. How to Execute the Project
  5. Skills
  6. About Trybe
  7. Contact

About the Project

Monitor Inside is a fullstack web application that provides real-time information about your server and where you can also manage users who can see or edit other users.

The main focus of this application is nodejs' native library, child_process. In the application I opened a child process with the child_process fork method and created a new thread to monitor the server and the main thread was in charge of the user crud api.

The child thread (that monitors the server's state) is in charge of reading the server's state and send it in real time through a socket server, where every 1 second it sends the data to all connected clients, and every 5 seconds it saves the state in the mongodb.

There is also Seq, an application for visualization of application errors, where we can see when the error occurs when monitoring, saving something in mongo or an error in the application.

Details

1️⃣ Databases:

  • The mysql database saves the user data (password, name, email...)
  • The mongo database saves the server status every 5 seconds
  • Docker MySQL container already configured in docker-compose with a service defined as mysql.
  • Docker Mongo container already configured in docker-compose with a service defined as mongo.

2️⃣ Back-end:

  • It runs on port 3001.
  • Nodejs Docker container already configured in docker-compose with a service defined as node-server.

3️⃣ Front-end:

  • It runs on port 8081.
  • Nodejs (Vue) connected in Nginx Web server and container already configured in docker-compose with a service defined as vue_client.

Technologies

✨ Front-end

⚙️ Back-end


Features

  • User login, both for common users and administrators.
  • Real time visualization (one second delay) of the server state that is running the application
  • Register, edit and remove users. Only available for administrator users

How to Execute the Project

To run the project locally, follow the steps below.

  1. Check that your machine has the minimum configuration for the project to run;
  • Unix Distribution Operating System;
  • Docker;
  • Docker-compose version equal to or greater than 1.29.2.
  1. Clone the repository;
git clone https://github.com/RuhamLeal/monitor-inside-app.git
  1. Navigate to the root of the project;
cd ./monitor-inside-app
  1. In the ./backend folder create an .env file from scratch with the contents of env.example

  2. Run command to create the containers

docker-compose up -d --build
	
docker exec -it node_server sh
  1. Inside the server container run:
npx prisma db push

npm run seed
  1. Open your browser and paste the url http://localhost:8081#/login

  2. Open Seq Application in http://localhost:5341

  3. Log in with:

password: AdminPass,
email: admin@admin.com

password: user,
email: user001@user.com,

Skills

  • Data modeling with Prisma and Typescript.
  • Application of the MSC (Model-Service-Controller) and DDD (Domain Driven Design) software architecture concept.
  • Configuring Dockerfiles for back-end and front-end.
  • Application of Object Oriented Paradigm (OOP) principles.
  • Applying SOLID principles.

Contact

Ruham Leal
Email: ruhamxlpro@hotmail.com
Linkedin

Voltar ao topo

About

A Full-stack project using Vuejs, Vuex, Node, JWT, POO, typescript, child process, Web-Sockets

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 54.4%
  • Vue 40.7%
  • JavaScript 3.0%
  • Other 1.9%