emiriko / D04-Mobile-HIVCenter

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build status
Pipeline status Release Release
Pipeline status Prerelease Prerelease
Pipeline status branch Development Pipeline Status Branch

Tugas Kelompok PBP D04

Nama-nama Anggota Kelompok

  • Alvaro Austin (2106752180)
  • Arditio Reihansyah Putra Pradana (2106751972)
  • Carlene Annabel (2106752211)
  • Natania Deandra (2106633090)
  • Ravena Meilani (2106631923)

Tautan Aplikasi

Link App Center

Cerita Aplikasi yang Diajukan Serta Manfaatnya

Sebagaimana yang tertulis pada website resmi G20 terkait Arsitektur Kesehatan Global sebagai berikut, "Indonesia akan mendorong penguatan ketahanan kesehatan dunia serta membantu mewujudkan sistem kesehatan global lebih inklusif, berkeadilan, dan responsif terhadap krisis," kami memiliki visi untuk menambah pengetahuan, mengedukasi, memberi semangat serta kesempatan untuk berobat sekaligus menghilangkan stigma dan miskonsepsi terhadap mereka yang mengidap penyakit menular seksual. Dengan adanya HIVCenter, kami juga berharap masyarakat menjadi lebih sadar terhadap masalah di sekitar mereka serta mampu mewujudkan suatu lingkungan yang inklusif serta mampu merangkul semua anggota masyarakat terutama mereka yang paling membutuhkannya.

Rendahnya pengetahuan masyarakat Indonesia akan HIV berakibat pada kenaikan kasus HIV di Indonesia. Berdasarkan data yang diperoleh Kemenkes, pada tahun 2021, sebanyak 36.902 kasus HIV tersebar di penjuru tanah air. Relatif sedikit apabila dibandingkan dengan jumlah kasus HIV pada tahun 2022 yaitu sebanyak 519.158 kasus. HIV dikenal sebagai penyakit menular yang tidak bisa disembuhkan karena hal tersebut muncullah banyak stigma negatif terhadap pasien-pasien HIV. Oleh karena itu, diperlukan adanya suatu upaya pencegahan pada masyarakat di segala usia, salah satunya adalah pemberian pengetahuan akan HIV kepada masyarakat. Ada banyak upaya untuk melakukan penyuluhan tentang HIV. Salah satu upaya untuk memberikan penyuluhan tentang HIV kepada masyarakat adalah melalui HIVCenter.

HIVCenter memiliki visi untuk menghilangkan stereotip yang melekat pada sebagian besar masyarakat Indonesia mengenai ODHA sekaligus meningkatkan kesadaran akan pentingnya pencegahan penyakit menular seksual. Selain itu, HIVCenter juga berharap dengan adanya aplikasi ini, ODHA dapat merasa lebih diterima tanpa adanya stereotip dari masyarakat pada umumnya.

HIVCenter memiliki fitur-fitur yang dapat memberikan pengetahuan seputar HIV kepada pengguna. Fitur-fitur tersebut diantaranya ada forum untuk pengguna dokter yang dapat memberikan postingan seputar informasi HIV. Fitur lainnya adalah forum untuk pengguna pasien guna saling bertukar pengalaman dan informasi seputar HIV. Selain fitur-fitur forum, terdapat juga fitur yang menampilkan daftar-daftar dari rumah sakit terdekat apabila pengguna membutuhkan info lokasi rumah sakit untuk melakukan pengecekan atau konsultasi kepada dokter terkait HIV. Fitur terakhir adalah fitur pengguna pasien untuk membuat reservasi atau booking kepada pengguna dokter untuk melakukan konsultasi atau pemeriksaan HIV.

Fitur-fitur tersebut disediakan sebagai upaya penyuluhan dan tindakan preventif HIV. Dengan adanya fitur-fitur yang disediakan pada HIVCenter diharapkan dapat mengedukasi masyarakat tentang info seputar HIV, dapat mengubah stigma negatif masyarakat terhadap pengidap HIV, dan juga yang paling penting adalah dapat mengurangi kasus HIV yang ada di Indonesia.

Daftar Modul yang Diimplementasikan

  1. Homepage
    Modul di atas merupakan halaman utama dari aplikasi HIVCenter. Pada halaman utama, terdapat informasi terkait HIV/AIDS, fakta, serta miskonsepsi yang banyak dipercayai oleh masyarakat awam. Pada halaman ini juga terdapat fitur gamifikasi di mana para pengguna dapat mengirimkan semangat kepada sesama penderita HIV.

  2. Login, Logout, dan Register
    Modul di atas mengimplementasikan fitur login, logout, pendaftaran akun, serta pembagian peran pengguna ke dalam beberapa kelompok, yaitu rumah sakit, dokter, dan pasien.

  3. Blogpost
    Forum blogpost dimana pasien hanya memiliki view (read-only) sedangkan dokter dapat (post, delete).

  4. Booking
    Fitur booking agar pasien dapat membuat janji dengan dokter dan dokter dapat melihat jadwal dari setiap janji yang ia miliki.

  5. Experience
    Forum pengalaman dimana pasien dapat menceritakan pengalaman mereka.

  6. Feedback
    Fitur feedback dimana pasien dapat memberikan feedback terhadap website HIVCenter.

Role Atau Peran Pengguna Beserta Deskripsinya

  1. Dokter
    User dapat memposting, menghapus, serta mengupdate informasi pada forum blogpost terkait HIV.

  2. Pasien
    User dapat membagikan pengalamannya pada forum experience serta reservasi kepada dokter untuk melakukan konsultasi atau pemeriksaan dan melakukan feedback terhadap website. Pasien juga dapat melihat blogpost

Pembagian tugas masing-masing anggota

Berikut adalah pembagian tugas kelompok kami.

Nama Modul yang Dikerjakan
Alvaro Austin Blogpost (Membuat fitur untuk menambahkan, mengganti serta melihat blogpost yang ada)
Arditio Reihansyah Putra Pradana Login, Logout, dan Register
Carlene Annabel Experience
Natania Deandra Booking
Ravena Meilani Feedback

Alur pengintegrasian dengan web service untuk terhubung dengan aplikasi web yang sudah dibuat saat Proyek Tengah Semester

  1. Melakukan migrasi platform Django yang telah dibuat pada saat Proyek Tengah Semester (PTS) dari heroku menjadi railway.
  2. Kami akan menggunakan Django Rest API untuk melakukan serialization data-data yang diproses.
  3. Melalui endpoint yang sudah kami buat (berakhiran dengan /json/), akan kami buat models pada aplikasi kami untuk menyimpan data yang didapat dengan komponen yang tepat.
  4. Data yang disimpan akan kami gunakan untuk melakukan aksi-aksi lainnya seperti delete.
  5. Serta melakukan integrasi frontend dan backend menggunakan konsep asynchronous HTTP

Untuk Fitur Register:
User akan memulai aplikasi dengan memilih tombol register yang ada. Selanjutnya user akan diminta untuk memasukkan Username, Email, First Name, Last Name, dan Password untuk melakukan register. Data yang diterima dari form register tersebut akan menuju server railway yang telah dibuat pada PTS kemarin. Endpoint yang digunakan adalah https://pbp-d04.up.railway.app/authentication/registerpasien/registerFlutterPasien/ (untuk User Pasien) dan https://pbp-d04.up.railway.app/authentication/registerdokter/registerFlutterDokter/ (untuk User Dokter). Melalui Endpoint tersebut, kami menggunakan package pbp_django_auth yang telah disediakan oleh tim asdos. Apabila JSONResponse yang diberikan merupakan JSON yang valid maka User berhasil melakukan register sesuai dengan kedudukan yang dipilih (pasien/dokter). Data register akan disimpan dan digunakan oleh user tersebut untuk melakukan Login agar dapat menggunakan fitur-fitur yang ada pada aplikasi kami. Setelah berhasil melakukan register User akan langsung diarahkan ke menu Login.

Untuk Fitur Login:
User akan memulai aplikasi dengan memilih tombol login yang ada. Selanjutnya user akan memasukkan username dan password akun mereka sehingga dapat diredirect kepada halaman Homepage. Data yang diterima dari form login tersebut akan dituju kepada server railway yang telah dibuat pada PTS kemarin. Endpoint yang digunakan adalah https://pbp-d04.up.railway.app/authentication/login/validate_login/. Melalui endpoint ini, kami akan menggunakan package ppb_django_auth yang telah disediakan oleh tim asdos. Apabila JSONResponse yang diberikan merupakan JSON yang valid maka user telah terautentikasi berdasarkan data-datanya tersebut. Data itu akan kami simpan sebagai variabel global yang dpaat digunakan diseluruh halaman pada fitur kami. Pada halaman homepage akan dilihatkan profil user mereka

Untuk fitur Logout:
Kami juga akan menggunakan cara yang sama seperti fitur login, kami akan memanfaatkan endpoint yang dapat mentrigger fungsi yang telah dibuat sewaktu menjalankan PTS kemarin. Endpoint tersebut adalah https://pbp-d04.up.railway.app/authentication/logout/. Kami memanfaatkan package pbp_django_auth, agar cookie yang telah di set pada headers yang dilakukan pada saat login terjadi dihilangkan agar aplikasi menjadi aman. Setelah itu user akan dikembalikan kepada halaman pilihan login atau register.

Untuk Fitur Blogpost:

  • User akan membuka halaman blogpost melalui drawer yang sudah disediakan. Lalu akan dimulai fetch data blogpost melalui endpoint yang telah dibuat pada PTS. Endpoint yang digunakan adalah https://pbp-d04.up.railway.app/blogpost/json?importance=DT. Ini akan mendapatkan response. Body Response ini lalu akan didecode agar dapat dibaca menjadi suatu String JSON. Lalu akan dilakukan JSON Decode agar String JSON tersebut dijadikan sebuah Map. Map ini lalu akan di loop dan menggunakan method FromJSON untuk dijadikan sebuah Object JSON kemudia dimasukkan kepada list agar dapat diiterasikan data-data tersebut.
  • Kemudian pada fungsi post akan kami gunakan juga endpoint yang telah dibentuk pada saat PTS yaitu https://pbp-d04.up.railway.app/blogpost/create/. Awalnya terdapat form dengan 5 field yaitu title, opening, main, closing, dan juga importance. Field tersebut lalu diambil value akhirnya dan digunakan untuk melakukan passing data menggunakan method post yang ada pada pbp_django_auth. Method post ini sangat memudahkan posting karena sudah mengurus kredensial dan mengubah data POST tersebut.
  • Kemudian disediakan method DELETE apabila pengguna adalah seorang dokter. Method ini digunakan untuk menghapus blogpost yang sudah ada pada blogpost yang di fetch. Method ini juga menggunakan fungsi yang telah dibuat pada PTS kemarin. Dari fungsi ini akan difilter data berdasarkan blogpost ID sehingga dapat dihapus dari database yang ada.

Untuk Fitur Experience:

  • User akan membuka halaman experience melalui drawer yang sudah disediakan. Lalu akan dimulai fetch data experience melalui endpoint yang telah dibuat pada PTS. Endpoint yang digunakan adalah https://pbp-d04.up.railway.app/experience/json/. Ini akan mendapatkan response. Body Response ini lalu akan didecode agar dapat dibaca menjadi suatu String JSON. Lalu akan dilakukan JSON Decode agar String JSON tersebut dijadikan sebuah Map. Map ini lalu akan di loop dan menggunakan method FromJSON untuk dijadikan sebuah Object JSON kemudia dimasukkan kepada list agar dapat diiterasikan data-data tersebut.

  • Kemudian pada fungsi post akan kami gunakan juga endpoint yang telah dibentuk pada saat PTS yaitu https://pbp-d04.up.railway.app/experience/create-experience/. Awalnya terdapat form dengan 2 field yaitu title dan experience. Field tersebut lalu diambil value akhirnya dan digunakan untuk melakukan passing data menggunakan method post yang ada pada pbp_django_auth. Method post ini sangat memudahkan posting karena sudah mengurus kredensial dan mengubah data POST tersebut.

Untuk fitur Booking:

  • User akan membuka halaman booking melalui drawer yang sudah disediakan. Lalu, data booking akan di-fetch melalui endpoint yang telah dibuat pada PTS. Endpoint untuk user pasien adalah https://pbp-d04.up.railway.app/booking/json/, sedangkan endpoint untuk user dokter adalah https://pbp-d04.up.railway.app/booking/appointment/. Selain itu, untuk mendapatkan nama-nama dokter yang akan diperlukan untuk form juga membutuhkan endpoint https://pbp-d04.up.railway.app/booking/appointment/. Kita akan mendapatkan suatu response di mana body response akan di-decode menjadi String JSON dan String JSON akan diubah menjadi Map. Lalu, menggunakan method FromJSON, Map akan di-loop dan diubah ke dalam bentuk Object JSON yang kemudian akan dimasukkan ke dalam suatu list.

  • Untuk method post booking menggunakan endpoint https://pbp-d04.up.railway.app/booking/add/. Terdapat 3 field, yaitu doctor, date, dan time. Untuk tiap field, akan diambil valuenya dan akan di-pass menggunakan method pada pbp_django_auth untuk selanjutnya di-post.

Untuk fitur Feedback:

  • User akan membuka halaman blogpost melalui drawer yang sudah disediakan. Lalu akan dimulai fetch data feedback melalui endpoint yang telah dibuat pada PTS. Endpoint yang digunakan adalah https://pbp-d04.up.railway.app/feedback/json/. Ini akan mendapatkan response. Body Response ini lalu akan didecode agar dapat dibaca menjadi suatu String JSON. Lalu akan dilakukan JSON Decode agar String JSON tersebut dijadikan sebuah Map. Map ini lalu akan di loop dan menggunakan method FromJSON untuk dijadikan sebuah Object JSON kemudia dimasukkan kepada list agar dapat diiterasikan data-data tersebut.

  • Kemudian pada fungsi post akan kami gunakan juga endpoint yang telah dibentuk pada saat PTS yaitu https://pbp-d04.up.railway.app/feedback/create/. Awalnya terdapat form dengan 3 field yaitu anonymous, title, description. Field tersebut lalu diambil value akhirnya dan digunakan untuk melakukan passing data menggunakan method post yang ada pada pbp_django_auth. Method post ini sangat memudahkan posting karena sudah mengurus kredensial dan mengubah data POST tersebut.

About


Languages

Language:Dart 81.0%Language:C++ 8.8%Language:CMake 7.7%Language:HTML 0.8%Language:C 0.6%Language:Swift 0.6%Language:Shell 0.4%Language:Kotlin 0.1%Language:Objective-C 0.0%