Mapeamento de Obras Públicas do DF

Colaboradores do Projeto

Caio Melo

Caio Melo

João Pedro Rodrigues

João Pedro Rodrigues

Foto do Colaborador 3

Marcos Vinicius

Foto do Colaborador 4

Nathan Batista

Foto do Colaborador 5

Júlia dos Reis

Foto do Colaborador 6

Cayo Alencar

História do Projeto

O Projeto de Mapeamento de Obras Públicas do Distrito Federal nasceu da necessidade de otimizar o acompanhamento e a transparência das obras públicas em andamento na região. Com o crescente volume de recursos públicos destinados a investimentos em infraestrutura e desenvolvimento urbano, surgiu a ideia de criar uma ferramenta que facilitasse a visibilidade dessas obras, garantindo uma maior transparência para a população do Distrito Federal.

Tecnologias Usadas

Sobre o Grupo

Nós fazemos parte do SQUAD 7 da disciplina de Métodos de Desenvolvimento de Software, ministrada pela professora Carla Rocha, que é composto por estudantes de Engenharia de Software que aplicam conceitos e metodologias de desenvolvimento em projetos reais. O grupo foca na utilização de práticas ágeis, como Scrum, e na integração de técnicas de qualidade, testes e gerenciamento de projetos. Além de promover a aprendizagem prática e colaborativa, o grupo também busca inovação e pesquisa em soluções tecnológicas. Através de projetos como o Mapeamento de Obras Públicas do DF, os alunos têm a oportunidade de aplicar seus conhecimentos em desafios reais, preparando-os para o mercado de trabalho e contribuindo para a sociedade.

Como Subir o Ambiente

  1. Clone o Repositório
    
                git clone https://github.com/unb-mds/2024-2-Squad07
                cd 2024-2-Squad07
                            
  2. Configuração do Backend em Node.js
    • Navegue até o diretório do projeto em Node.js:
      cd ObrasGov
    • Instale as dependências:
      npm install
  3. Configuração do Mapa
    • Navegue até o diretório do mapa:
      cd Mapa
    • Instale as dependências:
      npm install
  4. Configuração do BOT
    • Navegue até o diretório BOT:
      cd Bots
    • Instale as dependências do Python:
      pip install -r requirements.txt
    • Crie um arquivo .env no diretório principal do projeto e adicione as variáveis de ambiente necessárias, como chaves de API para o Cohere e Tweepy.
  5. Executando o Projeto
    • Para rodar o backend em Node.js:
      npm start
    • Para rodar o frontend:
      npm start
    • Para executar os scripts Python:
      python bot_Twitter.py
  6. Testes e Pull Requests
    • Teste suas alterações localmente para garantir que tudo funciona como esperado.
    • Crie uma nova branch para suas alterações:
      git checkout -b minha-nova-feature
    • Faça commit das alterações e envie para o repositório:
      
                  git add .
                  git commit -m "Descrição das alterações"
                  git push origin minha-nova-feature
                                      
    • Abra um Pull Request descrevendo suas contribuições.

Arquitetura

O sistema de mapeamento de obras públicas no DF foi desenvolvido para permitir que qualquer cidadão interessado tenha acesso a dados relevantes referentes ao andamento das obras públicas através de uma aplicação web. A aplicação apresenta um mapa interativo contendo as informações sobre as obras e conta com um robô (Bot) responsável por denunciar anomalias nas obras na rede social X.

O modelo arquitetural adotado no projeto foi o modelo em camadas, devido à facilidade de manutenção, escalabilidade e reutilização de componentes. Isso permite maior flexibilidade e controle das operações, utilizando a modularização do código.

Objetivos com a Escolha da Arquitetura

Descrição das Camadas

Camada de Apresentação

Esta é a camada responsável pela interação com o usuário, apresentando a interface web como um mapa interativo com pins clicáveis relacionados diretamente com a localização da obra referenciada. Ao clicar no pin, o usuário visualiza as informações da obra. Foi construída com HTML, CSS e JavaScript.

Camada de Aplicação (Lógica de Negócios)

Esta camada é responsável pelas regras de negócios, interação com outras camadas e APIs externas, e processamento de dados. Atua como a lógica do projeto, dividida em dois componentes:

APIs requisitadas pelo Backend:

APIs requisitadas pelo Robô (Bot):

Camada de Dados

A camada de dados do sistema utiliza arquivos JSON para armazenar as informações. Cada conjunto de dados é representado como um objeto JSON ou uma lista de objetos JSON, que podem ser facilmente manipulados usando bibliotecas e frameworks de parsing JSON. Esses arquivos são armazenados no sistema de arquivos local ou em um repositório de objetos, como um serviço de armazenamento em nuvem.

Documentação do Projeto

1. Introdução

1.1 Objetivo

Este documento especifica os requisitos para o desenvolvimento do projeto Mapeamento de Obras do grupo 07, parte da disciplina de Métodos de Desenvolvimento de Software 2024.2. O objetivo do projeto é exibir dados de obras públicas do Distrito Federal por meio de um mapa interativo.

1.2 Escopo

  • Apresenta obras públicas do DF utilizando um mapa interativo.
  • Coleta dados fornecidos pela API ObrasGov e os insere em um mapa da biblioteca Leaflet.
  • Oferece recursos de visualização, detalhamento e filtros para facilitar o acesso às informações.

1.3 Tecnologias Utilizadas

  • Front-end: HTML, CSS, JavaScript e Leaflet
  • API: ObrasGov

2. Descrição Geral

2.1 Visão Geral do Sistema

O sistema permitirá que os usuários visualizem um mapa interativo com pinos representando obras públicas. Ao clicar em um pino, os detalhes da obra serão exibidos. O sistema incluirá funcionalidades de filtros para personalizar as informações exibidas.

2.2 Objetivos do Usuário

  • Visualizar obras públicas em andamento, concluídas ou inacabadas.
  • Acessar informações detalhadas das obras, como valores, datas e status.
  • Filtrar obras por região, status ou período de execução.

3. Requisitos Funcionais

3.1 Épico: Mapa Interativo de Obras

  • Feature: Exibir um pino no mapa para cada obra com informações detalhadas, incluindo:
    • Nome da obra
    • Valor investido
    • Data de início e previsão de término
    • Status da obra
  • Feature: Filtros de pesquisa no mapa por:
    • Status da obra
    • Nome da obra
    • Prazo de entrega da obra

3.2 Épico: Lista Detalhada de Obras Públicas

  • Feature: Ao clicar em uma obra na lista, serão exibidos todos os seus detalhes, como:
    • Nome da obra
    • Responsáveis pela obra
    • Status da obra
    • Prazo de entrega da obra
  • Feature: Filtros de pesquisa na lista por:
    • Status da obra
    • Nome da obra
    • Prazo de entrega da obra

3.3 Épico: Bot para Reportar Anomalias

  • Feature: Detectar automaticamente anomalias (atrasos ou inconsistências) nas obras.
  • Feature: Postar atualizações no Twitter com informações da anomalia identificada na respectiva obra.
  • Feature: Gerar textos humanizados para os posts no Twitter, utilizando IA para se assemelhar à escrita natural.

4. Requisitos Não-Funcionais

4.1 Usabilidade

  • A interface deve ser intuitiva e amigável, com elementos visuais organizados logicamente.
  • O design deve ser responsivo, garantindo uma boa experiência em diferentes dispositivos (desktop, tablet, mobile).
  • O sistema deve facilitar a navegação e o uso das funcionalidades.

5. User Story Map

Para organizar e visualizar melhor os requisitos do projeto, foi elaborado um User Story Map no Figma. Este mapa divide os requisitos em épicos e features, com a previsão de adicionar, futuramente, as histórias de usuários.

Visualizar o mapa no Figma

Protótipo de baixa fidelidade

Este é nosso protótipo de baixa fidelidade. Sua finalidade é que possamos ter uma ideia de como seriam as telas principais do nosso sistema

Protótipo de alta fidelidade

Navegue pelo nosso protótipo de alta fidelidade do sistema de mapeamento de obras públicas no DF. O protótipo foi criado no Figma

Explore as atas do nosso projeto

Acesse a pasta do nosso projeto no GitHub para obter mais detalhes.

Acessar Atas