Skip to content

lohjs-0/biodash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BioDash

Plataforma fullstack de monitoramento em tempo real para tanques biológicos: biorreatores, aquicultura e sistemas BFT.

.NET React PostgreSQL TypeScript SignalR


📸 Preview

Preview do BioDash


🧬 Sobre o projeto

Acesse: https://biodash-web.netlify.app

BioDash nasceu da necessidade de acompanhar parâmetros críticos de sistemas biológicos, temperatura, pH e nível de fluido, com feedback instantâneo e alertas automáticos quando os valores saem dos limites seguros.

O projeto foi construído como uma aplicação de portfólio inspirada em produção, priorizando arquitetura limpa, comunicação em tempo real e práticas modernas de desenvolvimento fullstack.


✨ Funcionalidades

Funcionalidade Descrição
🧪 Gestão de tanques CRUD completo com status online/offline
📡 Tempo real Atualizações via SignalR a cada 5 segundos
🚨 Alertas automáticos Disparo por temperatura, pH e nível fora dos limites
📈 Histórico Gráficos de séries temporais por parâmetro
🤖 Simulador de sensores BackgroundService que elimina dependência de hardware IoT
🌱 Sustentabilidade Calculadora de redução de CO₂ e economia de fertilizantes
🔐 Autenticação JWT com BCrypt, expiração curta e exclusão de conta com confirmação de senha
📱 Responsivo Interface adaptada para mobile e desktop com modo escuro

🏗️ Arquitetura

BioDash/
├── BioDash.Api/          # Backend .NET 9
│   ├── Endpoints/        # Minimal API (Auth, Tanks, Alerts, Users)
│   ├── Services/         # AuthService, TokenService, BackgroundService
│   ├── Data/             # AppDbContext + Repositories
│   ├── Models/           # Entidades do domínio
│   └── DTOs/             # Contratos de entrada e saída
│
└── biodash-client/       # Frontend React + TypeScript
    ├── api/              # Clients HTTP (Axios)
    ├── components/       # Componentes reutilizáveis
    ├── pages/            # Dashboard, Tanks, Alerts, Reports, Settings
    └── store/            # Estado global (Zustand)

🧠 Decisões técnicas

SignalR em vez de polling Comunicação bidirecional eficiente — o servidor empurra dados ao cliente sem requisições repetidas desnecessárias.

Simulador via BackgroundService Elimina dependência de dispositivos IoT reais, tornando o projeto demonstrável em qualquer ambiente.

Minimal API (.NET 9) Endpoints enxutos, sem overhead de controllers, organizados por domínio em arquivos de extensão.

Cascade delete no banco Relações configuradas com OnDelete(DeleteBehavior.Cascade) — exclusão de conta remove todos os dados associados automaticamente.

Zustand no frontend Gerenciamento de estado global leve, sem boilerplate, com stores isoladas por domínio.

PostgreSQL Consistência robusta com suporte futuro a extensões de séries temporais (ex: TimescaleDB).


🚀 Como rodar localmente

Pré-requisitos

Backend

cd BioDash.Api
# Configure a connection string e JWT secret no appsettings.Development.json
dotnet ef database update
dotnet run

Frontend

cd biodash-client
npm install
npm run dev

Acesse: http://localhost:5173


🔐 Segurança

  • Senhas com hash BCrypt (work factor 12)
  • JWT com expiração de 60 minutos
  • Exclusão de conta requer confirmação de senha
  • CORS restrito à origem do cliente
  • Secrets via variáveis de ambiente em produção

📄 Licença

MIT — sinta-se livre para usar como referência ou ponto de partida.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors