Um exemplo de projeto simples que realmente funciona
exemplo de projeto simples
Eu costumo recomendar que quem tá começando pegue um problema do dia a dia e resolva com o mínimo possível. Não precisa ser algo complexo. Você já deve ter visto projetos que viram monstros porque a pessoa começou adicionando features que ninguém pediu. Vou te mostrar como fiz um projeto simples de automação de planilhas para controle de estoque em uma pequena loja. O problema era: o dono anotava tudo à mão num caderno, e quando precisava conferir, passava horas revisando. Minha solução foi básica. Usei Python com pandas pra ler os registros manuais, limpar os dados e gerar um relatório diário em CSV que ele podia abrir no Excel.
O ciclo inteiro levou cerca de 3 horas para rodar pela primeira vez, e depois eu configuro um agendamento no cron do Linux pra executar automaticamente todo dia às 18h. Isso substituía um trabalho de 45 minutos que ele fazia manualmente, mas que frequentemente era esquecido ou feito de forma incompleta. O que mais vejo gente errar é começar pelo frontend quando o problema é só nos dados. Neste caso, eu poderia ter feito uma interface web bonita com React, mas não fazia sentido. O dono só queria ver o relatório pronto. Um script simples que gerava o CSV e mandava por e-mail resolveu o problema inteiro. Adicionar complexidade só aumenta o tempo de manutenção sem entregar valor adicional.
Um detalhe que quase estragou tudo foi a inconsistência nos formatos de data. Cada funcionário anotava de um jeito. Alguns usavam DD/MM/YYYY, outros MM-DD-YY, e tinha até quem escrevesse "ontem" ou "dia 15". Eu criei uma regex simples que padroniza tudo pros três formatos mais comuns, e qualquer linha que não batia com nenhum deles vai pra um arquivo separado pra revisão manual. Esse arquivo secundário costuma ter menos de 5% dos registros, então na prática não é incômodo. Se você quer montar algo parecido, aqui tá o esqueleto básico do que eu uso como ponto de partida. Ele é genérico o suficiente pra adaptar a qualquer contexto de manipulação de dados estruturados:
👉 Clique no botão abaixo para saber mais sobre o assunto!
```python
import pandas as pd
from datetime import datetime
from pathlib import Path
INPUT_FILE = Path('registros.csv')
OUTPUT_DIR = Path('relatorios')
def parse_date(raw: str) -> str:
formats = ['%d/%m/%Y', '%m-%d-%y', '%Y-%m-%d']
for fmt in formats:
try:
return datetime.strptime(raw.strip(), fmt).strftime('%Y-%m-%d')
except ValueError:
continue
return None
def main():
df = pd.read_csv(INPUT_FILE)
df['data'] = df['data'].apply(parse_date)
df = df.dropna(subset=['data'])
malformed = df[df['data'].isna()].copy()
malformed.to_csv(OUTPUT_DIR / 'pendentes.csv', index=False)
df.to_csv(OUTPUT_DIR / 'relatorio.csv', index=False)
if __name__ == '__main__':
main()
``` Esse código por si só não resolve nada. A parte importante é entender onde seus dados quebram antes de escrever uma linha. Passe uns 20 minutos olhando os arquivos brutos. Anota os formatos diferentes, os campos vazios, os valores duplicados. Isso economiza mais tempo do que gastar ajustando o código depois.
O maior gargalo que eu encontrei não foi técnico. Foi o dono do negócio achando que não precisava dar manutenção depois que o script parou de funcionar porque alguém mudou o layout da planilha original. A solução foi simples: coloquei um print de aviso no início do relatório indicando quantas linhas foram rejeitadas e um timestamp da última execução. Se o número de linhas rejeitadas subir muito de um dia pro outro, é sinal pra investigar antes que os dados fiquem completamente incorretos. Existem ferramentas que fazem isso de forma mais automatizada, como Alteryx ou até soluções low-code. Mas elas cobram licença mensal e ainda assim exigem que você conheça o formato dos dados de entrada. Se o seu projeto for pequeno e os dados forem irregulares, um script Python customizado fica mais barato e mais flexível. O custo inicial de desenvolvimento é maior, mas o custo de manutenção futuro é quase zero.
Para quem tá buscando um exemplo de projeto simples pra praticar, eu sugiro pegar qualquer tarefa repetitiva sua e automatizá-la. Pode ser renomear arquivos, organizar downloads, enviar resumos por e-mail. O objetivo não é construir algo complexo. É aprender o fluxo completo: coletar dado, transformar, validar, entregar resultado. Quando você domina esse loop básico, qualquer projeto maior fica significativamente mais fácil de estruturar. A parte que ninguém conta é que o tempo gasto pensando na solução frequentemente supera o tempo gasto implementando. Antes de abrir a IDE, desenha num papel ou anota num bloco quais são as entradas, as saídas e os pontos de falha prováveis. Isso evita que você gaste uma tarde inteira debugando algo que poderia ter sido resolvido com duas decisõeser melhores no início.