diff --git a/docs/index.md b/docs/index.md index 64a49893..5a4db505 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,6 @@ # Urbanize -Bem-vindo ao **Urbanize**, um projeto desenvolvido na disciplina de Métodos de Desenvolvimento de Software (MDS) do curso de Engenharia de Software da Universidade de Brasília (UnB). Este projeto visa em fazer o mapeamento e consolidação de dados sobre obras e serviços públicos do DF, utilizando informações extraídas do [Secretaria de Estado de Obras e Infraestrutura do Distrito Federal - SODF](http://dados.df.gov.br/pt_BR/organization/sinesp-secretaria-de-estado-de-infraestrutura-e-servicos-publicos-do-distrito-federal) +Bem-vindo ao **Urbanize**, um projeto desenvolvido na disciplina de Métodos de Desenvolvimento de Software (MDS) do curso de Engenharia de Software da Universidade de Brasília (UnB). Este projeto visa em fazer o mapeamento e consolidação de dados sobre obras e serviços públicos do DF, utilizando informações extraídas do [ObrasGov](https://obrasgov.sistema.gov.br/cipi-frontend/pesquisa-aberta-projetos) --- @@ -22,7 +22,7 @@ O **Urbanize** tem como objetivos principais: ## Principais Funcionalidades -- **Coleta e Atualização de Dados:** Extração de informações do Censo de Obras usando técnicas de web scraping. +- **Coleta e Atualização de Dados:** Extração de informações do Censo de Obras usando API's. - **Processamento de Dados:** Realização de análises descritivas automatizadas para processar e interpretar os dados. - **Confiabilidade dos Dados:** Implementação de validações e tratamento de erros para garantir a precisão e integridade dos dados coletados. - **Visualização de Dados:** Desenvolvimento de uma interface intuitiva e responsiva para a apresentação mapeada, facilitando a análise e interpretação. diff --git a/docs/projects/arquitetura.md b/docs/projects/arquitetura.md index 75d1bc39..b9b3ab1c 100644 --- a/docs/projects/arquitetura.md +++ b/docs/projects/arquitetura.md @@ -6,10 +6,6 @@ O **Urbanize** é constituído de cinco componentes principais: - **Backend/API:** Gerencia a lógica de negócios e atua como intermediário entre o frontend e o banco de dados. Ele processa as solicitações dos usuários, executa as regras de negócio e retorna os dados apropriados para o frontend. -- **Scraper:** Responsável por coletar dados diretamente, raspando as informações relevantes de suas plataformas. Esses dados brutos são a base para as análises e visualizações realizadas pelo sistema. - -- **ETL (Extract, Transform, Load):** Depois que os dados são raspados pelo Scraper, o processo de ETL entra em ação. Ele organiza, transforma e carrega os dados nas tabelas do banco de dados, garantindo que eles estejam estruturados de forma eficiente e prontos para serem utilizados pelo backend e visualizados no frontend. - - **Banco de Dados:** Armazena e organiza os dados necessários para o funcionamento do Urbanize. É o repositório central onde todos os dados coletados, processados e organizados são mantidos para acesso e consulta. **Arquitetura do Urbanize** @@ -65,32 +61,18 @@ O **backend/API** é responsável pela busca, regras de negócio e tratamento do - **Nodemon:** Ferramenta que reinicia automaticamente o servidor Node.js quando mudanças são detectadas, agilizando o desenvolvimento. - **ESLint:** Ferramenta de linting que identifica e corrige problemas de estilo e padrões no código, garantindo a qualidade e consistência. - **Swagger:** Ferramenta para documentação interativa de APIs, permitindo a exploração e testes das rotas da API. -- **Supabase:** Plataforma de backend como serviço usada para conectar ao banco de dados PostgreSQL. --- -## Scraper +## API -O **scraper** é responsável por extrair dados diretamente da plataforma do SODF, realizando a raspagem de informações relevantes. Esses dados brutos, coletados de forma automatizada, servem como base para as análises e visualizações do sistema. O scraper navega pelos sites, interage com os elementos das páginas e extrai os dados necessários para o Urbanize. +Uma **API** (Application Programming Interface, ou Interface de Programação de Aplicações) é um conjunto de definições e protocolos que permite que diferentes sistemas ou softwares se comuniquem entre si de maneira estruturada e padronizada.. **Tecnologias Utilizadas:** -- **Selenium:** Biblioteca para automação de navegadores web, permitindo que o scraper interaja com páginas da web de forma programática, clicando em botões, preenchendo formulários, e navegando entre páginas. -- **re (Regex):** Módulo de expressões regulares em Python, usado para encontrar e manipular padrões específicos de texto dentro dos dados raspados. - -A fonte dos dados extraídos pelo scraper: [SODF_data](http://dados.df.gov.br/pt_BR/organization/sinesp-secretaria-de-estado-de-infraestrutura-e-servicos-publicos-do-distrito-federal) - ---- - -## ETL - -O **ETL** (Extract, Transform, Load) é o processo responsável por transformar os dados brutos coletados pelo scraper em um formato estruturado e organizado para armazenamento no banco de dados. Este processo garante que os dados estejam limpos, consistentes e prontos para serem usados nas análises do Urbanize. - -**Tecnologias Utilizadas:** - -- **Pandas:** Biblioteca Python para manipulação e análise de dados, utilizada no ETL para realizar a limpeza, transformação e organização dos dados extraídos, preparando-os para o carregamento no banco de dados. -- **SQLAlchemy:** Biblioteca de mapeamento objeto-relacional (ORM) para Python, utilizada para interagir com o banco de dados durante a etapa de carregamento dos dados processados, facilitando as operações de inserção e atualização no banco. +- **Axios:** é uma biblioteca JavaScript usada para fazer requisições HTTP de maneira simples e eficiente. Ela funciona tanto em navegadores quanto em ambientes Node.js, permitindo que você se conecte a APIs ou servidores, envie dados e receba respostas. +A fonte dos dados extraídos pelo api: [Obrasgov](https://api.obrasgov.gestao.gov.br/obrasgov/api/swagger-ui/index.html#/Execu%C3%A7%C3%A3o%20F%C3%ADsica/buscarPorFiltro_1) --- @@ -106,8 +88,6 @@ Veja sua modelagem: **Tecnologias Utilizadas:** - **PostgreSQL:** Sistema de gerenciamento de banco de dados relacional de código aberto, usado para armazenar e gerenciar os dados de forma eficiente e segura. Ele oferece suporte a operações complexas e é altamente escalável, adequado para o volume e a complexidade dos dados no Urbanize. -- **Supabase:** Plataforma de backend como serviço, que fornece uma interface simplificada para o PostgreSQL, facilitando o acesso, gerenciamento e integração com o banco de dados através de APIs e outras ferramentas de desenvolvimento. - ---