Selama beberapa bulan ini saya berlangganan Perplexity, saya lebih banyak menggunakan LLM assistant tersebut sebagai mesin pencarian yang interaktif.
Baru-baru ini saya teringat sebuah ide lama untuk sebuah aplikasi, dan baru teringat juga kalau seharusnya saya bisa mencoba menggunakan AI assistant untuk membuat aplikasi ini.
Awalnya saya coba menggunakan Perplexity untuk membuat versi-versi awal dari aplikasi ini. Namun setelah limit bulanan-nya habis, saya pindah menggunakan Claude untuk pengembangan berikutnya.
Latar belakang
Saya sering lupa menaruh barang-barang saya terakhir kali itu di mana, terutama untuk barang-barang yang jarang dipakai. Contohnya: bantal leher untuk travel.
Saya hanya akan mencari barang tersebut ketika ingin traveling. Sedangkan jarak waktu antar traveling itu seringkali cukup jauh, bisa beberapa bulan. Hal ini yang bisa membuat saya lupa di mana saya terakhir menyimpannya.
Problem nomor dua yang ingin saya solve adalah untuk mengingat kapan terakhir kali saya mengganti sesuatu. Contoh: kapan ya saya terakhir kali mengganti filter air purifier di kamar tidur? Kapan ya terakhir vaksin / memberikan obat kutu untuk kucing-kucing saya? Kapan ya saya terakhir kali service mobil?
Saya ingin membuat sebuah app yang bisa mengingatkan saya atas kedua hal ini: untuk mencatat lokasi penyimpanan terakhir dari suatu barang, dan untuk mencatat kapan saya terakhir melakukan sesuatu.
Langkah-langkah
Karena background saya adalah Product Manager, saya memulai pembuatan aplikasi ini dari Product Requirement Document (PRD) dulu.
Di awal, saya jelaskan dulu apa yang ingin saya capai dari aplikasi ini secara simple:
Goal: create a web-app
Function of the app: Allow users to set reminders with photos. Reminder here means: when, where did I last place item X (optionally with photos); when did I last do something (e.g. the last time I replaced the air purifier filter).
R1: a screen with list of above mentioned reminders. Allow users to add tags and organize these reminders.
R2: a screen to add reminders.
- What is the reminder of
- When was this; default to current time, but editable.
- Optional: allow to take photo using camera / upload from gallery.
Dari prompt awal ini, Perplexity membuatkan sebuah PRD yang cukup komprehensif. Saya pun memberikan prompt-prompt lanjutan untuk menambahkan atau mengurangi beberapa hal dari draft PRD itu.
Setelah PRD diupdate beberapa kali, barulah saya meminta Perplexity untuk membuatkan web-app tersebut. Butuh beberapa kali iterasi minor dan bug fixing sampai saya cukup puas dengan hasilnya.
Saya kemudian mencari info bagaimana caranya web-app ini bisa saya host secara online. Harapannya adalah agar semua reminder saya bisa diakses dari device manapun.
Perplexity menyarankan untuk menggunakan Firebase. Perplexity juga menyiapkan step-by-step guide untuk melakukan setup yang dibutuhkan. Petunjuk yang disiapkan cukup mudah dimengerti dan tidak ada yang keliru, karena saya akhirnya bisa deploy web-app ini di Firebase dengan sukses.
Untuk pengembangan versi-versi berikutnya, saya lanjutkan di Claude karena kuota Perplexity Labs untuk membuat app sudah habis ^^;
Saya menambahkan prompt ini di Claude:
You are a team of experienced senior software engineer, UIX designer, security engineer, and test engineer. You are the expert in your respective fields. If the team were to audit this webapp, how would the team improve and future-proof this web app? Focus on performance, UIX, security, and bug fixes.
Dengan ini, Claude memberikan banyak sekali masukan agar web-app ini bisa berfungsi dengan lebih efisien.
Item reminder app
Inilah webapp yang dihasilkan oleh Perplexity dan Claude.
Halaman login.
Karena rencananya mau dijadikan web-app, saya menambahkan fitur sign-up dan sign-in agar data di dalam bisa lebih private.
Untuk mencegah abuse, fitur Sign Up saya matikan di Firebase console setelah saya mendaftarkan akun untuk penggunaan pribadi.

Halaman utama.
Fungsi:
- List reminder
- Search
- Filter by reminder type
- Add new reminder

Add new reminder.
Ada tipe Location untuk mengingat kapan dan di mana saya menyimpan sebuah barang.
Ada tipe Recurring, untuk mengingat kapan saya terakhir melakukan sesuatu.

Reminder details sheet.
Rangkuman singkat dari setiap reminder yang ada.
Ada informasi kapan terakhir aktifitas ini dilakukan
Ada fungsi untuk edit atau delete reminder.
Log Now itu fungsinya untuk menambahkan log dari reminder yang sama. Misal ketika nanti 3 bulan lagi saya memberikan obat kutu ke kucing saya yang Bella ini.
Jika sudah ada beberapa event dalam satu reminder, akan ada History log-nya. Contohnya service history mobil saya.


Analytics page
Halaman iseng saja sebenernya hehe.
Untuk melihat rangkuman jumlah reminder yang tersimpan, apakah ada reminder yang harus dilakukan dalam 2 minggu ke depan, dll.

Tags management
Halaman untuk mengatur tags yang ada.
Tags di-sanitize menjadi lowercase, dan spasi diganti menjadi tanda minus (-).
Jika tags diganti di halaman ini, akan otomatis meng-update semua reminder yang menggunakan tags tersebut.
Menghapus tags di halaman ini, tidak menghapus reminder-reminder yang menggunakan tags tersebut.
Tags di halaman ini juga berfungsi sebagai filter.

Settings
Web-app ini mendukung dark mode.
Saya juga meminta untuk dibuatkan sistem backup dan restore.
Web-app ini juga bisa di-install pada homescreen Android untuk kemudahan akses.

Some thoughts
Sebagai seseorang yang seringkali memiliki ide namun memiliki kekurangan dalam sisi teknis software development, AI assistant ini sangat membantu untuk mengetes ide-ide yang terpikirkan.
Bekerja dengan AI assistant ini rasanya seperti berkolaborasi dengan tim software developer yang lebih berpengalaman. Jujur saya tidak bisa menilai kualitas code yang dihasilkan, namun dari sisi end user, saya merasa web-app ini memiliki performance yang cukup baik.
Web-app ini, karena dibuat untuk menyelesaikan problem yang saya alami pribadi, langsung menjadi salah satu aplikasi favorit saya.
Saya sudah memiliki beberapa ide untuk aplikasi-aplikasi lainnya. Jika sudah jadi, nanti akan saya sharing lagi di blog ini 😀
Sebelum kamu pergi
Kalau kamu suka dengan artikel ini, gunakan tombol-tombol di bawah untuk membagikan artikel ini ke teman-teman kamu, dan daftarkan email kamu untuk mendapatkan update jika ada artikel baru.
