Dodreams
Do sonho ao plano
- Meu papel
- Desenvolvedor full stack
- Cliente
- Catsuc Labs
- Setor
- Produto de consumo · web
- Status
- Em produção
Código proprietário. Sistema privado de cliente — o repositório não é público.
Números
1
sonho, várias etapas
O progresso vem das etapas concluídas, não de um número digitado à mão.
CRUD+
não é só cadastro
A parte difícil é modelar algo subjetivo sem engessar o usuário.
Contexto
Sonho fica na cabeça, em nota do celular ou em captura de tela de passagem aérea. Espalhado assim, ele não avança — não porque falte vontade, mas porque não existe lugar onde ele seja uma coisa acompanhável.
O problema
Modelar algo subjetivo. “Ir para o Japão” e “aprender a tocar violão” não têm a mesma forma, mas precisam caber na mesma estrutura sem virar um formulário genérico que não serve para nenhum dos dois. E o progresso tem que ser honesto: barra que enche sozinha não motiva, mente.
A abordagem
Um sonho é a entidade central e carrega o mínimo: o que é, quando, quanto e por quê. O resto vem das etapas — e é delas que o progresso é derivado, nunca digitado. Assim a mesma estrutura serve para uma viagem com passagem e hospedagem e para um objetivo sem preço nenhum, e o número que a pessoa vê significa algo.
Módulos
Sonhos
Registro do que é o sonho, com prazo e custo opcionais — porque nem todo sonho tem preço, e forçar um campo obrigatório afasta metade dos casos.
Etapas
A quebra em passos concretos. É o que transforma intenção em algo que se pode marcar como feito.
Progresso
Calculado a partir das etapas concluídas. Nunca um campo que o usuário edita — progresso editável é decoração.
As partes difíceis
Estrutura para algo sem forma
A tentação era criar um tipo de sonho para cada caso — viagem, compra, objetivo — e cada um com seus campos. Isso multiplica a interface e envelhece rápido. Um núcleo pequeno com campos opcionais e etapas livres cobre muito mais caso e continua simples de usar.
Progresso que não mente
Deixar a pessoa arrastar a barra de progresso é fácil e inútil. Derivar das etapas dá um número menor no começo — e é justamente isso que faz concluir uma etapa significar algo.
O que é meu
- Modelagem do domínio de sonhos e etapas, com progresso derivado
- Interface de cadastro, planejamento e acompanhamento
- API e persistência em PostgreSQL
Resultado
Sonho deixou de ser nota solta e passou a ser uma coisa com etapa e prazo. É o projeto mais leve dos que eu listo aqui e o que mais me obrigou a pensar em modelagem — porque quando o domínio é subjetivo, o schema é a decisão de produto.
O que eu levei
- 01Núcleo pequeno com campo opcional cobre mais caso que um tipo para cada situação.
- 02Número derivado vale mais que número digitado. Se o usuário pode editar, não é métrica.
- 03Domínio subjetivo é onde a modelagem deixa de ser detalhe técnico e vira produto.