Kowa

Atualizações diárias sobre o que eu estou construindo.

Prioridades do dia:

  • finalizar o fluxo de onboarding de alunos nos projetos
  • começar a escrever os projetos reais que eu vou colocar na plataforma
  • validar as migrations para ver se elas funcionam em um banco MySQL (por enquanto estou usando SQLite)

Quando você consegue fazer 3 semanas de backlog em 3 dias, quais perguntas você precisa começar a fazer?

Quando você pode construir um protótipo pra qualquer coisa em menos de uma semana, no que você deveria estar focando?

O Cursor foi capaz de commitar as mudanças e criar a tag. Se perdeu em uma única coisa: não fez git add novamente dos arquivos que modificou depois que pedi correções.

Hoje estou experimentando dar mais autonomia para o Cursor.

Pedi para ele ler a especificação da próxima versão da plataforma, planejar e executar em etapas, aguardar o meu review e então fazer um commit com as mudanças em cada etapa.

Ao final, depois de fazer todas as etapas, pedi para ele commitar o arquivo de especificação e criar uma tag no git com o número da versão.

Vamos ver o que ele consegue fazer.

O plano do dia é:

  • fazer os ajustes na funcionalidade de ajuda da plataforma pra corrigir problemas de UX e desempenho
  • mostrar as preferências do usuário na listagem de projetos e em algumas telas administrativas
  • incluir uma seção de dicas no cadastro do projeto, para ajudar o aluno a entender o projeto no contexto de estudo de frontend, backend, fullstack, linguagens, frameworks, etc
  • pequenas alterações na UI para melhorar as mensages da tela, incluir textos de ajuda, etc
  • melhorar a experiência de onboarding no projeto

Cursor ficou fora do ar hoje mais cedo, então aproveitei pra avançar as specs das funcionalidades.

Já consegui fazer algumas correções na UI e implementar páginas de conteúdo.

Também consegui especificar o sistema de mensagens de ajuda (esse deu trabalho). Vou gerar o código agora e ver o resultado.

As prioridades de hoje são:

  • pequenos refactors pra deixar o código mais limpo e a UI mais organizada
  • melhorar a forma como as preferências são mostradas na tela (estão tomando bastante espaço, talvez seja interessante usar 2 colunas no layout, criando uma espécie de sidebar)
  • adicionar suporte para páginas de conteúdo, para colocar os guias que eu quero incluir (usar Git, postar projeto no LinkedIn, como falar sobre o projeto em entrevistas, como publicar o projeto de acordo com as tecnologias usadas, etc)
  • incluir um campo para dicas em cada tarefa, para direcionar o usuário caso ele esteja focado em frontend, backend, fullstack, só HTML, etc
  • um sistema básico de mensagens para pedir ajuda/suporte dentro da plataforma

Parece muita coisa para um dia só, mas com ajuda do Cursor eu acredito que é possível.

Ontem eu consegui incluir um formulário de preferências/onboarding no projeto para o usuário marcar o que está querendo aprender. Também mostrei as preferências selecionadas na tela do projeto e das tarefas (basicamente links para a documentação das tecnologias que o usuário selecionou nas preferências).

A próxima prioridade é fazer a plataforma ser mais do que um CRUD de projetos e tarefas, ser de fato um guia para o estudo da pessoa.

Estou pensando numa forma do usuário incluir a stack ou linguagem que ele quer aprender, numa espécie de onboarding do projeto.

Já incluí o histórico de status nas tarefas e nos projetos, a opção de comentar mensagens em um usuário específico (pra registrar detalhes das interações com eles) e também uma tela para eu, como admin, ver o histórico do usuário e o status atual dos projetos e tarefas deles.

Em menos de 3h eu consegui implementar as prioridades do dia, o que era escopo para 3 dias de trabalho antes da IA.

Agora eu vou seguir adicionando as features que preciso pra:

  • auditar o histórico de ações dos usuários
  • fazer a gestão dos usuários do ponto de vista comercial (histórico de interações, observações, etc)

O bom de ter uma versão 0.1 com o core da funcionalidade é que cada nova feature e mudança é incremental, não começa do 0.

É bem mais fácil fazer mudanças incrementais em um sistema existente do que criar do 0 um sistema com todas as funcionalidades ao mesmo tempo.

As prioridades de hoje são:

  • projetos precisam de tarefas individuais, cadastradas, já que cada tarefa vai ser os seus próprios detalhes
  • projetos precisam de um status para cada usuário: não iniciado, em progresso, pausado, concluído
  • tarefas dentro do projeto também precisam dos mesmos status, e também para cada usuário específico

Dessa forma é possível acompanhar o progresso do usuário dentro de cada projeto, encontrar pontos em que o usuário travou, oferecer a ajuda certa no momento certo, etc.

Tive algum problema com a propagação do domínio .dev, troquei para o valor padrão do provedor e agora vou voltar para o NS correto.

Também já criei um redirecionamento temporário do .com.br para o .dev.

Já apontei os domínios para o meu servidor, agora é aguardar a boa vontade dos servidores de DNS de propagar as mudanças.

Deveria ter setado logo na criação dos domínios, porque aí não precisaria aguardar, já criava com o IP certo.

Eu uso o https://dnschecker.org/ pra verificar o andamento da propagação.

Depois de algumas correções, a versão 0.1 está funcionando como eu quero.

O plano do dia é:

  • usar Cursor para criar a versão 0.1 do app com base na spec
  • subir a versão 0.1 do app para app.napratica.dev
  • configurar o domínio .com.br para redirecionar para .dev
  • documentar tudo no Instagram além de postar aqui, pra ir pegando o jeito

Os três projetos que vou colocar na versão 0.1 são:

  • Sistema para reserva de horário na barbearia
  • Sistema de CRM simples
  • Sistema de fichas de treino para personal trainer

Acho que são 3 projetos completos e diferentes entre si, que são bons exercícios pra aprender qualquer linguagem ou stack.

Uma das coisas que percebi que vai ser importante fazer, é operacionalizar as instruções de cada projeto de forma que qualquer pessoa entenda o que precisa ser feito, não importando a bagagem (ou falta de bagagem) que ela tenha.

Operacionalizar é simplesmente quebrar comandos de alto nível em passos menores e mais fáceis de entender.