AgriAsk merupakan aplikasi berbasis web yang menyediakan fasilitas forum diskusi tanya jawab antar petani atau masyarakat umum agar dapat saling bertukar pikiran dan informasi.
- Pararel : P1
- Kelompok : 5
Asisten Praktikum :
Nama | NIM |
---|---|
Indah Puspita | G64170035 |
Qoriatul Khairunnisa | G64170014 |
Nama | NIM | ROLE |
---|---|---|
Muhamad Ilham Fadillah | G64190028 | Project Manager & Back-End Developer |
I Dewa Putu Semadi | G64190021 | Front-End Developer |
Nisma Karmiahtun Fadilah | G64190036 | UI Designer |
Fryda Lucyana Permatasari | G64190015 | UX Researcher |
Sejak awal pandemi Covid-19, sektor pertanian diklaim menjadi penopang utama perekonomian nasional. Data Badan Pusat Statistik (BPS) menunjukkan, selama kuartal II/2020, pertanian tumbuh sebesar 16,24%. Peneliti dari Center of Food, Energy and Sustainable Development dari Indef, Rusli Abdullah, juga menyatakan bahwa pertumbuhan tersebut masih akan terus terjadi selama pandemi sampai pasca pandemi covid-19. Sebab, penerapan kebijakan karantina wilayah mengakibatkan masyarakat beralih profesi menjadi petani. Dengan demikian, Kami berinisiatif membangun sebuah wadah untuk menfasilitasi para petani yang masih amatir tersebut. Hadirlah AgriAsk, sebuah aplikasi berbasis web yang menyediakan forum diskusi tanya jawab untuk para petani atau masyarakat umum agar dapat saling bertukar pikiran dan informasi. Juga bertujuan untuk menggaungkan sektor pertanian secara luas.
- Mewadahi para petani atau masyarakat Indonesia untuk saling bertukar pikiran dan informasi di bidang pertanian
- Menambah relasi antar petani dalam melangsungkan kegiatan pertaniannya.
- Menguatkan sektor pertanian
Target user aplikasi AgriAsk adalah masyarakat umum tanpa batasan usia dan latar belakang pendidikan tertentu, serta tertarik untuk menambah wawasan seputar pertanian.
- Sebagai seorang petani, saya ingin berdiskusi dan bertanya mengenai pertanian dan teknologinya agar dapat menemukan solusi dari permasalahan saya.
- Sebagai seorang pengguna, saya ingin membuat akun dengan mendaftar menggunakan alamat email agar bisa mengakses website.
- Sebagai pengguna yang telah mendaftar, saya bisa memasukkan alamat email dan password untuk masuk ke website.
- Sebagai pengguna yang lupa dengan password, saya dapat memberikan informasi alamat email yang terdaftar pada website agar akun saya dapat digunakan kembali.
- Sebagai seorang masyarakat umum, saya ingin membantu petani dalam menunjang kegiatan pertanian berkelanjutan.
- Sebagai pengguna, saya ingin mendapatkan poin pada setiap jawaban yang saya jawab, agar mendapatkan reputasi dalam website.
- Sebagai seorang pengguna, saya ingin melihat statistik pengguna lain dalam penggunaan website, agar mengetahui sejauh mana saya telah menelusuri website.
- Sebagai seorang petani, saya ingin membantu menjawab pertanyaan agar petani lain dapat menemukan solusi dari permasalahan mereka.
- Sebagai seorang petani, saya ingin membuat postingan/artikel untuk membantu memberikan informasi terkait dengan pertanian dalam membantu petani lain melangsungkan kegiatan pertaniannya.
- Sebagai seorang masyarakat umum, saya dapat mencari informasi seputar pertanian agar menambah wawasan saya.
Komponen | Teknologi |
---|---|
Database | MySQL |
Server | Apache |
Text Editor | Visual Studio Code |
UI Design | Figma |
Komponen | Teknologi |
---|---|
Prosesor | Acer Intel Core i3-8130U 2.20GHz |
Memori | 8 GB DDR4 |
Graphic card | NVIDIA GeForce MX150 2GB VRAM |
Storage | HDD 1 TB |
Komponen | Teknologi |
---|---|
Front-end | HTML, CSS/SCSS/SASS, Bootstrap, Vanilla Javascript |
Back-end | PHP, Laravel, NodeJS |
Komponen | Teknologi |
---|---|
Task Management | Trello |
Software documentation | Google Sites |
Version control dan collaboration platform | Github |
Pada mata kuliah ini, 7 minggu pertama Kami berfokus pada analisis sistem. Mulai dari menganalisis user flow, use case diagram, activity diagram, dan sebagainya. Setelah UTS, 7 minggu berikutnya Kami fokus pada pengembangan aplikasi AgriAsk. Di sisi front-end, Kami sangat memperhatikan design aplikasi web yang responsive pada semua ukuran layar, lebih tepatnya menggunakan pendekatan Mobile First. Karena tidak dipungkiri bahwa, dari 272,1 juta penduduk Indonesia sebanyak 175.4 juta adalah pengguna aktif internet yang mayoritas mengakses web menggunakan perangkat mobile (Survey dari We Are Social). Selanjutnya, karena Kita mengoleksi data pengguna (email dan password), Kita turut memperhatikan aspek keamanan dari pengguna AgriAsk. Pada bagian back-end, Kami menerapkan beberapa metode pengamanan salah satunya adalah password hashing.
Mendaftar akun
Login
Update password
Membuat pertanyaan
Membuat artikel
Posting Pertanyaan dan Artikel
Vote Pertanyaan
Kami memilih arsitektur MVC karena MVC adalah pola yang bagus untuk memulai pengembangan aplikasi web yang rapi secara kode, memiliki skalabilitas, dan kemampuan dalam memperbaiki kode secara cepat dengan usaha yang sedikit.
- User dapat mendaftar terlebih dahulu menggunakan alamat email di website AgriAsk untuk menggunakan fasilitas yang ada.
- User dapat membuat, mengedit, dan menghapus pertanyaa
- Satu postingan dapat memiliki banyak komentar/jawaban oleh user lain.
- Setiap user memiliki poin kredibilitas tergantung seberapa sering user membantu menjawab pertanyaan-pertanyaan dan poin pada permulaan dimulai dari 0.
- Jika komentar/jawaban dari user lain sekiranya membantu menjawab pertanyaan dari user yang mengajukan pertanyaan, maka user-user yang terdaftar di website dapat menambahkan skor kepada user yang menjawab dengan menekan tombol commend. Tombol commend akan menambah 10 poin kepada user yang menjawab. Jika jawaban tidak membantu, user lain dapat menekan tombol uncommend yang akan mengakibatkan pengurangan poin sebesar 5 kepada user yang menjawab.
CREATE
- Membuat akun pada aplikasi web AgriAsk
- Membuat dan menjawab pertanyaan
- Membuat dan berkomentar pada artikel (*)
READ
- Membaca user input (email dan password) pada akun pengguna saat login
- Menampilkan daftar pertanyaan
- Menampilkan daftar pengguna AgriAsk
- Pada dashboard user, menampilkan total mengajukan dan menjawab pertanyaan, serta total artikel (*)
UPDATE
- Mengedit pertanyaan
- Mengubah kata sandi (*)
- Mengedit artikel (*)
- Menambah poin kredibilitas sebagai reputasi pengguna
- Mengganti nama dan username (*)
- Menambahkan foto profil pada pengguna (*)
- Menambah atau mengurangi total upvote atau downvote pada pertanyaan
DELETE
- Menghapus pertanyaan
- Menghapus komentar pada pertanyaan
- Menghapus artikel (*)
Keterangan: Tanda (*) berarti fitur belum diimplementasikan.
Demo frontend aplikasi dapat diakses pada tautan berikut demo-agriAsk
Prototipe website (backend + half-frontend) dapat diakses di http://damp-coast-26039.herokuapp.com/home
Kami melakukan pengujian secara manual (manual testing) tanpa menggunakan bantuan tools atau scripts, tujuannya adalah untuk memastikan aplikasi bebas dari bugs/error dan memastikan dapat bekerja sesuai dengan yang diharapkan.
Pengujian Positif merupakan jenis pengujian yang dilakukan pada aplikasi perangkat lunak dengan memberikan kumpulan data yang valid sebagai input.
No | Scenario | Pre-requisites | Steps | Expected Results | Actual Result | Status |
---|---|---|---|---|---|---|
1 | User login dengan akun yang valid | User mengakses web AgriAsk | Pergi ke halaman login, masukkan email dan password, klik login | Login berhasil dan user diarahkan ke home | As expected | Pass ✔ |
2 | User mendaftar username, alamat email, dan password yang valid | User mengakses web AgriAsk | Pergi ke halaman daftar, masukkan nama, username, alamat email, password, dan konfirmasi password, lalu klik daftar | Daftar berhasil | As expected | Pass ✔ |
3 | Reset password dengan alamat email yang valid | User mengakses web AgriAsk | Pergi ke halaman lupa password, masukkan alamat email, klik submit | Berhasil mengirim link reset password ke email user | Not as expected | Fail ❌ |
4 | Buat pertanyaan dengan mamasukkan judul, deskripsi, tag, dan gambar (opsional) dengan input yang valid | User mengakses web AgriAsk | Pergi ke halaman komunitas, klik button buat pertanyaan, masukkan input yang diminta, klik submit | Berhasil membuat pertanyaan | As expected | Pass ✔ |
5 | Menjawab pertanyaan dengan mamasukkan input yang valid | User mengakses web AgriAsk | Pergi ke halaman komunitas, klik pertanyaan yang ingin dijawab, masukkan input yang diminta, klik submit | Berhasil publish jawaban | As expected | Pass ✔ |
Pengujian Negatif adalah metode pengujian yang dilakukan pada aplikasi perangkat lunak dengan memberikan kumpulan data yang tidak valid atau tidak tepat sebagai input.
No | Scenario | Pre-requisites | Steps | Expected Results | Actual Result | Status |
---|---|---|---|---|---|---|
1 | User login dengan akun yang tidak valid | User mengakses web AgriAsk | Pergi ke halaman login, masukkan email dan password, klik login | Munculkan pesan error | As expected | Pass ✔ |
2 | User mendaftar username, alamat email, dan password yang tidak valid | User mengakses web AgriAsk | Pergi ke halaman daftar, masukkan nama, username, alamat email, password, dan konfirmasi password, lalu klik daftar | Daftar gagal, tampilkan pesan error | As expected | Pass ✔ |
3 | Reset password dengan alamat email yang tidak valid | User mengakses web AgriAsk | Pergi ke halaman lupa password, masukkan alamat email, klik submit | Tampilkan pesan error | As expected | Pass ✔ |
4 | Buat pertanyaan dengan mamasukkan judul, deskripsi, tag, dan gambar (opsional) dengan input yang tidak valid | User mengakses web AgriAsk | Pergi ke halaman komunitas, klik button buat pertanyaan, masukkan input yang diminta, klik submit | Tampilkan pesan error | As expected | Pass ✔ |
5 | Menjawab pertanyaan dengan mamasukkan input yang tidak valid | User mengakses web AgriAsk | Pergi ke halaman komunitas, klik pertanyaan yang ingin dijawab, masukkan input yang diminta, klik submit | Tampilkan pesan error | As expected | Pass ✔ |
Dengan rentang waktu pengembangan aplikasi yang terbatas, tim Kami berhasil membangun sistem yang diharapkan walaupun masih jauh dari kata sempurna. Fitur-fitur mayor seperti autentikasi, membuat dan menjawab pertanyaan, memberi komentar pada peranyaan, serta menambah poin kredibilitas berhasil diimplementasikan dengan baik. Namun, fitur-fitur minor seperti membuat artikel belum berhasil diimplementasikan
- Sebaiknya, gunakan domain (beli) agriask.com saat sudah di tahap production.
- Untuk pengembangan berikutnya, dapat mempertimbangkan fitur Progressive Web Apps (PWA), sehingga aplikasi web seolah-olah menjadi native dan dapat di install pada perangkat mobile.
- Kedepannya, AgriAsk diharapkan tidak hanya menjadi forum diskusi, tetapi wadah bertemunya investor dengan para petani. Sehingga, AgriAsk akan memiliki value di masyarakat.
Selama pengembangan aplikasi AgriAsk ini, tim Kami banyak mempelajari hal-hal baru dalam bidang software engineering, mulai dari task management, user analisis, stakeholder, dan sebagainya. Maka dari itu, Kami ingin mengucapkan rasa terima kasih kepada:
- IPB University sebagai kampus tercinta
- Para dosen Ilmu Komputer IPB University karena telah membagikan ilmu dan pengalamannya kepada Kami
- Kak Indah Puspita dan Qoriatul Khairunnisa selaku asisten praktikum karena telah memberikan masukan dan saran terhadap pengembangan aplikasi AgriAsk
Beberapa ilustrasi dan gambar berasal dari internet, berikut akan kami lampirkan sumbernya.
Repositori ini dibangun dengan Laravel versi 6.02 dan php versi 7 ke atas. Lakukanlah langkah-langkah di bawah ini untuk menjalankan project.
- masuk ke direktori AgriAsk
$ cd AgriAsk
- jalankan perintah composer install untuk mendownload direktori vendor
$ composer install
-
buat file .env lalu isi file tersebut dengan seluruh isi dari file .env.example (copy isi dari .env.example lalu paste di file .env)
-
jalankan perintah php artisan key generate
$ php artisan key:generate
- install node modules (pastikan nodejs sudah terinstall)
npm install
- buat database baru di mysql dan jalankan perintah php artisan migrate
php artisan migrate
- Sesuaikan nama database, username dan password nya di file .env dengan database kalian.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=<NAMA_DATABASE>
DB_USERNAME=root
DB_PASSWORD=
Jangan lupa untuk menjalankan server laravel
$ php artisan serve
Pastikan server Apache dan MySQL berjalan di XAMPP
The Laravel framework is open-sourced software licensed under the MIT license.