🌱 10 Miniprojetos Introdutórios em Python

Roteiro Pedagógico Reformulado: Da Lógica Básica em Simuladores Web à Primeira Aplicação com Banco e Interface

Trilha de Especialização Pedagógica — Curso 25: Sistemas Desktop com Python & POO


🎯 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

🛠️ Detalhamento dos 10 Miniprojetos Passo a Passo


📝 Projeto 01: Lista de Compras & Tarefas do Dia a Dia

flowchart LR
    A["Degrau 1\nwhile + tarefas.txt"] --> B["Degrau 2\nclass Tarefa"] --> C["Degrau 3\ntabela tarefas (SQLite)"] --> D["Degrau 4\nTkinter Desktop"]

📒 Projeto 02: Caderno de Fiado da Mercearia

flowchart LR
    A["Degrau 1\nfunções + fiado.json"] --> B["Degrau 2\nclass Cliente & Conta"] --> C["Degrau 3\ntabelas clientes & debitos"] --> D["Degrau 4\nStreamlit Web"]

🥪 Projeto 03: Controle de Estoque da Cantina Escolar

flowchart LR
    A["Degrau 1\ndicts + estoque.txt"] --> B["Degrau 2\nclass Produto"] --> C["Degrau 3\ntabela produtos (SQLite)"] --> D["Degrau 4\nCustomTkinter Desktop"]

💰 Projeto 04: Livro Caixa de Prestador de Serviço Autônomo

flowchart LR
    A["Degrau 1\nlist[dict] + caixa.json"] --> B["Degrau 2\nclass Lancamento"] --> C["Degrau 3\ntabela lancamentos (SUM)"] --> D["Degrau 4\nStreamlit Web"]

📚 Projeto 05: Sistema de Empréstimo de Livros Comunitário

flowchart LR
    A["Degrau 1\nfunções + livros.txt"] --> B["Degrau 2\nclass Livro & Emprestimo"] --> C["Degrau 3\nForeign Key 1:N (SQLite)"] --> D["Degrau 4\nTkinter com Abas"]

🐕 Projeto 06: Cadastro & Agendamento de Pet Shop

flowchart LR
    A["Degrau 1\ndicts + agenda.json"] --> B["Degrau 2\nclass Tutor & Pet"] --> C["Degrau 3\nSQLite Relacional"] --> D["Degrau 4\nCustomTkinter Desktop"]

🔧 Projeto 07: Emissor de Orçamentos para Oficina Mecânica

flowchart LR
    A["Degrau 1\nscript + orcamento.json"] --> B["Degrau 2\nclass Peca & Orcamento"] --> C["Degrau 3\ntabelas orcamentos & itens"] --> D["Degrau 4\nStreamlit Web (Recibo)"]

🌾 Projeto 08: Caderno de Campo Digital para Produtor Rural

flowchart LR
    A["Degrau 1\nsequencial + campo.txt"] --> B["Degrau 2\nclass Talhao & Safra"] --> C["Degrau 3\ntabela safras (SQLite)"] --> D["Degrau 4\nStreamlit Web Dashboard"]

🏢 Projeto 09: Registro de Chamados de Manutenção Predial

flowchart LR
    A["Degrau 1\nstatus + chamados.json"] --> B["Degrau 2\nclass Chamado"] --> C["Degrau 3\ntabela chamados (SQLite)"] --> D["Degrau 4\nStreamlit Web (Cards)"]

💾 Projeto 10: Organizador de Arquivos & Rotina de Backup Local

flowchart LR
    A["Degrau 1\nshutil + backup_log.txt"] --> B["Degrau 2\nclass GerenciadorBackup"] --> C["Degrau 3\ntabela historico (SQLite)"] --> D["Degrau 4\nCustomTkinter com 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

⬅️ Voltar aos Projetos Práticos 🚀 Ver 10 Projetos Intermediários 📚 Voltar ao Módulo Sistemas com Python 🏠 Página Inicial do Portal