🏗️ Portfólio de Projetos: Engenharia de Sistemas em Python

Portfólio estruturado com 20 Projetos Práticos de Engenharia de Software desenvolvidos em Python 3.12+ com Type Hints, POO rigorosa, persistência ACID e interfaces visuais:


🧭 Metodologia Pedagógica em 2 Níveis

graph LR
    subgraph Nivel1 ["🟢 Nível Introdutório: Metodologia dos 4 Degraus (10 Miniprojetos)"]
        D1["Degrau 1: Imperativo & .txt/.json"] --> D2["Degrau 2: Primeira Classe (__init__)"]
        D2 --> D3["Degrau 3: SQLite Nativo"] --> D4["Degrau 4: Tkinter ou Streamlit"]
    end

    subgraph Nivel2 ["🟡 Nível Intermediário: Metodologia das 4 Fases (10 Projetos Integradores)"]
        F1["Fase 1: Transição & Requisitos"] --> F2["Fase 2: Estruturação & DER"]
        F2 --> F3["Fase 3: MVC + NoSQL + Threads"] --> F4["Fase 4: Deploy & PyInstaller .exe"]
    end

    Nivel1 ==> Nivel2

🗺️ Portfólio dos 20 Projetos Práticos

🌱 Bloco A: 10 Miniprojetos Introdutórios (Metodologia em 4 Degraus)

🚀 Bloco B: 10 Projetos Integradores & Aplicações de Mercado


🌱 Nível Introdutório: Metodologia dos 4 Degraus

Os 10 miniprojetos do Bloco A seguem o mesmo caminho em 4 degraus. Cada página do Catálogo traz o passo a passo completo do projeto; aqui fica a visão de conjunto para o professor e para o aluno.

🎯 Proposta Pedagógica & Realidade do Aluno Iniciante

Este documento foi totalmente estruturado considerando a realidade de alunos que estudaram apenas a sintaxe básica de Python até funções em simuladores web, sem experiência prévia com IDEs (VS Code / PyCharm), Orientação a Objetos, bancos de dados relacionais ou interfaces visuais.

A proposta adota uma metodologia em 4 degraus lineares, onde o aluno nunca é exposto a conceitos avançados (como DAO, Dataclasses, Type Hints estritos ou Padrões de Projeto complexos) de forma abrupta. A evolução ocorre gradualmente e de forma palpável dentro de cada projeto.

🪜 O Caminho Didático em 4 Degraus (Para Cada Projeto)

flowchart LR
    D1["🪜 DEGRAU 1\nImperativo & Arquivos\nFunções, Listas/Dicts,\n.txt ou .json (CLI)"] --> D2["🪜 DEGRAU 2\nPrimeira Classe POO\nApenas __init__ e\nmétodos para agrupar"]
    D2 --> D3["🪜 DEGRAU 3\nBanco SQLite Nativo\nTabelas simples com\nCREATE, INSERT, SELECT"]
    D3 --> D4["🪜 DEGRAU 4\nInterface Sem HTML\nDesktop (Tkinter) ou\nWeb (Streamlit)"]

    style D1 fill:#fffde7,stroke:#fbc02d,stroke-width:2px
    style D2 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    style D3 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
    style D4 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px

Explicação dos 4 Degraus:

  1. Degrau 1 (Programação Imperativa): O aluno cria um programa de terminal (menu interativo com input() e loop while) usando funções puras, listas, dicionários e salvando dados em arquivos .txt (com open() e split()) ou .json (com json.dump() e json.load()).
  2. Degrau 2 (Primeiro Contato com POO): O aluno aprende que uma classe serve simplesmente para “organizar os dados e as funções juntas”. Cria uma classe básica contendo apenas o método construtor __init__ e métodos simples para alterar atributos, substituindo os dicionários soltos.
  3. Degrau 3 (Banco de Dados Relacional): O aluno conecta o Python ao módulo nativo sqlite3, cria uma tabela com CREATE TABLE e substitui o arquivo de texto/JSON por comandos SQL básicos (INSERT, SELECT, UPDATE e DELETE).
  4. Degrau 4 (Produto com Interface Amigável): Sem precisar aprender HTML, CSS ou JavaScript, o aluno conecta suas funções a botões e campos de entrada usando Tkinter / CustomTkinter (para Desktop) ou Streamlit (para Web).

📊 Matriz dos 10 Miniprojetos em Ordem de Dificuldade

# Projeto Identificador da Pasta Negócio Local (Pequena Cidade) Degrau 1 (Imperativo) Degrau 2 (Primeira Classe) Degrau 3 (SQLite Nativo) Degrau 4 (Interface Visual)
01 Lista de Compras & Tarefas sistemas_python_intro_01_lista_tarefas Uso pessoal e afazeres Menu while + tarefas.txt Classe Tarefa (__init__) SQLite: 1 tabela (tarefas) Desktop: Tkinter com botões e lista
02 Caderno de Fiado da Mercearia sistemas_python_intro_02_fiado_padaria Comércio de bairro / Padaria Funções + fiado.json Classes Cliente e Conta SQLite: 2 tabelas (clientes, debitos) Web: Streamlit com tabela e totalizadores
03 Controle de Estoque da Cantina sistemas_python_intro_03_estoque_cantina Cantina escolar / Lanchonete Dicionários + estoque.txt Classe Produto (vender, repor) SQLite: 1 tabela com controle de saldo Desktop: CustomTkinter com cards coloridos
04 Livro Caixa de Prestador de Serviço sistemas_python_intro_04_caixa_autonomo Eletricista, encanador, pedreiro Listas de dicionários + .json Classe Lancamento (receita/despesa) SQLite: Tabela de entradas e saídas Web: Streamlit com filtros por data
05 Empréstimo de Livros da Biblioteca sistemas_python_intro_05_biblioteca_livros Biblioteca comunitária / Escolar Dicionários aninhados + .txt Classes Livro e Emprestimo SQLite: 2 tabelas relacionadas (1:N) Desktop: Tkinter com abas de cadastro
06 Cadastro & Agendamento de Pet Shop sistemas_python_intro_06_petshop_agenda Banho e tosa / Clínica de bairro Dicionários em agenda.json Classes Tutor e Pet SQLite: 2 tabelas com chave estrangeira Desktop: CustomTkinter com horário/agenda
07 Orçamento de Oficina Mecânica sistemas_python_intro_07_oficina_mecanica Oficina de motos e carros Listas de peças em orcamento.json Classes Peca, Servico e Orcamento SQLite: Tabelas de peças e orçamentos Web: Streamlit com impressão de recibo
08 Caderno de Campo de Produtor Rural sistemas_python_intro_08_campo_rural Pequena horta ou sítio local Registro sequencial em campo.txt Classes Talhao e Colheita SQLite: Histórico de safras e custos Web: Streamlit com resumo de produtividade
09 Chamados de Manutenção Predial sistemas_python_intro_09_manutencao_predial Zeladoria de condomínio / Escola Dicionários com status em .json Classe Chamado (abrir, concluir) SQLite: Tabela com status e observações Web: Streamlit com cards por status
10 Catalogador de Arquivos & Backups sistemas_python_intro_10_backup_arquivos Escritório de contabilidade / Advocacia Funções de cópia e log em .txt Classe GerenciadorBackup SQLite: Tabela de histórico de backups Desktop: CustomTkinter com barra de progresso

📅 Cronograma Sugerido de Condução da Turma (16 Semanas)

gantt
    title Cronograma Pedagógico Semanal (16 Semanas)
    dateFormat  YYYY-MM-DD
    section Fase 1
    Semanas 01-03 : Setup PyCharm/VS Code, CLI & Arquivos .txt/.json (Degrau 1) : 2026-02-01, 21d
    section Fase 2
    Semanas 04-07 : Primeiros Passos em POO, __init__ e Métodos (Degrau 2) : 2026-02-22, 28d
    section Fase 3
    Semanas 08-11 : Banco de Dados SQLite Nativo & Comandos SQL (Degrau 3) : 2026-03-22, 28d
    section Fase 4
    Semanas 12-15 : Interfaces Visuais com Tkinter / Streamlit (Degrau 4) : 2026-04-19, 28d
    section Encerramento
    Semana 16 : Apresentação Final, Demonstração e Avaliação : 2026-05-17, 7d

📚 Guias Metodológicos de Apoio (anexos para o professor)


⬅️ Voltar à Home de Sistemas com Python 🏗️ Ver Todos os Projetos no Catálogo de Projetos