Acadêmico

AgroSolutions

Microsserviços .NET para o agronegócio.

MVP de plataforma para o agronegócio em ASP.NET Core, com quatro microsserviços e eventos via RabbitMQ. Feito na pós da FIAP.

Sobre o projeto

O que é o AgroSolutions

O AgroSolutions nasceu como projeto de hackathon da pós-graduação em Arquitetura de Sistemas .NET da FIAP (curso 8NETT). Ele cobre a análise do projeto, a arquitetura de software e o desenvolvimento de um MVP de plataforma para o agronegócio, com foco em produtores rurais, propriedades, talhões e dados de sensores de campo, como umidade e temperatura.

A solução é um monorepo com quatro microsserviços em ASP.NET Core, cada um em Arquitetura em Camadas (API, Application, Domain e Infrastructure), que conversam por eventos no RabbitMQ.

Recursos

O que o AgroSolutions faz

Identity Service

Autenticação com JWT Bearer e gestão dos produtores rurais (agro-identity).

Management Service

Cadastro de propriedades e talhões, com uma cópia local dos dados do produtor recebida por evento (agro-management).

Ingestion Service

Recebe os dados dos sensores e os publica na fila, sem conhecer quem vai consumi-los (agro-ingestion).

Alerts Service

Consome a fila, aplica regras de umidade e temperatura, gera alertas e expõe o status para um dashboard (agro-alerts).

Eventos no RabbitMQ

MassTransit sobre RabbitMQ, com ProducerRegisteredEvent, FieldCreatedEvent e SensorDataReceivedEvent. O contrato fica na biblioteca AgroSolutions.Shared.

Pronto para containers

Um Dockerfile por serviço, pipelines em .github/workflows e um projeto de testes xUnit em cada serviço.

FAQ

Perguntas frequentes

Onde foi feito?

Na pós-graduação em Arquitetura de Sistemas .NET da FIAP, como projeto de um hackathon do curso 8NETT.

Quais são os serviços?

Identity, Management, Ingestion e Alerts, cada um em uma pasta do monorepo, mais a biblioteca compartilhada AgroSolutions.Shared com o contrato dos eventos.

Que banco de dados usa?

Entity Framework Core com SQLite, um banco por serviço.

Roda em Kubernetes?

O diagrama de arquitetura do repositório indica a execução em um cluster AKS (Azure Kubernetes Service). Há Dockerfiles para cada serviço.

Como faço o build?

Com docker build a partir da raiz do repositório, apontando com -f para o Dockerfile do serviço, porque os Dockerfiles copiam a biblioteca compartilhada.

Continue explorando

Veja também

Todos os projetos