Skip to content

alves-dev/sync-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo_horizontal.png

Sobre

A ideia deste projeto é construir um eco sistema de dados e informações referente as minhas atividades diárias; utilizando as mais diversas ferramentas e aplicações diferentes. Idealmente quero utilizar frameworks e linguagens diferentes;

Dado o contexto algumas escolhas não faram sentido do ponto de vista de uma arquitetura ideal, porém o objetivo maior aqui é aprender.

System designer

Foi definido as seguintes separações:

  • domínio: Um domínio pode ter vários sub-domínios, cada domínio deve delimitar sua área conforme os dados.
  • sub-domínio: É uma especificação dentro do domínio, onde deve limitar a algum dado em específico.
Domínio Sub domínio Description
health sleep Responsável por mapear o sono
health exercise Trata dos exercícios físicos
health nutrition Nutrição, alimentos líquidos e sólidos
view view Aplicações pra visualização de dados
data data Ferramentas que lida com dados, como o mysql
health supplementation Suplementos como creatina, whey, etc
health body-measurements Medidas de membros e peso
financial ----- -----
automation tracking Rastreamento de pessoas
orchestration subscription Lida com a orquestração de eventos
vehicle ----- -----
infrastructure servers -----
infrastructure network -----
infrastructure github Responsável por deixar os repositórios organizados
  • Uma aplicação pode lidar com mais de um sub domínio.
  • ----- significa que ainda não foi completamente mapeado e não tem aplicação que lide com isso.

Lista de aplicações na stack:

Componente Domínio Sub domínio Description
BodyTrack health sleep ---
NutriTrack health nutrition ---
life-exercises health exercise Atualmente registra as idas na academia
assistant-link health exercise Legado que cria eventos a partir de request http do HA
Strava health exercise Usado para mapear minha corridas e pedaladas
strava-map health exercise Script que coleta minha atividades no strava e gera um json das rotas para o grafana
EventSync orchestration --- Orquestra os eventos entre os protocolos MQTT e AMQP
Mosquitto orchestration --- Broker MQTT para comunicação com o Home Assistant
RabbitMQ orchestration --- Ferramenta usada para fila de eventos, mais em : eventos
Orchestrator-Subscription orchestration subscription Ela faz a orquestração dos eventos, criando e deletando filas.
Grafana view --- Ferramenta usada para visualização dos dados em forma de gráficos
MySQL data --- Banco de dados relacional
Redis data --- Banco de dados chave valor usado pelos serviços
Json store data --- Um repositório git que age como armazenamento de json que é usado para visualização no grafana
cron-backup data --- Realiza o backup do banco mysql
rclone data, automation --- Copia os backups locais para a nuvem
home assistant automation --- Usado para automações
home assistant app mobile automation --- App mobile do HA
Action schedule automation --- Actions no github que são disparadas por schedule e sobe alguma task na infra local
coredns infrastructure network Servidor DNS interno
swag infrastructure network Proxy reverso
Cloudflare Tunnel infrastructure network Usado para expor aplicações na internet
glances infrastructure --- Monitoramento linux
portainer infrastructure --- Monitoramento docker
Repo inspector infrastructure github Defini padrões/regras que o repo deve seguir, e faz uma checagem para ver se esta seguindo
Google Drive data --- Armazenamento de backups

Aplicações e suas tecnologias:

Application Language Framework Others
BodyTrack Kotlin Spring Boot gradle
EventSync C# .NET
NutriTrack Java Quarkus gradle
life-exercises Kotlin
assistant-link Python Spring Boot gradle, Testcontainers
Orchestrator-Subscription Go
Repo inspector Python uv

Diagramas

diagrama_arquitetura.png diagrama_infraestrutura.png

Para ver a evolução acesse: diagrama/out_pdf


  • Updated on: 2025-05-30 | Updated by: Igor Alves
  • Created on: 2024-10-29 | Created by: Igor Alves

About

Contém e centraliza a documentação e informações do projeto SyncLife

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages