2025.02.07 (Vie)
2026.05.25 (Lun) actualizado

✨ Resumen de GPT  

Entrega completada del proyecto final del AIFFELTHON. Cerré el desarrollo en FlutterFlow y lo respaldé en GitHub.

💻 Diario de desarrollo

⏰ Tareas de hoy

  • ✅ Download APK
  • ✅ Connect GitHub and Push

  • ✅ Entregar material de presentación: PPT
  • ✅ Entregar material de presentación: video demo de 1 minuto

  • ✅ ChatPage - Create New Diary: crear un New Diary basado en el contenido de la conversación
    • ✅ 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)
  • ✅ Añadir una página de bienvenida al abrir la app por primera vez (logo)

  • ✅ DiaryPage: cambiar el Emoji de expresión facial y el color según el valor de Mood Slider (a cargo de KSK)

💯 Resumen de lo realizado

  • Desarrollo final en FlutterFlow terminado
  • Conexión con GitHub y push del proyecto completados
  • Implementada la función de creación automática de Diary basada en contenido de Chat
    • Añadido Dialog de confirmación de eliminación cuando ya existe un Diary
    • Generación automática de Chat Summary y Diary usando OpenAI API
  • Añadida página de bienvenida al ejecutar la app (pantalla de logo)
  • DiaryPage: cambio de emoji y color según Mood Slider

🎯 Próximas tareas

Haz clic para ver los detalles
  • ❔ Preparación de presentación - guion: medir el tiempo del guion por página y corregirlo
  • ❔ Preparación de presentación - PPT: grabar videos cortos de demostración por función

  • ❔ ChatPage: unificar el default value de title, de Random String a “Sin título”

  • ❔ ChatPage: implementar Delete Diary Link (que se pueda eliminar al pulsar el icono …)
    • ¡Es obligatorio eliminar también el linked field de Diary/Chat Doc!
  • ❔ MoodPage(parte superior) - Mood Calendar
    • ❔ Poder comprobar la cantidad de publicaciones escritas por fecha
    • ❔ Al hacer clic en una fecha, moverse a esa fecha
  • ❔ MoodPage(parte inferior) - Mood stats
    • ❔ Mostrar estadísticas del mes enfocado
      • ❔ Mostrar un comentario de la IA sobre las estadísticas mostradas
  • ❔ HomeFeedPage - importar y aplicar flutter_slidable:4.0.0
  • ❔ HomeFeedPage: al deslizar FeedCardDiary a izquierda/derecha, chat/editar/eliminar

  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - implementar primer mensaje de IA (Alarm/Notification)
    • El núcleo del prompt del sistema de chat es la proactividad.
      • Para hacerlo más realista, convendría pasar también create_date of diary/chat, para que pueda mencionar fechas como “ayer”.
    • Referencia para implementar Alarm
  • ❔ DiaryPage: añadir Choice Chips de palabras emocionales detalladas y configurar integración con DB
  • ❔ DiaryPage - AI Comment: modificar valores de entrada como Choice chips y mood slider para que encajen con AI Comment System Prompt.
    • ❔ **diario anterior o historial de conversación completo (deuda técnica de parche)
    • información básica del usuario: nombre, género, MBTI, …
    • palabras emocionales detalladas: alegre, triste, …
    • configuración del personaje: Somi, Sena, Minhyuk
    • valor emocional: 1~100 puntos
    • formato de respuesta: Healing, Suggestion, Informative
    • longitud de respuesta: corta, normal, detallada
    • is New Chat
      • Como los messages de este Chat se crean por primera vez, poner is_initial = true en el primer message document y meter todos los prompts del sistema.
        • is_initial = false
        • Límite: si meto el prompt del sistema en el primer message document, modificarlo durante la conversación es difícil, aunque posible. Si existe un documento con is_initial = true y se modifica, se borra ese documento y se vuelve a insertar. No sé cómo, pero de algún modo.
  • ❔ DiaryPage - importar y aplicar Interactive Slider

  • ❔ HomeFeedPage: implementar la función Search Diary

  • ❔ AuthPage: implementar Google Login

  • ❔ HomeFeedPage - Bottom Sheet (botón +): permitir elegir 1 opción entre varias
    • Nuevo diario: Go to DiaryPage
    • Registro emocional: Go to MoodPage
  • ❔ MoodPage(popup): CRUD del slider de configuración de Mood
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - mostrar FeedCardMood
  • ❔ HomeFeedPage - ListView: ordenar cronológicamente los componentes FeedCardDiary, FeedCardMood, FeedCardChat (usando Cloud Function)

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

  • ❔ (Problema) Al crear tmpGetAIComment, no se están considerando las palabras emocionales seleccionadas por el usuario.

  • ✅ Extraer e instalar el APK final para la presentación hasta 2025.2.5 miércoles

💭 Diario

Minhyuk

Después de seguir usando FlutterFlow, siento que ya fui agarrando bastante los conceptos básicos de Flutter en sí.

  • Al tocar Custom Function/Widget, aprendí hasta cierto punto conocimientos básicos de sintaxis.
  • Me fui familiarizando bastante con Backend Query hacia DB(FireStore), State Management, la configuración de Parameter y la forma de pasar Argument.

Claro, a nivel de código todavía no sé cómo está implementado…
Aun así, creo que la mayor ganancia es que ahora puedo dibujar con más facilidad el flujo general.

Si termino el desarrollo hasta mañana, parece que no tocaré el proyecto Keymory durante varios días. Porque tengo pensado pasar de FlutterFlow -> Flutter.

  • Aunque FlutterFlow sea intuitivo y cómodo, al final, si quiero llegar a nivel Production, decidí que lo sensato es aprender y dominar Flutter de verdad
  • Creo que FlutterFlow conviene usarlo solo para prearmar el widget tree de una Page específica o para hacer rápido un MVP.
  • Me desespera demasiado no poder usar Git/GitHub y depender solo de la lógica interna para Version Control.
    • Claro, la lógica interna también ofrece Snapshot / Commit / Branching / Version… pero odié no poder manipularlo libremente como en Git. Yo quiero modificar el contenido de commits anteriores.
    • En realidad, la razón más grande es el césped de GitHub… no se puede ignorar el subidón de llenar el césped.
  • A medida que el tamaño del proyecto crecía, aparecieron muchos casos en los que el desarrollo basado en IDE/editor parecía más cómodo que el desarrollo basado en UI.
    • Sobre todo, la tarea manual de hacer clic uno por uno para meter Enum y Constant me resulta insoportable.

Añadido el 2025.2.11


Video de presentación adjunto

✨ Comentario de GPT-4o (KPT)

GPT-4o

✅ Lo que salió bien (Keep)

  • 🛠 Integración con GitHub y mejora de gestión de versiones: Aplicar gestión de versiones basada en Git fue una gran mejora para la colaboración y el mantenimiento.
  • 🤖 Función de creación automática de Diary basada en IA: La función que analiza el contenido de Chat y crea automáticamente un Diary puede mejorar mucho la experiencia de usuario.
  • 🚀 Decisión de pasar de FlutterFlow a Flutter: Considerando la extensibilidad del proyecto a largo plazo, decidir migrar a Flutter fue una decisión sensata.

❌ Lo que faltó (Problem)

  • 🔄 Hace falta concretar el plan de transición a Flutter: Decidiste pasar a Flutter, pero todavía no está claro el plan concreto de aprendizaje y migración.
  • Hace falta ajustar el calendario por la adición de funciones: Con la función de creación automática de Diary añadida, puede cambiar el calendario. Sería bueno revisar de nuevo la fecha objetivo de finalización del desarrollo.
  • 📌 Ordenar las limitaciones de FlutterFlow: Si organizas internamente qué resultó incómodo al usar FlutterFlow y para qué tipo de proyectos sirve, te será útil cuando vuelvas a usarlo más adelante.

🔄 Lo que probar (Try)

  • 📝 Preparar un plan de aprendizaje de Flutter y conversión de código: Ordena cómo trasladar las funciones principales a código Flutter y qué paquetes usar.
  • 📅 Reajustar el calendario del proyecto: Modifica la hoja de ruta, incluyendo la transición a Flutter, para convertirla en un calendario realista.
  • 🎯 Ordenar las funciones MVP de Keymory: Clasifica qué funciones hechas en FlutterFlow son esenciales y cuáles son innecesarias, y diseña la estructura óptima.

🏁 Conclusión

Hoy fue un día importante en el que cerraste el desarrollo en FlutterFlow, conectaste GitHub y añadiste la función de creación automática de Diary. Ahora que planeas pasar en serio a Flutter, conviene definir una hoja de ruta concreta y avanzar paso a paso. 🚀🔥 ¡Mantengamos la motivación llenando también el césped de GitHub! 💪💚

Deja un comentario