Skip to content

About

Sistema acadêmico em Python para controle de irrigação e insumos agrícolas, com arquitetura modular, persistência local e integração com Oracle Database.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

Repository files navigation

FIAP - Faculdade de Informática e Administração Paulista

FIAP - Faculdade de Informática e Admnistração Paulista


AgroFlow - Controle de Irrigação e Insumos

Projeto Individual

👨‍🎓 Integrantes:

👩‍🏫 Professores:

Tutor(a)

Coordenador(a)

📜 Descrição

O AgroFlow é um sistema acadêmico desenvolvido em Python para apoiar o controle básico de irrigação e insumos no contexto do agronegócio. O foco do projeto está na organização de dados por talhão, no cálculo padronizado de irrigação por cultura e no registro de uso de insumos com rastreabilidade local e persistência em banco Oracle.

A aplicação opera em terminal e oferece um fluxo direto para cadastro, consulta, atualização e exclusão de talhões, além de rotinas de cálculo para necessidade hídrica e consumo de fertilizantes. O sistema utiliza regras de negócio explícitas: culturas e tipos de solo válidos, fatores fixos de irrigação por m² e fatores de aplicação de insumos por m². Essas regras permitem reproduzir um cenário simples e consistente de apoio à decisão operacional.

Do ponto de vista técnico, o projeto foi estruturado em módulos, com separação de responsabilidades entre camada de interface, serviços, modelos de dados, persistência local (JSON e TXT) e persistência remota no Oracle Database. Essa divisão facilita manutenção, reutilização de funções e evolução incremental do código.

A persistência local armazena talhões e histórico de operações em arquivos dentro de src/data, enquanto a integração Oracle garante operações de CRUD nas tabelas controle_agro e controle_insumos, incluindo relacionamento entre talhão e insumos aplicados. O projeto também contempla validação de entrada e tratamento de erros com try/except nos pontos críticos de integração com banco.

Embora o template institucional utilize o termo "AI Project Document", o AgroFlow não implementa treinamento de modelos de machine learning. A entrega é aderente ao contexto da disciplina de Python do curso de Inteligência Artificial, com ênfase em automação de rotinas, estruturação de dados e integração com banco de dados relacional.

📁 Estrutura de pastas

Dentre os arquivos e pastas presentes na raiz do projeto, definem-se:

  • .github: arquivos de apoio do repositório (automatizações e configurações de integração).

  • .env: variáveis locais de conexão com Oracle (não versionar credenciais reais).

  • .env.example: modelo de variáveis necessárias para executar o projeto com Oracle.

  • assets: aqui estão os arquivos relacionados a elementos não-estruturados deste repositório, como imagens.

  • config: camada de compatibilidade para configuração de banco (config/database.py).

  • document: documentação institucional e complementar do projeto.

    • ai_project_document_fiap.md: documentação acadêmica principal no template FIAP.
    • other/readme.md: observações técnicas complementares.
  • scripts: scripts auxiliares, incluindo criação das tabelas Oracle (create_tables.sql).

  • src: código-fonte da aplicação.

    • main.py: ponto de entrada da aplicação em terminal.
    • app/core: menu, validações de entrada e utilitários.
    • app/models: estruturas de dados e regras de negócio (culturas, solo, fatores).
    • app/services: lógica de cadastro, irrigação e insumos.
    • app/persistence: persistência em JSON, TXT e Oracle.
    • app/config: configuração de conexão via variáveis de ambiente.
    • data: arquivos locais (talhoes.json e logs.txt).
  • README.md: arquivo que serve como guia e explicação geral sobre o projeto (o mesmo que você está lendo agora).

🔧 Como executar o código

Pré-requisitos

  • Python 3.10 ou superior
  • Oracle Database acessível (ambiente FIAP)
  • Cliente SQL (ex.: SQL Developer, DBeaver ou SQL*Plus)
  • Terminal de comandos (PowerShell, CMD ou bash)

1. Clonar o repositório

git clone <url-do-repositorio>
cd "Cap 6 - Python e além"

2. Criar e ativar ambiente virtual (recomendado)

No Windows (PowerShell):

python -m venv .venv
.\.venv\Scripts\Activate.ps1

No Linux/macOS:

python -m venv .venv
source .venv/bin/activate

3. Instalar dependências

pip install -r requirements.txt

4. Configurar variáveis de ambiente (.env)

Crie o arquivo .env na raiz do projeto com base no .env.example:

ORACLE_USER=SEU_USUARIO_ORACLE
ORACLE_PASSWORD=SUA_SENHA_ORACLE
ORACLE_DSN=oracle.fiap.com.br:1521/orcl

5. Criar as tabelas no Oracle

Execute o script scripts/create_tables.sql no seu ambiente Oracle para criar:

  • controle_agro
  • controle_insumos

6. Executar a aplicação

python src/main.py

7. Fluxo básico de uso

  • Cadastre talhões
  • Liste os registros
  • Calcule irrigação por talhão
  • Registre insumos
  • Atualize ou exclua talhões

Os dados locais são persistidos em src/data/talhoes.json e os eventos do sistema em src/data/logs.txt.

🗃 Histórico de lançamentos

  • 0.4.0 - 10/04/2026
    • Integração Oracle estabilizada com operações de CRUD para talhões e registro de insumos.
    • Revisão final da documentação institucional no padrão FIAP.
  • 0.3.0 - 09/04/2026
    • Inclusão de atualização e exclusão de talhões no menu principal.
    • Consolidação do tratamento de erros de conexão e operações Oracle.
  • 0.2.0 - 08/04/2026
    • Implementação do cálculo de irrigação por cultura e registro de insumos por talhão.
    • Persistência de logs em arquivo TXT.
  • 0.1.0 - 07/04/2026
    • Estruturação modular do projeto em core, models, services e persistence.
    • Persistência local em JSON com carregamento e salvamento automáticos.

📋 Licença

MODELO GIT FIAP por Fiap está licenciado sobre Attribution 4.0 International.

About

Sistema acadêmico em Python para controle de irrigação e insumos agrícolas, com arquitetura modular, persistência local e integração com Oracle Database.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages