Skip to content

ConeGroup/librarium-mob

Repository files navigation

Tugas Kelompok PAS C01

Anggota Kelompok

PBP C | VRO

  • Nurin Farzana Nafiah(2206082695)
  • Calista Sekar Pamaja (2206082064)
  • Muhammad Nanda Pratama (2206081654)
  • Fazle Ilahi Bimo Aji (2206081446)
  • Resanda Dezca Asyam (2206082682)

Tautan Berita Acara

Tautan Berita Acara

Librarium 📖

Tautan Situs

https://fazle-ilahi-c01librarium.stndar.dev/

Tautan Aplikasi Mobile

https://install.appcenter.ms/orgs/pas-c01/apps/librarium/distribution_groups/public.

Background Story

Literasi adalah kunci untuk pengembangan individu dan kemajuan bangsa. Indonesia memiliki berbagai regulasi yang mendukung peningkatan literasi, termasuk Undang-Undang Dasar 1945 yang menekankan hak warga negara untuk mendapatkan pendidikan yang layak. Librarium, sebagai sebuah website yang mengedepankan kegiatan membaca dan berbicara tentang buku, memiliki peran penting dalam memajukan literasi di Indonesia. Fitur-fitur seperti Book Reviews memungkinkan pengguna untuk mengekspresikan pendapat mereka tentang buku dan berbagi rekomendasi dengan komunitas pembaca lainnya. Hal ini membantu memotivasi masyarakat untuk membaca dan meningkatkan pemahaman mereka tentang literatur.

Librarium adalah sebuah website seru yang membantu kamu berbicara tentang buku! Dengan fitur-fitur seperti Book Reviews, kamu dapat mengekspresikan pendapatmu tentang buku-buku yang baru kamu baca, berbagi rekomendasi, dan mendapatkan wawasan dari pengulas lainnya. Fitur lain seperti Book Loans memudahkanmu untuk mengatur buku-buku yang sedang kamu pinjam, dan mengingatkanmu kapan waktunya untuk mengembalikannya. Fitur Collections memberikan akses cepat ke daftar buku yang tersedia, sementara fitur Book Request memungkinkanmu untuk melakukan request buku favoritmu agar diunggah pada Librarium. Librarium adalah teman terbaikmu dalam menjelajahi dunia literatur dan berinteraksi dengan komunitas pembaca yang serupa.

Selain itu, Librarium kini hadir dalam aplikasi mobile yang tentunya akan memudahkan para penggiat buku ketika ingin merasakan semua fitur Librarium melalui satu genggaman tangan. Walaupun ukurannya dapat dikatakan lebih minimalis, Librarium Mobile akan tetap menjaga semua fitur yang sudah ada pada website Librarium agar dapat terus dinikmati oleh penggunanya, seperti fitur Book Reviews, Book Loans, Collections, dan Book Request.

Why Librarium?

  • Meningkatkan Literasi
  • Kemudahan dalam Membaca
  • Akses Cepat ke Daftar Buku
  • Mengatur Koleksi Pribadi
  • Kesempatan berinteraksi dalam Komunitas Pembaca
  • Dukungan pada Kemajuan Literasi di Indonesia

Daftar Modul

🏠 Homepage

Modul ini menampilkan halaman utama dari aplikasi Librarium. Pada Homepage terdapat overview mengenai fitur-fitur yang aplikasi kami sediakan.

📚 User Profile (Nanda)

Fitur User Profile berfungsi sebagai informasi pengguna Librarium dan untuk mengganti user profile dan password.

Pada modul ini, kami mengimplementasikan beberapa event handler :

  1. onChanged digunakan pada edit_profile.dart yang berfungsi sebagai trigger ketika ada perubahan pada TextFormField pada form penggantian password dan profile.
  2. onPressed digunakan untuk menyimpan perubahan profile user atau password user ketika tombol submit ditekan.

📝 Book Review (Calista)

Pada aplikasi Librarium, pengguna dapat menambahkan ulasan terhadap suatu buku. Pada halaman Book Reviews, pengguna dapat memilih salah satu buku untuk diberikan rating lalu diulas singkat. Modul ini menerapkan fungsi post untuk menambahkan ulasan yang ditulis oleh pengguna dan fungsi get untuk mengambil objek Review dan Book yang ada.

Pada modul ini, kami mengimplementasikan beberapa event handler :

  1. onTap digunakan pada button Book Reviews. Ketika button di-tap, program akan memanggil Navigator.push dan melakukan push menuju halaman Book Reviews.
  2. onPressed digunakan untuk button Add Review dan back. Ketika button Add Review di-pressed maka akan memanggil Navigator.push dan melakukan push menuju halaman Add Review.

📖 Book Loans (Nurin)

User yang sudah terdaftar dan berhasil melakukan login dapat mengakses salah satu fitur yang ada pada Librarium. Pada fitur ini, terdapat katalog yang berisikan buku-buku yang tersedia untuk dipinjam. Modul ini menerapkan post yang berfungsi untuk menambahkan buku-buku yang dipinjam oleh user. Fungsi get berguna untuk mengambil data buku-buku yang dipinjam.

Pada modul ini, kami mengimplementasikan beberapa event handler :

  1. onChanged digunakan pada file add_loans.dart yang berfungsi untuk inisiasi ketika ada perubahan pada TextFormField pada form penambahan buku pinjaman.
  2. onPressed digunakan untuk menampilkan informasi rinci setiap buku yang dipinjam user dan button Add pada Book Loans yang akan mengarahkan ke page form untuk menambahkan buku yang akan dipinjam.

📔 Collections (Resanda)

Fitur ini menampilkan daftar buku-buku yang tersedia di Librarium. Pengguna juga dapat membuat suatu kelompok/kategori buku (_Liked/Favorite/_lainnya) dengan menambahkan buku-buku yang menurut pengguna sesuai dengan kategori tersebut sehingga apabila ingin membaca atau mengulas kembali buku tertentu, pengguna dapat dengan mudah melihatnya pada kumpulan buku yang sudah dikategorikan. Modul ini mengimplementasikan list of buku. Dalam modul ini memanfaatkan get untuk mengambil data dari buku, dan memanfaatkan post untuk menambahkan list collection yang dibuat pengguna.

Pada modul ini, kami mengimplementasikan beberapa event handler :

  1. onChanged digunakan pada file collections_form.dart dan file collections_add_book_form.dart yang berfungsi untuk inisiasi ketika ada perubahan pada TextFormField pada form penambahan collection dan books.
  2. onPressed untuk button Add Collection, Add Book, dan View Catalog.

📥 Book Request (Bimo)

User dapat menambahkan permintaan buku yang ingin diunggah di aplikasi Librarium. Para pengguna dapat menambahkan rincian buku, seperti nama, tahun terbit, nomor ISBN, dan ulasan singkat sebagai bahan pertimbangan pengembang untuk menambahkan buku tersebut ke dalam aplikasi Librarium. Modul ini menerapkan get untuk mengambil rincian mengenai buku yang kemudian akan ditampilkan pada laman pengguna. Selain itu, modul ini juga menggunakan metode post untuk menambahkan permintaan buku baru serta menyunting permintaan yang sudah ada.

Pada modul ini, kami mengimplementasikan beberapa event handler :

  • onTap pada setiap card buku yang akan memanggil Navigator.push untuk memunculkan halaman Edit Request jika ingin menyunting permintaan tersebut.
  • onPressed untuk button Add Request, Edit Request, dan back yang akan mengarahkan ke halaman yang sesuai, kemudian untuk button SAVE dan EDIT yang akan memanggil function yang sesuai untuk menambahkan atau menyunting permintaan atau request.

Integrasi Web dengan Aplikasi

Berikut adalah langkah-langkah yang akan dilakukan untuk mengintegrasikan aplikasi dengan server web:

  • Mengimplementasikan sebuah wrapper class dengan menggunakan library https dan map untuk mendukung penggunaan cookie-based authentication pada aplikasi.
  • Mengimplementasikan REST API pada Django (views.py) dengan menggunakan JsonResponse atau Django JSON Serializer.
  • Meningkatkan desain front-end untuk aplikasi berdasarkan referensi desain website yang sudah ada sebelumnya.
  • Melakukan integrasi antara front-end dan back-end dengan menggunakan konsep asynchronous HTTP.

Datasets

Project kami akan menggunakan sumber dataset buku Book Recommendation Dataset oleh MÖBIUS dari platform Kaggle Book Recommendation Dataset by MÖBIUS

User Roles

Member 🔓

Member merupakan pengguna yang sudah melakukan register. Berikut ini hal-hal yang dapat dilakukan oleh Member:

  • Mengakses Homepage.
  • Memberikan review terhadap setiap buku dengan cara mengaksesnya pada fitur Book Reviews.
  • Meminjam buku yang tersedia di katalog pada dengan cara mengaksesnya pada fitur Book Loans.
  • Membuat sebuah koleksi buku yang diinginkan user dengan cara mengaksesnya pada fitur Collections.
  • Menambahkan sebuah buku yang ingin ditambahkan dalam database librarium dengan cara mengaksesnya pada fitur Book Request.
  • Menyunting rincian data pribadi pada User Profile.

Build Status

Build status