2025.01.30 (Kam)
2026.05.25 (Sen) diperbarui

โœจ Ringkasan GPT ใ€€

Hari ketika fitur-fitur utama Keymory diperbaiki, integrasi AI dan struktur data dirapikan, tetapi kenyataan bahwa waktu makin kurang terasa jelas.

๐Ÿ’ป Catatan Pengembangan

โฐ Hal yang harus dilakukan hari ini

  • โœ… DiaryPage - Mood: menyelesaikan slider pengaturan Mood
  • โœ… HomeFeedPage - ListView - FeedCardDiary: menampilkan Mood Color pada Border
    • Diselesaikan dengan Box Shadow milik Container
  • โœ… OnboardingPage - menyimpan setelah pengguna mengisi tambahan informasi dasar
    • โœ… Penambahan DB Field: nama(display_name), gender(gender), MBTI(mbti), โ€ฆ
    • โœ… HomeFeedPage - OnPageLoad: Navigate to OnboardingPage jika informasi wajib seperti display_name, gender, dan lainnya belum diisi
    • โœ… Field Type - Enum vs String: Field Type harus diatur sebagai String agar lebih mudah dikelola. Enum diputuskan hanya dipakai di Option Value Generation.
  • โœ… Memperbaiki OpenAI API Request agar nilai message dari response body keluar dengan normal
  • โœ… Diskusi dan eksperimen: lokasi penyimpanan informasi karakter AI? (OpenAI API Assistant vs FireStore Character Collection)
    • Hasil: simpan di FireStore Characters Collection.
      • Alasan: dari sisi pengguna, API Call yang akan dipakai hanya Get Assistant, dan sejak awal nilai yang diterima juga nilai tetap.

๐Ÿ’ฏ Ringkasan pekerjaan

  • Perbaikan DiaryPage
    • Menyelesaikan slider pengaturan Mood
    • Mengimplementasikan CRUD AI Comment
    • Menambahkan tombol kustomisasi gaya bicara dan cara memberi saran untuk AI Comment
    • Memutuskan dan menerapkan lokasi penyimpanan informasi karakter AI
  • Perbaikan HomeFeedPage
    • Mengubah dasar tampilan tanggal dari satuan โ€˜bulanโ€™ menjadi satuan โ€˜hariโ€™
    • Menambahkan logic output gambar dan teks AI Comment
    • Memperbaiki Bottom Sheet dan ListView
  • Sistem AI dan integrasi API
    • Memodifikasi OpenAI API Request dan memastikan response keluar normal
    • Memutuskan penyimpanan informasi karakter AI di FireStore
    • Merapikan struktur data terkait AI Comment dan menambahkan fitur

๐ŸŽฏ Hal yang harus dilakukan besok

(dilewati)

๐ŸŽฏ Hal yang akan dilakukan nanti

  • โ” diary to chat
  • โ” chat to diary
  • โ” chats history

  • โ” Memikirkan skenario implementasi CustomFunction getDiaryParams
    • Parameter Values yang diperoleh dari Characters (Collection)
      • Pengaturan karakter (Character Document)
        • ex) Somi: name(20-an), mahasiswa, kepribadian pemalu, โ€ฆ
      • Cara memanggil nilai: API Call - Get Assistant
    • Parameter Values yang diperoleh dari User Information
      • Nama, gender, MBTI
      • Cara memanggil nilai: Backend Query - Authenticated User
    • Parameter Values yang diperoleh dari DiaryPage Variables
      • Isi diary, kata kunci emosi detail, skor emosi, format jawaban, panjang jawaban
      • Cara memanggil nilai: Widget State, Page State
    • Peran CustomFunction(getDiaryParams)
      • Menerima semua Parameter Values sebagai nilai Input.
      • Menulis prompt yang akan dikirim ke GPT.
      • Mengembalikan nilai Messages (List <Json>).
        • [{"role":"developer", "content":"~~~"}]
  • โ” Membuat OpenAI API Call: createDiaryComment
    • Pada dasarnya strukturnya mirip dengan createChatCompletion
    • Perbedaan: tidak ada. Dibuat hanya untuk membedakan.
    • Messages Variable yang dibutuhkan oleh API Call - createDiaryComment adalah return value dari custom function getDiaryParams.
  • โ” Menyimpan daftar system prompt di OpenAI API Assistant?
  • โ” Membuat logic agar message ditulis berdasarkan system prompt yang tersimpan di OpenAI API Assistant?

  • โ” DiaryPage: mengubah Emoji ekspresi wajah sesuai nilai Mood Slider
  • โ” DiaryPage: menambahkan Choice Chips untuk kata kunci emosi detail dan mengatur integrasi DB
  • โ” DiaryPage - AI Comment: mengubah input seperti Choice chips dan mood slider agar sesuai dengan AI Comment System Prompt.
    • โ” **diary sebelumnya atau seluruh conversation history (utang teknis tambalan)
    • โ” informasi dasar pengguna: nama, gender, MBTI, โ€ฆ
    • โ” kata kunci emosi detail: senang, sedih, โ€ฆ
    • โ” pengaturan karakter: Somi, Sena, Minhyuk
    • โ” skor emosi: 1-100 poin
    • โ” format jawaban: Healing, Suggestion, Informative
    • โ” panjang jawaban: pendek, biasa, detail
    • is New Chat
      • Karena messages untuk Chat ini baru dibuat pertama kali, beri nilai is_initial = true pada message document pertama dan masukkan semua system prompt.
        • is_initial = false
        • Batasan: kalau system prompt dimasukkan ke message document paling awal, memang sulit diubah di tengah percakapan, tapi tetap memungkinkan. Kalau ada document dengan is_initial = true dan itu sudah dimodifikasi, document itu bisa dihapus lalu dimasukkan lagi. Bagaimananya belum tahu, tapi pasti ada jalan.
  • โ” DiaryPage - AI Comment: membuat manipulate_prompt Custom Function
    • Menyelesaikan system prompt dengan switch-case sesuai parameter yang diterima, lalu mengembalikan List <JSON>
    • Penanggung jawab system prompt harus memasukkan return value tersebut dengan tepat ke OpenAI API Request Body dan menerima hasilnya.
  • โ” DiaryPage - AI Comment: menyelesaikan CRUD dengan dummy data
    • โ” hapus field tmp_ai_comment dan gunakan doc_ref
  • โ” DiaryPage - AI Comment: pengaturan karakter
    • โ” hapus field tmp_ai_comment_by dan gunakan doc_ref
    • โ” output gambar dengan nilai field profile_image
  • How to Use Open AIโ€™s GPT-4o in FlutterFlow - Part 1
  • How to Use Open AIโ€™s GPT-4o in FlutterFlow - Part 2

  • DiaryPage - Start AI Chat: membuat New Chat berdasarkan isi diary
    • AI terlebih dahulu menyajikan pertanyaan berdasarkan isi diary
  • ChatPage - membuat ChatHistoryPage: menampilkan riwayat chat sebelumnya dalam ListView
    • Create
    • Read
    • Update
    • Delete
  • DiaryPage - Drawer - membuat ChatHistoryListTile: gaya ringkasan kartu seperti GPT

  • HomeFeedPage - Bottom Sheet (+ Button): membuat agar bisa memilih 1 dari berbagai opsi
    • Diary baru: Go to DiaryPage
    • Catatan emosi: Go to MoodPage
  • MoodPage (popup): CRUD slider pengaturan Mood
    • Create
    • Read
    • Update
    • Delete
  • HomeFeedPage - ListView: menampilkan FeedCardMood
  • HomeFeedPage - ListView: mengurutkan komponen FeedCardDiary, FeedCardMood, FeedCardChat secara kronologis (memanfaatkan Cloud Function)

  • HomeFeedPage: menyelesaikan issue saat On page load (Unexpected Null Value)
  • Menerapkan Interactive Slider
  • Extract dan install APK versi final untuk presentasi sampai Rabu 2025.2.5

๐Ÿ’ญ Diary

Minhyuk

Tidak ada waktu.

Dilewati.

keymory-1.png keymory-2.png keymory-3.png keymory-4.png keymory-5.png

โœจ Komentar GPT-4o (KPT)

GPT-4o

โœ… Hal yang sudah baik (Keep)

  • ๐Ÿš€ Peningkatan besar pada fitur utama: Bagus sekali karena kamu meningkatkan kelengkapan proyek dengan memperluas fitur inti seperti CRUD AI Comment, pengaturan Mood, dan perbaikan HomeFeedPage.
  • ๐Ÿ” Merapikan struktur data: Mengesankan karena kamu menata cara pengelolaan data secara sistematis, termasuk memutuskan penyimpanan informasi karakter AI di FireStore.
  • ๐Ÿ“‹ Penetapan tujuan konkret: Baik karena kamu merapikan pekerjaan yang tersisa dan prioritas dengan jelas, sehingga rencana progres menuju versi presentasi menjadi lebih konkret.

โŒ Hal yang masih kurang (Problem)

  • โณ Waktu yang kurang: Karena jadwal pengembangan makin ketat, kemungkinan waktu untuk testing dan debugging tidak cukup semakin besar.
  • ๐Ÿ—๏ธ Banyak solusi sementara: Banyak bagian diselesaikan dengan field dan fungsi sementara agar fitur bisa cepat diimplementasikan, sehingga technical debt bisa menumpuk.

๐Ÿ”„ Hal yang bisa dicoba (Try)

  • ๐Ÿ› ๏ธ Sesuaikan prioritas: Pisahkan dengan jelas fitur yang wajib ada untuk versi final presentasi dan fitur yang bisa diperbaiki setelahnya, lalu naikkan kelengkapan fitur inti terlebih dahulu.
  • ๐Ÿ•ต๏ธ Bangun sistem pengecekan bug: Karena waktu singkat, lakukan testing fitur dan debugging dalam putaran pendek setiap hari untuk meminimalkan error yang tidak terduga.
  • ๐Ÿ”„ Rencana pembersihan technical debt: Dokumentasikan rencana perbaikan untuk fitur yang diimplementasikan sementara, lalu rapikan bagian yang harus dipoles lebih dulu setelah presentasi.

Kesimpulan
Hari ini kamu menyelesaikan fitur inti Keymory dan meningkatkan kelengkapan proyek, tetapi di tengah jadwal yang ketat kamu juga merasakan dengan jelas kurangnya waktu. Semoga kamu bisa melakukan yang terbaik sampai hari presentasi sambil tetap merapikan hal-hal untuk perbaikan setelahnya! ๐Ÿ’ช๐Ÿ˜Š

Tinggalkan komentar