Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/paulohenriqueoliveiradealmeida/sensor-metrics-dashboard-backend
Backend em Python com FastAPI para capitação de dados de sensores e transmissão para dashboards via Websocket
https://github.com/paulohenriqueoliveiradealmeida/sensor-metrics-dashboard-backend
docker fastapi mqtt python websocket
Last synced: about 2 months ago
JSON representation
Backend em Python com FastAPI para capitação de dados de sensores e transmissão para dashboards via Websocket
- Host: GitHub
- URL: https://github.com/paulohenriqueoliveiradealmeida/sensor-metrics-dashboard-backend
- Owner: PauloHenriqueOliveiradeAlmeida
- Created: 2024-11-17T02:55:18.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-17T03:49:44.000Z (2 months ago)
- Last Synced: 2024-11-17T04:25:00.359Z (2 months ago)
- Topics: docker, fastapi, mqtt, python, websocket
- Language: Python
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🚨 Sensor Metrics Dashboard
Projeto desenvolvido como atividade avaliativa para matéria de IOT, o projeto consiste em um backend que recebe dados via MQTT, processa-os e os propaga via Websocket aos clientes conectados
## 📚 Stack usada
![Stack](https://img.shields.io/badge/fastapi-blue?logo=fastapi&logoColor=white&style=for-the-badge) ![Stack](https://img.shields.io/badge/redis-red?logo=redis&logoColor=white&style=for-the-badge)
## 🦾 Funcionalidades
- Recebe dados via MQTT
- Processa os dados, gerando:
- Desvio padrão
- Correlação entre demais dados
- Salva os dados em um banco em memória (Redis)## 🔧 Configuração do projeto
### 🐋 Com Docker Compose
execute o seguinte comando:
```ini
docker-compose up --build
```### 😥 Sem Docker Compose
#### 📁 Ajustar variáveis de ambienteCrie um arquivo `.env` na pasta ```api/``` e adicione as variáveis necessárias (há um `.env.example` de demonstração):
```ini
REDIS_HOST=string
REDIS_PORT=integer
REDIS_DB=integerMQTT_BROKER=string
MQTT_PORT=integer
```### 🏞️ Criação de um ambiente virtual
Crie um novo ambiente virtual:
```ini
python -m venv .venvsource .venv/bin/activate
```### 📦 Instalação dos pacotes
Execute a instalação das dependências necessárias:
```ini
pip install --no-cache-dir -r requirements.txt
```### 🚀 Executando o projeto
Execute o comando de inicialização:
```ini
fastapí run --host 0.0.0.0 --port 8000
```## 🏃 Testando
Para testar, será necessário utilizar algum cliente como Postman, ou, instalar o frontend e os sensores do projeto:Frontend: https://github.com/PauloHenriqueOliveiradeAlmeida/sensor-metrics-dashboard-web
Sensores: https://github.com/PauloHenriqueOliveiradeAlmeida/sensor-metrics-sensors