Pendahuluan
Setelah menyiapkan Bench dan memahami dasar-dasar Frappe, kita mulai membangun aplikasi custom kita sendiri. Ini salah satu hal terpenting dalam development menggunakan framework Frappe, baik itu untuk diintegrasikan dengan aplikasi lainnya maupun berdiri sendiri. Pada pembahasan ini, kita akan mengembangkan aplikasi Ride Management
untuk memodelkan sistem pemesanan kendaraan fiktif sambil mempelajari konsep-konsep baru dalam framework Frappe.
Membuat Aplikasi
Untuk membuat aplikasi custom, kita dapat menjalankan command berikut.
bench new-app [custom-app-name]
# Untuk seri artikel ini, kita akan buat aplikasi bernama ride-management
bench new-app ride-management
Setelah menjalankan command di atas, Anda akan diminta untuk mengisi beberapa detail dari aplikasi custom tersebut. Anda dapat mengisi detail-detail tersebut sesuai dengan informasi yang Anda miliki. Kemudian, bench frappe akan menjalankan beberapa command secara otomatis untuk membentuk aplikasi Anda.
Struktur Direktori Aplikasi Custom
Setelah itu, aplikasi custom Ride Management
pun sudah berhasil dibuat hanya dengan 1 command saja. Jika Anda melihat struktur direktori bench kembali, Anda dapat melihat bahwa sudah ada direktori baru pada folder app/ yang berisikan file-file aplikasi Ride Management
. Secara umum, struktur direktori setiap aplikasi custom yang dibuat akan berbentuk seperti gambar disamping.
Seluruh file dan direktori tersebut dibuat secara otomatis oleh framework Frappe untuk membuat aplikasi web yang terstruktur. Maka, seluruh file yang akan dibuat secara otomatis serta file yang perlu kita edit kedepannya akan berada di satu tempat ini.
Berikut adalah penjelasan singkat mengenai setiap direktori/file yang ada pada struktur diatas.
- public: Direktori ini menyimpan seluruh file statis (CSS, JavaScript, gambar, dll.) publik yang akan dijalankan oleh nginx pada mode production. Publik disini artinya setiap user (baik yang memiliki izin ataupun tidak) akan dapat mengakses file-file yang ada di direktori ini.
- templates: Direktori ini menyimpan template Jinja yang digunakan untuk merender web view. Berbagai file dapat ditempatkan pada direktori ini seperti HTML, JavaScript, dan Python yang dapat digunakan untuk mendukung penggunaan Jinja.
- www: Direktori ini menyimpan seluruh
Web Page
yang dapat kita buat sebagai portal aplikasi website kita. Kita akan menyentuhWeb Page
pada episode yang akan datang.
- ride_management: Modul default aplikasi.
- modules.txt: File ini berisi daftar modul yang terdefinisi pada aplikasi.
- patches.txt: File ini berisi data patch untuk migrasi database.
- hooks.py: File ini berisi seluruh hooks yang dapat digunakan untuk melakukan kustomisasi aplikasi. Selain untuk menambahkan fitur/fungsionalitas, hooks juga dapat digunakan untuk memperluas atau menggantikan fitur/fungsionalitas standar yang telah disediakan oleh Frappe.
- pyproject.toml: File ini mendefinisikan bagaimana aplikasi dibangun dan berfungsi sebagai blueprint dari aplikasi yang dapat mengandung dependencies, konfigurasi, meta-data, dependencies third-party, dan lainnya. File ini dapat dirujuk ketika menjalankan script/hook custom, juga penting untuk proses-proses yang perlu dijalankan setelah instalasi, saat perbaikan, update, dan juga pembuatan ulang environment.
Kesimpulan
Di episode ini, kita telah berhasil memulai pembangunan aplikasi Ride Management
menggunakan framework Frappe. Dengan mengikuti langkah-langkah yang disediakan, aplikasi custom Anda kini memiliki kerangka kerja yang siap untuk dikembangkan lebih lanjut. Struktur direktori yang tercipta secara otomatis menyediakan fondasi yang kuat untuk memulai proses pengembangan aplikasi yang terorganisir dan modular. Dengan direktori public
, templates
, dan www
, serta file konfigurasi seperti hooks.py
dan pyproject.toml
, kita memiliki kontrol penuh atas pengembangan aplikasi, mulai dari aspek frontend hingga pengaturan backend yang mendalam.
Berikutnya
Dalam episode mendatang, kita akan melangkah ke dalam proses mendefinisikan dan mengatur DocTypes yang merupakan elemen penting dalam model data aplikasi Frappe. Dalam beberapa episode berikutnya, kita akan mempelajari bagaimana menciptakan DocTypes untuk mengelola data kendaraan, pemesanan, dan pengguna, serta bagaimana menautkan antara satu DocType dengan DocType lain untuk membangun hubungan dalam database. Kita juga akan mengeksplorasi bagaimana menggunakan DocTypes ini untuk membangun antarmuka pengguna yang intuitif dan responsif. Jangan lewatkan episode berikutnya untuk terus mengembangkan aplikasi Ride Management
sambil mempelajari konsep-konsep pembuatan aplikasi framework Frappe.
Referensi:
Create an App (frappeframework.com)