Trabalho de API do 2º semestre da FATEC.
Ter um bom entendimento do clima de uma região é imprescindível para o planejamento de atividades em várias áreas. Por exemplo, conhecer a temperatura e umidade média em determinados períodos do ano pode influenciar na escolha do que plantar em uma fazenda. Atualmente, existem diversas bases de dados públicas que fornecem essas informações na forma de arquivos CSV. Entretanto, existem diversos arquivos para uma mesma cidade (um para cada estação de monitoramento) que, dependendo do tipo da estação, podem apresentara diferentes formatos. Com base no exposto, gostaríamos de um Sistema de Banco de Dados capaz de receber esses arquivos, validar seu conteúdo e prover relatórios.
- Projetar Banco de Dados relacional com múltiplas entidades e relacionamentos;
- Organizar Equipes por Competências;
- Levantar e Registrar Requisitos Funcionais e Não Funcionais usando técnicas de Métodos Ágeis e Tradicionais;
- Projetar Arquitetura Lógica do Sistema;
- Implementar Aplicação (com persistência) usando Linguagem de Programação Java Desktop.
- Linguagem Java Desktop e conexão com Banco de Dados usando JDBC;
- Banco de Dados modelo Relacional;
- Git.
- Relatório de valor médio das variáveis climáticas por cidade. Deve ser possível escolher uma cidade e um período de tempo. O relatório deve ter periodicidade horária (um registro a cada hora);
- Relatório de situação, apresentando os valores médios das últimas medidas para cada cidade;
- Gerenciamento de estações, cidades e unidades de medida. Deve ser possível visualizar e alterar informações sobre esses elementos do sistema. Cada estação está localizada em uma cidade do estado de SP. Cada variável climática medida possui uma unidade de medida;
- Carregamento e validação de arquivos CSV contendo variáveis climáticas. Registros suspeitos (exemplo: registro com temperatura acima de 60 graus Celsius ou inferior a -20 graus Celsius) devem ser armazenados a parte para revisão manual. Cada arquivo possui registros de apenas uma estação (referenciada no nome do arquivo). Cada registro apresenta valores para todas as variáveis, mas elas devem ser armazenadas separadamente (um registro para temperatura, outro para umidade, etc, em vez de um único registro contendo temperatura, umidade, etc);
- Tratamento de registros suspeitos, que permita exclusão ou revisão. Deve ser possível alterar os valores e passá-los à base de dados principal ou excluí-los.
- Linguagem Java;
- Banco de Dados Relacional;
- Documentação: manual de usuário, diagrama entidade-relacionamento e instruções de instalação.
Sprints | Início | Fim |
---|---|---|
1ª sprint | 25/03 | 14/04 |
2ª sprint | 15/04 | 05/05 |
3ª sprint | 06/05 | 26/05 |
4ª sprint | 27/05 | 16/06 |
Feira de Soluções | 27/06 | 27/06 |
Sprint 1:
- Interpretar um documento CSV que contém dados metereólogicos
Sprint 2:
- Gerar relatórios de valor médio das variáveis climáticas por cidade
- Gerar relatório de situação
Sprint 3:
- Gerar relatório para se plotar um gráfico boxplot
- Gerenciar valores limites a serem utilizados como parametro para definir valores de risco nas medições
Sprint 4:
- Alterar valores de risco nas medições
- Gerir as unidades de medida usadas no sistema.
- Gerir as cidades e as estações, tal como a relações entre estação e cidade
Board Kanbam com a priorização
Ao abrir os cards do kanbam será possível ver a priorização no lado direito como um dos atributos dos cards.
Como | Eu quero | Valor | Prioridade | Sprint | Status |
---|---|---|---|---|---|
Pesquisador | Interpretar um documento CSV que contem dados metereólogicos | Facilitar a leitura dos documentos das estações | Alta | 1 | Finalizado |
Pesquisador | Gerar relatórios de valor médio das variáveis climáticas por cidade | Agilidade na leitura e na interpretação de dados uteis envolvendo uma analise da cidade | Alta | 2 | Finalizado |
Pesquisador | Gerar relatório de situação | Agilidade em obter os dados relacionados relacionados a situação atual | Alta | 2 | Finalizado |
Pesquisador | Gerar relatório para se plotar um gráfico boxplot | Agilidade em obter os dados para plottar um gráfico util para analise de dados | Alta | 3 | Finalizado |
Pesquisador | Gerenciar valores limites a serem utilizados como parametro para definir valores de risco nas medições | Ter valores possivelmente suspeitos de acordo com a nescessidade | Média | 3 | Finalizado |
Pesquisador | Alterar valores de risco nas medições | Manter dados com melhor verificação em todos os relatórios | Média | 4 | Finalizado |
Pesquisador | Gerir as cidades e as estações, tal como a relações entre estação e cidade | Informações mais completas e personalizadas sobre as estações e cidades | Baixa | 4 | Finalizado |
Pesquisador | Gerir as unidades de medida usadas no sistema. | Informações mais completas referente as unidades usadas no relatóro | Baixa | 4 | Finalizado |
- Instale o postgreSQL localmente Tutorial
- Realize a conexão preenchendo as variáveis do config config.properties
db.url = "jdbc:postgresql://localhost:5432/"
db.name = "db_javalee"
db.user = "postgres"
db.password = "javalee"
- Realize a conexão com postgresql com as mesmas variáveis no DBeaver ou no Pgjavalee do postgresql
- Abra um editor SQL e execute o script de criação do banco de dados db_javalee.sql
O trabalho conta com docker compose para facilitar a execução do banco de dados. Para isso, é necessário ter o docker e docker compose instalados em sua máquina.
Roda o comando na raiz do projeto via terminal
docker compose up -d
DBeaver é excelente para visualizar o banco de dados, conectar com docker e manipular os dados. Download
No Dbeaver, é possível realizar a conexão com as credenciais via URL
jdbc:postgresql://localhost:5432/db_javalee
- Abra um editor SQL e execute o script de criação do banco de dados db_javalee.sql Como você já vai ter criado o banco via Dbeaver com nome DB_javalee. Não é necessário rodar a primeira linha do script de criação do banco.
-> ❌ CREATE DATABASE db_javale
Rode o projeto via app.java na pasta javalee
Ou
Faça o dowload da release mais recente!
Integrante | |
---|---|
Vinícius Augusto da Silva Monteiro | |
Ricardo Campos | |
Elbert Jean | |
Isaque Souza | |
Maria Clara | |
Marília Borgo | |
Paloma Soares |