2025.02.07 (금)
2026.05.25 (μ›”) μˆ˜μ •

✨ GPT Summary γ€€

AIFFELTHON graduation project submitted. Wrapped up development in FlutterFlow and backed it up to GitHub.

πŸ’» Development Log

⏰ Today’s tasks

  • βœ… Download APK
  • βœ… Connect GitHub and Push

  • βœ… Submit presentation material: PPT
  • βœ… Submit presentation material: 1-minute demo video

  • βœ… ChatPage - Create New Diary: create a New Diary based on conversation content
    • βœ… 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)
  • βœ… Added welcome page when first opening the app (logo)

  • βœ… DiaryPage: change face expression Emoji and color according to Mood Slider value (handled by KSK)

πŸ’― Summary of what I did

  • Final FlutterFlow development ended
  • GitHub connection and project push completed
  • Implemented automatic Diary creation based on Chat content
    • Added delete confirmation Dialog when an existing Diary exists
    • Used OpenAI API to generate Chat Summary and Diary automatically
  • Added welcome page on app launch (logo screen)
  • DiaryPage: emoji and color change according to Mood Slider

🎯 Future tasks

Click to see details
  • ❔ Presentation prep - script: measure page-by-page script time and revise script
  • ❔ Presentation prep - PPT: record short demo videos by feature

  • ❔ ChatPage: unify title default value from Random String to β€œUntitled”

  • ❔ ChatPage: implement Delete Diary Link (… icon lets user delete)
    • Must also remove the linked field from Diary/Chat Doc together!
  • ❔ MoodPage (top) - Mood Calendar
    • ❔ Check the number of posts written by date
    • ❔ Move to the selected date when clicking a date
  • ❔ MoodPage (bottom) - Mood stats
    • ❔ Output statistics for the focused month
      • ❔ Output AI comment on the displayed statistics
  • ❔ HomeFeedPage - import and apply flutter_slidable:4.0.0
  • ❔ HomeFeedPage: on left/right slide from FeedCardDiary, chat/edit/delete

  • ❔ Chat/Diary: GPT Streaming API

  • ❔ ChatPage - implement AI first message (Alarm/Notification)
    • The core of the chat system prompt is proactivity.
      • To make it more realistic, it might be good to pass create_date of diary/chat too, so the AI can mention dates like β€œyesterday.”
    • Alarm implementation reference
  • ❔ DiaryPage: add detailed emotion keyword Choice Chips and set DB integration
  • ❔ DiaryPage - AI Comment: change inputs such as Choice chips and mood slider to fit the AI Comment System Prompt.
    • ❔ **previous diary or entire conversation history (patchy technical debt)
    • ❔ basic user information: name, gender, MBTI, …
    • ❔ detailed emotion keywords: happy, sad, …
    • ❔ character settings: Somi, Sena, Minhyuk
    • ❔ emotion score: 1 to 100
    • ❔ response format: Healing, Suggestion, Informative
    • ❔ response length: short, normal, detailed
    • is New Chat
      • Since this Chat’s messages are being created for the first time, set is_initial = true on the first message document and shove in all system prompts.
        • is_initial = false
        • Limit: if I put the system prompt into the very first message document, it is hard to modify in the middle of a conversation, but possible. If there is an is_initial = true document and it was modified, I can delete that document and put it back in. I do not know how, but still.
  • ❔ DiaryPage - import and apply Interactive Slider

  • ❔ HomeFeedPage: implement Search Diary feature

  • ❔ AuthPage: implement Google Login

  • ❔ HomeFeedPage - Bottom Sheet (+ Button): make it possible to choose one of several options
    • New diary: Go to DiaryPage
    • Emotion record: Go to MoodPage
  • ❔ MoodPage (popup): Mood setting slider CRUD
    • Create
    • Read
    • Update
    • Delete
  • ❔ HomeFeedPage - ListView - show FeedCardMood
  • ❔ HomeFeedPage - ListView: sort FeedCardDiary, FeedCardMood, FeedCardChat components chronologically (using Cloud Function)

  • ❔ Create MoodEditPage between HomeFeedPage and DiaryPage: move MoodSlider, MoodKeywordsRate (5~1), MoodDescription widgets, etc.

  • ❔ (Issue) tmpGetAIComment does not consider the emotion keywords selected by the user when creating.

  • βœ… Extracted and installed the final presentation APK by Wed 2025.2.5

πŸ’­ Diary

Minhyuk

After continuing to use FlutterFlow, I feel like I have now built up a decent amount of basic understanding of Flutter itself.

  • While touching Custom Function/Widget, I learned some basic syntax knowledge.
  • I became much more familiar with Backend Query to DB (FireStore), State Management, Parameter settings, and how to pass Arguments.

Of course, I still do not know how it is implemented code-wise…
Still, I think the biggest gain is that I can now draw the overall big flow more easily.

If I complete development only until tomorrow, I probably will not touch the Keymory project for a few days. Because I plan to move from FlutterFlow -> Flutter.

  • No matter how intuitive and convenient FlutterFlow is, I have decided that properly learning and getting used to Flutter is the wise choice if I want to reach production level in the end
  • I think FlutterFlow is best used only for prebuilding specific Page widget trees or quickly making an MVP.
  • It is extremely annoying that I cannot use Git/GitHub and can only use the internal version control logic.
    • Of course, the internal logic provides Snapshot / Commit / Branching / Version too… but I hated that I could not freely manipulate it like Git. I want to modify previous commit contents.
    • Actually, the biggest reason is GitHub grass… you cannot ignore the thrill of filling the grass.
  • As the project scale grows, there were many cases where IDE/editor-based development felt more convenient than UI-based development.
    • Especially the manual work of clicking one by one to add Enum and Constant is extremely annoying.

Added on 2025.2.11


Attached presentation video

✨ GPT-4o Comment (KPT)

GPT-4o

βœ… What Went Well (Keep)

  • πŸ›  GitHub integration and version management improvement: Applying Git-based version management was a major improvement for collaboration and maintenance.
  • πŸ€– AI-based automatic Diary creation feature: The feature that analyzes Chat content and automatically creates a Diary seems like it can greatly improve user experience!
  • πŸš€ Decision to move from FlutterFlow to Flutter: Considering long-term project extensibility and deciding to move to Flutter was a wise judgment.

❌ What Was Missing (Problem)

  • πŸ”„ Need to make the Flutter transition plan concrete: You decided to move to Flutter, but the concrete learning and migration plan is not clear yet.
  • ⏳ Need to adjust schedule due to feature additions: With the automatic Diary creation feature added, the schedule may change. It would be good to revisit the development completion target date.
  • πŸ“Œ Organize FlutterFlow’s limits: If you internally organize what was inconvenient while using FlutterFlow and what kinds of projects it suits, it will be useful when using it again later.

πŸ”„ What to Try (Try)

  • πŸ“ Make a Flutter learning and code conversion plan: Organize how to move major features into Flutter code and what packages to use.
  • πŸ“… Readjust project schedule: Revise the roadmap, including the Flutter transition, into a realistic schedule.
  • 🎯 Organize Keymory MVP features: Classify which features from the FlutterFlow build are core and which are unnecessary, then design the optimal structure.

🏁 Conclusion

Today was an important day where you wrapped up development in FlutterFlow, connected GitHub, and added the Diary automatic creation feature! Now that you plan to move seriously into Flutter, it would be good to set a concrete roadmap and proceed step by step. πŸš€πŸ”₯ Keep motivation up while filling GitHub grass too! πŸ’ͺπŸ’š

Leave a comment