Juno App - Daily Journal
Jarang dengar lelaki buat jurnal aktiviti seharian. Tapi itu lah aku, sejak zaman sekolah lagi aku dah mula tulis jurnal setiap hari. Bermula dari buku fizikal yang aku tulis pakai tangan, sehingga lah berpindah ke format digital sekarang.
P/s: Aku guna perkataan “jurnal” sebab “diari” tu macam terlalu feminin. Tapi ya, secara teknikal nya memang aku ada tulis diari setiap hari.
Sejarah nya, waktu sekolah dulu aku suka dengan konsep kapsul masa. Di mana aku set satu tarikh di masa hadapan lepas tu letak mesej yang aku nak baca waktu tu. Dari situ idea untuk buat jurnal pun terjebak lah. Maka aku pakai satu buku untuk tulis apa aku buat dalam hari tu. Sampai lah ke hari ini, tahun 2025 aku masih lagi menulis aktiviti harian aku. Cuma sekarang pakai keyboard lah.
Sebelum aku bina apps aku sendiri untuk tulis diari ni, aku cuma pakai notepad je. Kalau dalam phone, aku pakai mana-mana note taking app yang ada dekat pasaran waktu itu. Cerita tentang migrasi nota aku ada di sini.
Oleh sebab aku peduli tentang privasi, aku pun mulakan langkah untuk membina app sendiri. Takut pakai app orang ni dia boleh baca diari kita, itu yang aku buat sendiri. Maka terlahir lah, Juno.
Juno Electron (desktop)
Nama Juno ni berasal dari perkataan journal. Dari journal jadi lah Juno.
Versi pertama app ni aku bina pakai Electron. Vuejs untuk framework UI. Backend nya pakai Express framework dan MySQL untuk database. Tak ada mobile app, cuma ada desktop saja. Jadi kurang convenient la dekat situ.
Antara feature yang ada dalam app ni:
- Create, update dan delete diary
- Timeline view berdasarkan tahun dan bulan
- Search diary
- Export ke .sql (cringe)
- Pagination
Tak power pun, tapi cukup untuk aku. Aku tahu Electron framework ni boleh cross-platform, tapi aku tak design codebase nya untuk mobile app. Maka setiap hari kena buka laptop untuk tulis diari. Kadang tu aku dah tulis dulu dalam phone, lepas tu baru pindah ke desktop. Leceh.
Satu benda aku kurang gemar tentang app ni adalah ia rasa berat. Kali pertama kot bina app note taking. Semua benda pun aku nak sumbat, maka dia jadi bloated. Actually takde la bloated sangat, cuma dalam otak aku, aku expect app ni simple je: asalkan boleh CRUD dan export.
Maka nya, projek ni pun terbengkalai akibat developer nya tak puas hati. Btw, aku tak pakai pun dah app ni. Aku pakai versi Android yang ada di bawah ni.
Source code
- Juno Electron (client): https://github.com/aemxn/juno-ui
- Juno Electron (backend): https://github.com/aemxn/juno-server
Versi ni kena build sendiri .exe nya (guide untuk build ada dalam README.md). Aku tak ingat aku ada .exe file nya ke tidak. Tapi kalau ada pun kena run MySQL juga untuk dia berfungsi. Jadi takyah lah, buang masa je.
Juno Android (mobile)
Juno versi kedua aku bina dalam bentuk mobile app. Tech stack nya cuma Flutter dan Dart saja. Tiada network access, tiada external database, tiada panggil-panggil API. Kali ni aku bikin simple dan basic, memang pure CRUD app tapi direka untuk berfokuskan menulis dan membaca diari.
Features
Feature yang ada cuma lah yang basic-basic:
- Create, update, view dan update diary
- Search by date dan search by text
- Favorite diary – untuk nak senang cari hari yang penting untuk aku
- Yang paling penting, boleh export ke Markdown dan boleh pilih range tarikh untuk export – Tiada lagi dah export ke cringe SQL
Juno versi ini hanya untuk peranti Android saja. Aku belum cuba compile ke iOS sebab aku tak pakai Apple :/
Bawah aku sajikan screenshot Juno Android:
App ni aku vibe code je. Guna ChatGPT, Grok dan Gemini dalam Android Studio tu. Mudah kerja. Sebenarnya banyak lagi feature aku nak taruk, macam lock pakai pin code dan encryption. Tapi dia jadi rumit dekat bahagian nak export ke Markdown. Bila ada encryption, kerja meng-export ke Markdown tu macam anti-thesis pula (sebab plaintext). Aku nak bikin sesimple yang mungkin. Kalau boleh taknak ada internet access pun. Makna nya app ni boleh juga dipakai dalam phone lama.
Synchronization
Untuk synchronization, rujuk post Migrasi Nota Bhg II ni. Aku pakai Dropsync, iaitu app untuk scan folder dan sync ke Dropbox secara berkala.
Flow untuk synchronization:
- Setiap akhir bulan aku akan export ke Markdown file
- File tersebut disimpan dalam satu folder (boleh set)
- Folder tersebut di sync ke Dropbox guna Dropsync
Source code
Aku belum upload lagi source code nya ke Github. Nanti lah aku update sini siap APK nya sekali.