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

API de conversão de arquivos .csv, .xlsx, .pdf, .pptx para registros no MongoDB usando FastAPI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages