Este repositório faz parte do projeto SIMULANDO FATEC que visa desenvolver uma plataforma gratuita para estudantes realizarem simulados do Vestibular FATEC.
Para que a plataforma funcione corretamente, é necessário ter um banco de dados populado com questões organizadas e bem estruturadas. Pensando nisso, este repositório foi criado com o objetivo de automatizar a extração das questões diretamente dos PDFs das provas e gabaritos oficiais da FATEC, convertendo-as para o formato JSON.
O script analisa os arquivos PDF da prova e do gabarito, localiza e extrai as questões de forma estruturada, transformando-as em um JSON padronizado. Esse JSON pode então ser cadastrado em um banco de dados e mostrados na tela.
O projeto foi desenvolvido utilizando Python, linguagem escolhida pela sua versatilidade e poderosas bibliotecas de manipulação de arquivos e dados estruturados. O script em Python é responsável por abrir e ler os PDFs da prova e do gabarito, processar os textos e organizar as informações extraídas no formato JSON.
Para auxiliar na interpretação e organização das questões, foi utilizado o Gemini AI, uma inteligência artificial desenvolvida pela Google. Com a ajuda dessa IA, foi possível identificar padrões e extrair dados de forma mais precisa e eficiente.
O ambiente de desenvolvimento utilizado foi o PyCharm, uma IDE robusta para Python que contribuiu com recursos como destaque de sintaxe, depuração, execução rápida e organização geral do projeto.
| Linguagem | Biblioteca | Editor / IDE |
|---|---|---|
|
|
|
|
fatec_geral: Responsável por percorrer por todas as provas da FATEC (anos e semestres) para extrair seus dados.
fatec_control: Responsável por selecionar uma prova específica da FATEC para extrair seus dados.
fatec_format_questions.py: Responsável por formatar cada questão e armazenar em um JSON.
fatec_extract_images.py: Responsável por extrair as imagens de uma prova e armazenar seu caminho no JSON.
prompt/: Contém os arquivos utilizados para instruir o Gemini AI durante o processo de extração/formatação das questões e imagens.
geminiai-extracao-questao.txt: Contém o texto de instruções enviado ao Gemini AI para orientar a conversão das questões.geminiai-extracao-imagem.txt: Contém o texto de instruções enviado ao Gemini AI para orientar a extração das imagens.questao-base.json: Arquivo modelo com o formato desejado da questão em JSON.extracao-imagem-base.json: Arquivo modelo com o formato desejado da extração das imagens organizadas em JSON.
fatec_formatado/: Pasta onde serão salvos os arquivos JSON contendo as questões formatadas.
pdf/: Diretório destinado ao armazenamento dos PDFs das provas e dos gabaritos da FATEC.
.gitignore: Arquivo de configuração do Git que define quais arquivos ou pastas devem ser ignorados no versionamento.
> ESTRUTURA VISUAL
📦
├── fatec_geral.py
├── fatec_control.py
├── fatec_format_questions.py
├── fatec_extract_images.py
├── prompt/
│ ├── geminiai-extracao-questao.txt
│ ├── geminiai-extracao-imagem.txt
│ ├── questao-base.json
│ └── extracao-imagem-base.json
├── fatec_formatado/
├── pdf/
│ ├── FatecProva_<ANO>_<SEMESTRE>.pdf
│ └── FatecGabarito_<ANO>_<SEMESTRE>.pdf
├── .gitignore
Warning
Os arquivos PDF's devem seguir a seguinte nomenclatura:
Modelo: FatecProva_ANO_SEMESTRE.pdf
Ex: FatecProva_2024_1.pdf
Modelo: FatecGabarito_ANO_SEMESTRE.pdf
Ex: FatecGabarito_2024_1.pdf
- Ter o Python instalado no sistema.
- Gerar uma API Key para utilizar o GeminiAI.
- Baixar o PyCharm para facilitar a execução e organização do código (opcional).
Note
Em caso de dúvidas, veja a documentação oficial da API da Gemini AI!
Caution
O Gemini AI tende a errar os valores dos campos enunciado e pergunta. Por isso, é bom revisá-los!
- Faça um
git clonedo repositório:
git clone https://github.com/LucasOkokama/simulando-fatec-extrator
cd simulando-fatec-extrator- Instale as
depêndenciasdo projeto:
pip install -r requirements.txt
- Crie um arquivo
.envpara armazenar sua API Key:
GEMINIAI_KEY=<SUA_GEMINIAI_API_KEY>
- Execute o
scriptprincipal:
py fatec.py