Skip to content

Commit

Permalink
atualização da documentação
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriel-lima258 committed Nov 19, 2024
1 parent 7c0631b commit 5208bb4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 26 deletions.
4 changes: 2 additions & 2 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -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)

---

Expand All @@ -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.
Expand Down
28 changes: 4 additions & 24 deletions docs/projects/arquitetura.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**
Expand Down Expand Up @@ -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)

---

Expand All @@ -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.


---

Expand Down

0 comments on commit 5208bb4

Please sign in to comment.