01 Case técnico público

Organização acadêmica · 2026

A rotina escolar em uma visão que mostra o que exige atenção.

ClassFlow é uma aplicação web que reúne matérias, tarefas, trabalhos, provas, prazos e imagens. O projeto transforma itens dispersos em uma rotina organizada por prioridade, status e data de entrega.

  • Python
  • Flask
  • PostgreSQL
  • Supabase
  • Jinja
  • JavaScript
  • ReportLab
Status Case público
Código Repositório privado
Aplicação Deploy Flask inativo

As imagens deste case registram a versão analisada. A demonstração usa somente dados fictícios e não acessa o banco de produção.

02 O projeto

Menos dispersão.
Mais contexto para decidir.

Prazos escolares costumam ficar divididos entre cadernos, mensagens e ferramentas sem uma visão comum. O ClassFlow nasceu para responder a uma pergunta simples: o que preciso fazer agora, e o que vem depois?

Problema

Uma lista solta não mostra urgência, carga da semana ou progresso. Também perde o vínculo entre tarefa, matéria, arquivo e prazo.

Resposta

Uma aplicação renderizada no servidor que centraliza os registros e oferece recortes para hoje, próximos sete dias, calendário e estatísticas.

O que construí

Autenticação, CRUD completo, filtros, regras de prazo, armazenamento de imagens, visualizações de dados e geração de relatório PDF.

03estados de tarefa
07dias na visão semanal
01relatório PDF exportável

03 Funcionalidades

Da captura ao acompanhamento.

As funções foram organizadas por objetivo para mostrar o fluxo do produto, não apenas uma lista de telas.

A1

Registrar e estruturar

Matérias e tarefas com título, descrição, data, prioridade, status, matéria relacionada e imagem opcional.

  • CRUD de matérias
  • CRUD de tarefas
  • Upload de imagem
A2

Encontrar o próximo foco

Dashboard, visão Hoje, próximos sete dias e calendário mensal destacam atrasos, entregas próximas e progresso.

  • Alertas de prazo
  • Prioridades e status
  • Visão semanal
A3

Filtrar e compreender

Busca textual, filtros por matéria, prioridade e status, ordenação e estatísticas transformam o conjunto em recortes úteis.

  • Busca e filtros
  • Ordenação
  • Estatísticas
A4

Levar o resumo para fora

O ReportLab gera um PDF com indicadores e uma tabela de tarefas, matérias, prazos, prioridades e status.

  • Resumo de progresso
  • Tabela de tarefas
  • Download em PDF

04 Arquitetura e decisões

Uma aplicação Flask
com responsabilidades claras.

Interface HTML · CSS · JS Telas responsivas e interações no navegador
Aplicação Flask · Jinja Rotas, regras de negócio e renderização no servidor
Dados Supabase Auth, PostgreSQL, RLS e Storage
Saída ReportLab Relatórios PDF gerados sob demanda
01

Renderização no servidor

Flask e Jinja mantêm as telas próximas das regras de negócio. JavaScript complementa filtros e feedbacks sem transformar a aplicação em uma SPA.

02

Dados relacionais

PostgreSQL representa usuários, matérias e tarefas. Chaves estrangeiras mantêm o vínculo entre matéria e tarefa, e os estados são limitados por constraints.

03

Demo sem dependências externas

A rota demonstrativa usa um helper Python com dados fictícios. Ela não exige login, não consulta Supabase e não oferece ações de escrita.

04

Relatório gerado no backend

O PDF é montado em memória com ReportLab e devolvido como download, sem precisar armazenar documentos temporários.

05 Segurança e dados

Isolamento em duas camadas.

O código filtra as operações pelo usuário autenticado e o banco repete essa regra com Row Level Security.

Aplicação

Rotas protegidas e consultas com escopo

As áreas privadas exigem sessão autenticada. Leituras, alterações e exclusões incluem o user_id atual nos filtros.

Banco

RLS baseada em auth.uid()

Políticas de select, insert, update e delete restringem perfis, matérias e tarefas ao dono do registro.

Relações

Matéria validada para o mesmo usuário

Ao inserir ou atualizar uma tarefa, a política também verifica se a matéria relacionada pertence ao usuário autenticado.

06 Evidência visual

A versão real, sem mockup inventado.

Capturas da aplicação executada localmente. A segunda imagem usa exclusivamente o conjunto demonstrativo incluído no projeto.

Landing page escura do ClassFlow com resumo do produto, navegação e painel ilustrativo da rotina semanal
B1 Landing page

A entrada apresenta o propósito do produto, os caminhos de autenticação e o acesso à demonstração.

Dashboard demonstrativo do ClassFlow com sete tarefas fictícias, indicadores, progresso e próximo foco
B2 Dashboard demonstrativo

Dados fictícios mostram métricas, alertas e a tarefa recomendada sem usar conta, banco ou arquivos reais.

07 Resultado

Um projeto de estudo que conecta produto, backend e dados.

O ClassFlow demonstra uma aplicação web completa em uma escala coerente com minha formação: autenticação, persistência, autorização, regras de negócio, experiência responsiva e saída em PDF aplicadas a um problema cotidiano.

Ver outros projetos