2025.02.07 (Sex)
2026.05.25 (Seg) atualizado

✨ Resumo do GPT  

Concluí a entrega do projeto de graduação do AIFFELTHON. Encerrei o desenvolvimento no FlutterFlow e fiz backup no GitHub.

💻 Diário de desenvolvimento

⏰ Tarefas de hoje

  • ✅ Download APK
  • ✅ Connect GitHub and Push

  • ✅ Enviar material da apresentação: PPT
  • ✅ Enviar material da apresentação: vídeo de demonstração de 1 minuto

  • ✅ ChatPage - Create New Diary: criar New Diary com base no conteúdo da conversa
    • ✅ Create New Diary Condition: if linked diary exists -> Delete confirmation dialog? -> Yes
    • ✅ OpenAI API Call (createChatSummary)
      • Input: Chat Content, System Prompt(Diary From Chat)
      • Output: Chat Summary
    • ✅ OpenAI API Call (createDiaryFromChat)
      • Input: Chat Summary, System Prompt(Diary From Chat)
      • Output: New Diary(Title, Content, Mood score)
  • ✅ Adicionar página de boas-vindas ao abrir o app pela primeira vez (logo)

  • ✅ DiaryPage: mudar Emoji de expressão facial e cor de acordo com o valor do Mood Slider (responsável: KSK)

💯 Resumo do que fiz

  • Desenvolvimento final no FlutterFlow encerrado
  • Conexão com GitHub e push do projeto concluídos
  • Implementação da criação automática de Diary com base no conteúdo do Chat
    • Adicionado Dialog de confirmação de exclusão quando já existe um Diary
    • Uso da OpenAI API para gerar Chat Summary e Diary automaticamente
  • Página de boas-vindas adicionada na execução do app (tela de logo)
  • DiaryPage: alteração de emoji e cor de acordo com o Mood Slider

🎯 Tarefas futuras

Clique para ver detalhes
  • ❔ Preparação da apresentação - script: medir o tempo necessário por página com base no script e revisar o script
  • ❔ Preparação da apresentação - PPT: gravar vídeos curtos de demonstração por feature

  • ❔ ChatPage: padronizar o default value de title, de Random String para “Sem título”

  • ❔ ChatPage: implementar Delete Diary Link (permitir excluir ao apertar o icon …)
    • Obrigatoriamente também precisa apagar junto o linked field do Diary/Chat Doc!
  • ❔ MoodPage(superior) - Mood Calendar
    • ❔ Permitir conferir o número de posts escritos por data
    • ❔ Ao clicar em uma data, mover para aquela data
  • ❔ MoodPage(inferior) - Mood stats
    • ❔ Exibir dados estatísticos sobre o mês em foco
      • ❔ Exibir o comentário da AI sobre os dados estatísticos exibidos
  • ❔ HomeFeedPage - importar e aplicar flutter_slidable:4.0.0
  • ❔ HomeFeedPage: ao deslizar FeedCardDiary para a esquerda/direita, chat/editar/excluir

  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - implementar primeira mensagem ativa da AI (Alarm/Notification)
    • O núcleo do prompt do sistema de chat é a proatividade.
      • Para ficar mais realista, talvez seja bom passar também create_date of diary/chat, para mencionar datas como “ontem”.
    • Referência de implementação de Alarm
  • ❔ DiaryPage: adicionar Choice Chips de palavras-chave emocionais detalhadas e configurar integração com DB
  • ❔ DiaryPage - AI Comment: alterar inputs como Choice chips e mood slider para se adequarem ao AI Comment System Prompt.
    • ❔ **diário anterior ou histórico de conversa inteiro (dívida técnica remendada)
    • informações básicas do usuário: nome, gênero, MBTI, …
    • palavras-chave emocionais detalhadas: alegre, triste, …
    • configuração de personagem: Somi, Sena, Minhyuk
    • pontuação emocional: 1~100 pontos
    • formato da resposta: Healing, Suggestion, Informative
    • comprimento da resposta: curto, normal, detalhado
    • is New Chat
      • Como as messages desse Chat estão sendo criadas pela primeira vez, definir is_initial = true no primeiro message document e enfiar todos os prompts do sistema ali.
        • is_initial = false
        • Limitação: se eu colocar o prompt do sistema no primeiro message document, fica difícil modificar no meio da conversa, mas é possível. Se existe um document com is_initial = true e ele foi modificado, é só apagar esse document e colocar de novo. Como, eu não sei.
  • ❔ DiaryPage - importar e aplicar Interactive Slider

  • ❔ HomeFeedPage: implementar função Search Diary

  • ❔ AuthPage: implementar Google Login

  • ❔ HomeFeedPage - Bottom Sheet (+ Button): permitir escolher 1 entre várias opções
    • novo diário: Go to DiaryPage
    • registro emocional: Go to MoodPage
  • ❔ MoodPage(popup): CRUD do slider de configuração de Mood
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - exibir FeedCardMood
  • ❔ HomeFeedPage - ListView: ordenar FeedCardDiary, FeedCardMood, FeedCardChat em ordem cronológica (usando Cloud Function)

  • ❔ Criar MoodEditPage entre HomeFeedPage e DiaryPage: mover widgets como MoodSlider, MoodKeywordsRate(5~1), MoodDescription etc.

  • ❔ (Issue) Ao criar tmpGetAIComment, as palavras-chave emocionais selecionadas pelo usuário não estão sendo consideradas.

  • ✅ Extrair e instalar o APK da versão final para apresentação até qua 2025.2.5

💭 Diário

Minhyuk

Depois de continuar usando FlutterFlow, acho que agora peguei bastante a noção básica do próprio Flutter.

  • Mexendo em Custom Function/Widget, acabei aprendendo um tanto da sintaxe básica.
  • Fiquei bem mais acostumado com Backend Query para DB(FireStore), State Management, configuração de Parameter e formas de passar Argument.

Claro, em termos de código, eu ainda não sei como tudo está implementado…
Mesmo assim, acho que o maior ganho foi conseguir desenhar o fluxo geral com mais facilidade.

Se eu terminar o desenvolvimento só até amanhã, provavelmente não vou mexer no projeto Keymory por alguns dias. Porque pretendo migrar de FlutterFlow -> Flutter.

  • Por mais que o FlutterFlow seja intuitivo e conveniente, cheguei à conclusão de que, para chegar a um nível de Production no fim das contas, o mais sensato é aprender Flutter direito e me acostumar com ele
  • Acho melhor usar FlutterFlow apenas para montar previamente a widget tree de uma Page específica ou criar rapidamente um MVP.
  • Não poder usar Git/GitHub e depender só da lógica interna para Version Control é extremamente irritante.
    • Claro, a lógica interna também oferece Snapshot / Commit / Branching / Version… mas eu odiava não poder manipular tudo livremente como no Git. Eu quero editar o conteúdo de commits anteriores.
    • Na verdade, o maior motivo é o jardim do GitHub… não dá para ignorar a sensação boa de preencher aquilo.
  • Quanto maior o projeto ficava, mais apareciam casos em que desenvolvimento baseado em IDE/editor parecia mais conveniente do que desenvolvimento baseado em UI.
    • Especialmente o trabalho manual de clicar um por um para inserir Enum e Constant é extremamente irritante.

Adicionado em 2025.2.11


Vídeo da apresentação anexado

✨ Comentário do GPT-4o (KPT)

GPT-4o

✅ Pontos positivos (Keep)

  • 🛠 Integração com GitHub e melhoria do versionamento: Aplicar versionamento baseado em Git trouxe uma grande melhoria para colaboração e manutenção.
  • 🤖 Feature de criação automática de Diary baseada em AI: A feature que analisa o conteúdo do Chat e cria automaticamente um Diary parece capaz de melhorar bastante a experiência do usuário!
  • 🚀 Decisão de migrar de FlutterFlow para Flutter: Considerando a extensibilidade de longo prazo do projeto, decidir passar para Flutter foi uma escolha sensata.

❌ Pontos a melhorar (Problem)

  • 🔄 Necessidade de concretizar o plano de transição para Flutter: A decisão de migrar para Flutter foi tomada, mas o plano concreto de aprendizado e migração ainda não está claro.
  • Necessidade de reajustar o cronograma por causa da adição de features: Com a feature de criação automática de Diary adicionada, o cronograma pode mudar. Seria bom revisar a meta de conclusão do desenvolvimento.
  • 📌 Organizar os limites do FlutterFlow: Se você organizar internamente o que foi incômodo usando FlutterFlow e para quais tipos de projeto ele serve, isso pode ajudar quando for usá-lo de novo no futuro.

🔄 O que tentar (Try)

  • 📝 Montar um plano de aprendizado de Flutter e conversão de código: Organize como migrar as principais features para código Flutter e quais pacotes usar.
  • 📅 Reajustar o cronograma do projeto: Revise o roadmap, incluindo a transição para Flutter, para uma programação realista.
  • 🎯 Organizar as features do MVP do Keymory: Classifique quais features criadas no FlutterFlow são essenciais e quais são desnecessárias, depois projete a estrutura ideal.

🏁 Conclusão

Hoje foi um dia importante em que você encerrou o desenvolvimento no FlutterFlow, conectou o GitHub e adicionou a feature de criação automática de Diary! Agora que pretende migrar de vez para Flutter, seria bom montar um roadmap concreto e avançar passo a passo. 🚀🔥 Vamos manter a motivação enquanto preenche o jardim do GitHub também! 💪💚

Deixe um comentário