Skip to content

AppActa/acta-import-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ACTA Import API

API de importação de arquivos do ACTA. Responsável por receber, validar e persistir dados históricos no formato .csv, .xlsx, .pdf e .pptx no banco de dados MongoDB com o objetivo de contextualização de agentes de inteligência artificial para gerar contexto a fim de alimentar análises como o gráfico de Ishikawa.


Funcionalidades

  • Upload e validação de arquivos .csv, .xlsx, .pdf e .pptx
  • Normalização automática dos nomes de colunas (snake_case, sem acentos)
  • Suporte a múltiplas abas em arquivos .xlsx
  • Limpeza automática de linhas e colunas vazias
  • Persistência estruturada no MongoDB
  • ID sequencial auto-incrementado

Tecnologias

Camada Tecnologia
Framework FastAPI
Banco de dados MongoDB via Pymongo
Leitura de arquivos Pandas, openpyxl, pypdf e python-pptx
Normalização python-slugify
Variáveis de ambiente python-dotenv

Estrutura do projeto

├── 📁 app
│   ├── 📁 database
│   │   └── 🐍 mongo.py
│   ├── 📁 models
│   │   └── 🐍 planilha.py
│   ├── 📁 routes
│   │   └── 🐍 uploads.py
│   ├── 📁 services
│   │   └── 🐍 import_service.py
│   └── 📁 utils
│       └── 🐍 utils.py
├── ⚙️ .gitignore
├── 📝 README.md
├── 🐍 main.py
└── 📄 requirements.txt

Configuração

Pré-requisitos

  • Python 3.10 +
  • MongoDB em execução

Instalação

git clone https://github.com/AppActa/acta-import-api.git
cd acta-import-api
pip install -r requirements.txt

Variáveis de ambiente

Crie um arquivo .env na raiz do projeto:

MONGO_URL=mongodb://localhost:27017
DB_NAME=acta

Execução

uvicorn main:app --reload

A API estará disponível em http://localhost:8080. A documentação pode ser acessada em http://localhost:8080/docs


Endpoints

POST /csv/

Importa um arquivo .csv

Form-data

Campo Tipo Descrição
id_empresa int ID da empresa
id_ciclo int ID do ciclo do PDCA
arquivo file Arquivo .csv

POST /xlsx/

Importa um arquivo .xlsx, suporte a múltiplas abas

Form-data

Campo Tipo Descrição
id_empresa int ID da empresa
id_ciclo int ID do ciclo do PDCA
arquivo file Arquivo .xlsx

POST /pdf/

Importa um arquivo .pdf, suporte a múltiplas abas

Form-data

Campo Tipo Descrição
id_empresa int ID da empresa
id_ciclo int ID do ciclo do PDCA
arquivo file Arquivo .pdf

POST /pptx/

Importa um arquivo .pptx, suporte a múltiplas abas

Form-data

Campo Tipo Descrição
id_empresa int ID da empresa
id_ciclo int ID do ciclo do PDCA
arquivo file Arquivo .pptx

Comportamento da importação

  • Nomes de colunas são normalizadas para snake_case sem acentos ou carateres especiais
  • Em arquivos .xlsx, cada aba é processada separadamente e identificada com o nome normalizado
  • Linhas onde todas as colunas são nulas são removidas automaticamente
  • Colunas sem nome (unnamed_X) e completamente vazias são descartadas
  • Valores nulos são convertidos para null no documento MongoDB

About

ACTA · API em FastAPI para conversão de .csv/.xlsx/.pdf/.pptx em registros no MongoDB · Banco de Dados 2

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages