Voltar para Projetos

Sistema de Mineração de Dados Governamentais - API SINESP-VDE

Government Data Mining System - SINESP-VDE API

Python FastAPI Pandas Data Science / Engenharia de Dados Data Science / Data Engineering

Visão Geral do Backend e Engenharia

Backend and Engineering Overview

O projeto API SINESP-VDE é uma API REST desenvolvida em Python para consumir, estruturar e disponiblizar dados públicos avançados de Violência Doméstica providos pelo governo (Sistema Nacional de Informações de Segurança Pública). O foco principal do sistema é lidar com limpeza e extração de insights usando Pandas e tráfego rápido de respostas via FastAPI / Uvicorn.

The SINESP-VDE API project is a REST API developed in Python to consume, structure, and provide advanced public data on Domestic Violence provided by the government (National Public Security Information System). The system's main focus is handling data cleaning and insight extraction using Pandas and high-speed response traffic via FastAPI / Uvicorn.

O Desafio Técnico

The Technical Challenge

Órgãos governamentais tradicionalmente fornecem bases de dados gigantescas de forma não estruturada em formato `.xlsx` ou planilhas pesadas agrupadas por ano. A leitura manual desses relatórios estatísticos pelos cidadãos e por pesquisadores de Data Science é extremamente custosa e lenta. O desafio era unificar arquivos de múltiplos anos, normalizar os campos e viabilizar um endpoint universal com capacidade de busca avançada para cruzar informações sem sobrecarregar a memória RAM do servidor.

Government agencies traditionally provide massive, unstructured databases in `.xlsx` format or heavy spreadsheets grouped by year. Manual reading of these statistical reports by citizens and Data Science researchers is extremely costly and slow. The challenge was to unify files from multiple years, normalize the fields, and enable a universal endpoint with advanced search capabilities to cross-reference information without overloading the server's RAM.

Minha Solução (Arquitetura)

My Solution (Architecture)

Construí um Data Handler modular que realiza o carregamento Lazy e a aglutinação das planilhas através da biblioteca openpyxl otimizada com lógicas de vetorização do Pandas.

I built a modular Data Handler that performs Lazy loading and spreadsheet agglutination through the openpyxl library optimized with Pandas vectorization logic.

  • Filtros Avançados: A API cruza dezenas de filtros em tempo real (uf, municipio, evento, agente, arma, faixa_etaria, etc.), varrendo um dataset contendo totais de vítimas masculinas, femininas e não identificadas.
  • Advanced Filters: The API cross-references dozens of filters in real-time (uf, municipio, evento, agente, arma, faixa_etaria, etc.), scanning a dataset containing totals of male, female, and unidentified victims.
  • Agregação e Rankings: Rotas de endpoints criadas exclusivamente paras agrupar estados por maior incidência de forma instantânea num array JSON de alta conversão para o Frontend.
  • Aggregation and Rankings: Endpoint routes created exclusively to group states by highest incidence instantly in a high-conversion JSON array for the Frontend.
  • Autodocumentação Integrada: Aplicação 100% autodocumentada usando Swagger UI (/docs), reduzindo o tempo de onboarding para outros engenheiros.
  • Integrated Auto-documentation: 100% auto-documented application using Swagger UI (/docs), reducing onboarding time for other engineers.