Projetos Relacionados:
A plataforma de dados meteorológicos consiste em um sistema web, em que os usuários, pessoas e instituições públicas ou privadas, podem se cadastrar para compartilhar ou consumir dados meteorológicos.
Os colaboradores, aqueles que desejam enviar dados meteorológicos para a plataforma, registram suas estações meteorológicas, informando nome, localização, instituições parceiras, se a estação e os dados serão públicos e principalmente, selecionar os tipos de dados que serão enviados para o sistema com base nos sensores que a estação meteorológica possui. Uma estação pode ter um ou mais mantenedores e cada mantenedor, que também é um usuário que faz uso de dados da plataforma, está responsável por nenhuma ou várias estações.
Dentre os dados que o mantenedor pode selecionar para que a estação envie, então os de sensores de temperatura, umidade, pressão, radiação solar direta, radiação solar global, direção do vento, pluviômetro e anemômetro, com a possibilidade de expansão mediante solicitação.
Após a conclusão do cadastro de uma estação meteorológica, é gerado um token que é necessário para o envio dos dados, esse envio pode ocorrer de maneira automatizada, cabendo o usuário realizar um script para inserção dos dados, ou manual utilizando a documentação da API.
No backend foi a implementação do endpoint que recebe os dados das estações meteorológicas e os identifica por meio de um token unico para casa ussuário. Os dados são tratados e inseridos em um banco de dados de séries temporais. Através da API REST esses dados são disponibilizados para aplicações, com essa mesma API, também é realizado a comuniicação feita a comunicação do frontend e mobile.
Essa aplicação possui dois bancos de dados, o primeiro é SQL, e neste estão armazenados os cadastros de usuários, de estações meteorológicas, parceiros, status, etc. No segundo, um banco NoSQL para séries temporais, no qual estão as informações meteorológicas.
Ao acessar o sistema, um usuário mantenedor, ve uma tela onde estão em uma tabela as suas estações que administra e que ele favoritou no sistema para consumir dados. Para todas essas estações são exibidas na tabela alguns parâmetros como status de envio de dados (ativa ou inativa).
Ao acessar a página de uma estação, é exibido às dashboards com os dados recebidos durante o dia corrente, juntamente com as informações de status e de acesso aos dados por API. Se tem também uma seção de dados filtrados por parâmetros específicos.
O backend do projeto foi desenvolvido utilizando a stack .NET Core da Microsoft, tendo o C# como linguagem de programação, com o banco de dados SQL Server e o banco de dados NoSQL InfluxDB. A API será desenvolvida utilizando o padrão REST.
Neste repositório está o código fonte do backend da plataforma de dados meteorológicos. O código fonte do frontend pode ser encontrado em aty-frontend, e o código fonte para o mobile pode ser encontrado em aty-mobile.
Para executar o projeto é necessário baixar a instalar a IDE Visual Studio, o .NET Core 6 e instalar o banco de dados SQL Server. Para o banco de dados NoSQL, é necessário baixar e instalar o InfluxDB, recomendamos usar o Docker para executar instâncias com os banco de dados, para ambos tem imagem disponível no Docker Hub.
Após executar os bancos de dados (SQL Server e InfluxDB) é necessário configurar as respectivas variáveis de ambiente no arquivo appsettings.json
do projeto src/AtyBackend.API
, para o SQL Server é necessário configurar a string de conexão, e para o InfluxDB é necessário configurar o endereço do servidor, porta, usuário, senha e bucket na repository InfluxDbWeatherDataRepository
em src/AtyBackend.Infrastructure/Repositories
.
Dentro de src/AtyBackend.API
, no arquivo appsettings.json
também estão as configurações de envio de e-mail, geração de token JWT e demais parâmetros do sistema, que devem ser configurados de acordo com o ambiente de execução. Após configurar o ambiente, dentro da pasta src/AtyBackend.API
, execute o comando dotnet run
para executar o projeto.
Esse projeto foi desenvolvido por Luiz Fernando Freitas Silva$^1$, Romildo C Marques$^2$ e Victor Gabriel F Ferrari$^3$, alunos de Tecnologia em Análise e Desenvolvimento de Sistemas (IFPR - Foz), sob orientação dos professore Daniel Di Domenico$^4$, Felippe Alex Scheidt$^5$, Juliana Hoffmann Quiñónez Benacchio$^6$ e professora Marcela Turim Koschevic$^7$.