OpenSID dan OpenDK berkembang atas dukungan teman-teman luar biasa yang meluangkan waktu dan pemikirannya dalam berkontribusi. Berikut adalah link untuk melihat daftar kontributor :
Siapa saja boleh membantu mengembangkan OpenSID dan openDK untuk mewujudkan desa cerdas dan tentunya menuju kecamatan yang dapat terintegrasi.
Pemahaman teknologi yang diperlukan tergantung dari tugas yang akan dikerjakan. Teknologi yang digunakan pada aplikasi dibawah naungan OpenDesa mencakup:
Versi PHP yang digunakan :
(Minimal PHP Versi 7.4, Maksimal PHP Versi 8.0).
Sebelum melakukan kontribusi :
Sebelum membuat kontribusi pelajari dulu aplikasinya. Install OpenSID dan pelajari pengoperasiannya. Pelajari source codenya dan pahami garis besar arsitekturnya.
Bergabung pada forum teknis OpenSID di https://opensid.slack.com. Anda dapat bergabung di forum itu melalui tautan ini: http://bit.ly/slack-opensid. Bergabung juga di grup Telegram https://t.me/joinchat/mi5ydVtVfmw0YWY1 untuk teman2 kontributor. Perkenalkan diri anda di kedua forum itu dan ceritakan kontribusi apa yang akan anda lakukan.
Siapkan tempat anda akan lakukan perubahan OpenSID Premium:
Setelah memahami apa yang dimaksud secara keseluruhan, bergabung di forum teknis dan perkenalkan diri Anda di forum tersebut dan ceritakan kontribusi apa yang akan dilakukan.
Perlu diperhatikan, bahwa pengembangan OpenSID tidak lagi seperti proyek open source yg biasa.
Dari pengalaman selama ini, terlihat bahwa pengembangan sepenuhnya melalui kontributor relawan murni pada prakteknya tidak bisa memenuhi kebutuhan desa yg spesifik dan perlu diselesaikan dalam waktu yg ditentukan. Pengembangan melalui kontributor relawan murni tidak tentu, dan sangat bergantung pada minat masing2 kontributor.
Untuk mengatasi keterbatasan itu, sekaligus juga berusaha tetap mempertahankan aplikasi gratis, bebas diperoleh dan open source, pengembangan OpenSID dilakukan melalui versi Premium. Desa yg memperoleh manfaat diajak untuk bergotong royong mendanai pengembangan fitur baru, dengan berlangganan rilis Premium. Sebagai penghargaan pada desa yg berlangganan, mereka diberi akses eksklusif pada fitur baru tersebut selama 6 bulan. Setelah itu, dibebaskan.
Dengan cara itu, pengembangan yg diperlukan dapat dilakukan sesuai kebutuhan dan waktu tertentu dapat dilakukan secara lebih pasti menggunakan programmer berbayar.
Sekaligus pengembangan melalui kontributor relawan tetap terbuka dan dihimbau.
Namun, karena versi Premium dikelola di repo Github yang private, untuk memperoleh mengakses, kontributor relawan perlu bersedia menandatangani Pernyataan Menjaga Hak Intelektual OpenDesa (https://bit.ly/3IOnAJL).
Di lain pihak, aplikasi OpenDK (https://github.com/OpenSID/OpenDK) masih open source murni seperti yg biasa. Tidak ada versi premium.
OpenDesa menyediakan pekerjaan yang terbuka bagi yg ingin mengirim penawaran berbayar. Pola kontribusi ini cocok bagi freelancer. Penjelasan lebih lanjut ada di Pekerjaan Berbayar (https://github.com/OpenSID/OpenSID/wiki/Pekerjaan-Berbayar).
Selain pekerjaan berbayar, sebagai aplikasi terbuka, semua permintaan dari teman-teman pengguna juga bebas dikerjakan oleh siapapun yang berminat, sebagaimana dijelaskan berikut ini.
Setiap pengerjaan tugas yang berhasil digabung ke rilis akan diberikan penghargaan, seperti terlihat di https://bit.ly/30eSS91. Selain penghargaan honor, kontributor yang berhasil mengerjakan tugas senilai 500 poin atau lebih akan diberikan sertifikat kompetensi resmi dari OpenDesa. Sertifikat ini mudah2an akan bermanfaat bagi yang memerlukan sertifikasi.
Daftar kutu/bugs dan usulan perbaikan OpenSID ada di https://github.com/OpenSID/OpenSID/issues. Daftar ini mencakup bukan hanya tugas-tugas fungsional yang berasal dari pengguna (seperti penambahan fitur baru), tetapi juga tugas-tugas teknis (seperti upgrade ke Codeigniter v3).
Issue fungsional diprioritaskan oleh Tim Teknis OpenDesa. Issue yang diprioritaskan terdaftar di https://github.com/OpenSID/OpenSID/projects/1.
Programmer yang akan kontribusi dihimbau untuk mengerjakan dulu issue yang diprioritaskan. Tetapi tidak harus selalu begitu. Programmer boleh saja mengambil issue lain sesuai minat dan kemampuannya, untuk dikerjakan.
Kalau programmer mempunyai usul perbaikan yang ingin mereka kerjakan, dan belum ada di daftar issue, silakan buat issuenya dulu.
Sebelum mengerjakan issue, yakinkan issue pilihan anda belum dikerjakan programmer lain. Lihat di comment di issue yang bersangkutan. Juga cek pull request di https://github.com/OpenSID/OpenSID/pulls. Yakinkan belum ada pull request untuk issue tersebut.
Biasanya, satu issue dikerjakan oleh satu programmer saja, supaya pengaturannya tidak menjadi rumit.
Setelah anda memilih issue untuk dikerjakan, beritahu bahwa anda akan mengerjakan suatu issue dengan cara berikut:
Periksa issue yang akan dikerjakan, untuk issue yang dapat dikerjakan oleh kontributor di muat dalam project https://github.com/orgs/OpenSID/projects/15.
Yakinkan informasi yang dibutuhkan sudah lengkap. Kalau diperlukan informasi tambahan, anda perlu membuka dialog dengan pembuat issue dan juga dengan Tim Teknis OpenDesa:
Issue yang berdampak pada semua pengguna, misalnya mengubah informasi yang ditampilkan pada suatu menu atau laporan, biasanya perlu disepakati dulu oleh Tim Teknis OpenDesa sebelum dikerjakan.
Yakinkan git anda sudah mengambil dari branch master yang terkini. Buat git branch baru sebelum mengerjakan issuenya.
Ikuti praktik terbaik dalam koding anda.
Turuti aturan penulisan script yang diuraikan di Aturan Penulisan Script (https://github.com/OpenSID/OpenSID/wiki/Aturan-Penulisan-Script).
Kalau issue yang dikerjakan memerlukan perubahan database, buatkan migrasi database seperti dijelaskan di Menambah Migrasi Database (https://github.com/OpenSID/OpenSID/wiki/Menambah-Migrasi-Database).
Lakukan testing secara saksama sebelum koding anda bisa dianggap selesai.
Setelah pengerjaan issue sudah rampung, branch anda bisa dikirimkan ke repository OpensID di github sebagai pull request.
Cara membuat pull request dijelaskan di Panduan mengirimkan perubahan repo OpenSID (https://github.com/OpenSID/OpenSID/wiki/Menambah-Migrasi-Database).
Jika anda pemula, dianjurkan mencoba dulu membuat kustomisasi. Lihat panduan https://github.com/OpenSID/OpenSID/wiki/Panduan-Kustomisasi-OpenSID. Di situ juga dijelaskan kemampuan apa saja yang diperlukan.
Dengan melakukan tugas kustomisasi seperti itu anda dapat menjajaki ilmu apa saja yang perlu anda kuasai, sekaligus mulai mempelajari arsitektur OpenSID dan source codenya.
Supaya upaya anda terarah, sebaiknya mencoba dengan melakukan tugas spesifik. Di daftar issue di https://github.com/OpenSID/OpenSID/issues, cari issue yang bersifat 'kustomisasi', yaitu issue yang berkaitan dengan perbaikan atau pembuatan widget atau surat.
Selain itu, sebagai pemula, anda dapat juga memilih issue yang mempunyai label 'bug' atau 'bagus sbg issue pemula' -- karena biasanya issue tersebut lebih mudah.