AngkringanPediaMobile <--- Click Here!!!
https://docs.google.com/spreadsheets/d/1N2a_wzHApscAcT2jkCYGwbxMVowg98ffWWfUY7l6-Ls/edit?usp=sharing
Indonesia memiliki warisan kuliner yang kaya, dan salah satu tradisi paling ikonik adalah angkringanβwarung kecil di pinggir jalan yang menyajikan aneka makanan dan minuman sederhana dengan harga terjangkau. Mulai dari nasi kucing yang legendaris hingga beragam pilihan sate dan gorengan, angkringan menjadi tempat yang menyatukan orang dari berbagai kalangan untuk berbincang, menikmati suasana, dan berbagi cerita. Namun, di tengah semakin beragamnya pilihan kuliner saat ini, tidak semua orang dapat dengan mudah menemukan angkringan favorit mereka. Terinspirasi oleh semangat kebersamaan dan kehangatan khas angkringan, lahirlah AngkringanPedia.
Hai, para pecinta angkringan! Bingung memilih tempat makan? AngkringanPedia adalah solusinya! Dengan AngkringanPedia, Anda dapat dengan mudah menjelajahi ribuan menu angkringan favorit, mulai dari nasi kucing yang menggugah selera hingga gorengan yang renyah. Ingin mencari sate kesukaan? Cukup dengan beberapa klik! Bagikan ulasan dan penilaian Anda dan bergabunglah dalam komunitas pecinta angkringan terbesar. Ayo, coba sekarang dan nikmati pengalaman kuliner angkringan yang lebih seru dan menyenangkan!
| NPM | Name | GitHub Account |
|---|---|---|
| 2306152430 | Malvin Scafi | Cyades |
| 2306227955 | Ischika Afrilla | kaachiii |
| 2306216075 | Juan Lukius Barnaby | juanlukius |
| 2306221970 | Arya Gilang Prasetya | AryaGilangP |
| 2306202826 | Nobel Julian Bintang | nobeljb |
Dikerjakan oleh Ischika Afrilla
Modul ini mencakup fitur untuk mengelola akun pengguna dan admin, termasuk autentikasi untuk akses ke aplikasi.
Fungsi Modul:
- Registrasi: Memungkinkan pengguna dan admin untuk mendaftarkan akun baru.
- Login: Menyediakan mekanisme masuk (login) menggunakan nama pengguna (username) dan kata sandi (password) untuk pengguna serta admin.
- Logout: Menyediakan tombol keluar (logout) untuk mengakhiri sesi pengguna atau admin.
- Manajemen Admin: Admin dapat menambahkan, menghapus, atau mengubah informasi akun miliknya.
- Pengawasan Akun: Admin dapat melihat dan mengelola akun pengguna, memastikan hanya akun yang valid memiliki akses ke sistem.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Registrasi akun | Registrasi akun | Mengelola data pengguna |
| Login akun | Login akun | Mengawasi akun pengguna |
| Logout akun | - | Menambah atau menghapus akun pengguna |
Dikerjakan oleh Arya Gilang Prasetya
Modul Dashboard berfungsi sebagai pusat informasi pribadi pengguna yang memuat data dan memberikan opsi untuk mengeditnya.
Fungsi Modul:
- Informasi Pengguna: Menampilkan informasi pribadi pengguna seperti nama, umur, nomor telepon, dan alamat.
- Edit Profil: Pengguna dapat mengubah informasi pribadi melalui fitur ini.
- Keamanan Data: Pengelolaan data pribadi secara aman, termasuk kemampuan admin untuk memantau perubahan.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Melihat dan mengedit profil | - | Melihat data pengguna |
| Memperbarui informasi pribadi | - | Mengedit informasi pengguna |
| - | - | Menghapus akun pengguna |
Modul Artikel dirancang untuk memberikan informasi tambahan kepada pengguna melalui artikel yang relevan dengan topik makanan, gaya hidup sehat, atau berita terkini terkait kuliner. Modul ini membantu meningkatkan pengalaman pengguna dengan konten yang informatif dan menarik.
Fungsi Modul:
- Penjelajahan Artikel: Menyediakan daftar artikel yang dapat dibaca oleh pengguna.
- Detail Artikel: Memungkinkan pengguna melihat detail artikel termasuk gambar, judul, isi, dan tanggal publikasi.
- Manajemen Artikel (Admin): Admin dapat membuat, mengedit, dan menghapus artikel yang tersedia di platform.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Melihat isi artikel | Melihat isi artikel | Mengedit artikel |
| Melihat daftar artikel | Melihat daftar artikel | Menambahkan artikel |
| Menandai artikel favorit | - | Menghapus artikel |
Dikerjakan oleh Malvin Scafi
Modul Homepage menyediakan fungsi pencarian dan filter untuk membantu pengguna menemukan makanan sesuai preferensi.
Fungsi Modul:
- Membuat Navigation Bar, Footer dan Homepage
- Daftar Makanan: Menampilkan daftar menu makanan yang tersedia di platform.
- Pencarian: Pengguna dapat menggunakan fitur pencarian untuk menemukan makanan tertentu.
- Filter: Menyediakan filter berdasarkan bahan baku, porsi, waktu memasak, dan nama untuk mempermudah pencarian.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Melihat daftar makanan | Melihat daftar makanan | Menambahkan/menghapus makanan |
| Menggunakan fitur pencarian | Menggunakan fitur pencarian | Menggunakan fitur pencarian |
| Menggunakan fitur filter | Menggunakan fitur filter | Menggunakan fitur filter |
Dikerjakan oleh Nobel Julian Bintang
Modul ini menampilkan katalog makanan yang memungkinkan pengguna untuk melihat detail produk, memberikan ulasan, dan memberikan rating.
Fungsi Modul:
- Detail Produk Makanan: Menyediakan informasi lengkap mengenai setiap makanan, termasuk deskripsi, harga, dan gambar.
- Rating dan Ulasan Produk: Pengguna dapat memberikan rating dan menulis ulasan pada makanan, dan rating rata-rata akan diperbarui secara otomatis.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Melihat detail produk makanan | Melihat detail produk makanan | Melihat detail produk makanan |
| Menambahkan ulasan dan rating, dan mengedit/menghapus ulasan dan rating tersebut | - | Mengedit/menghapus ulasan dan rating |
| Melihat ulasan dan rata-rata rating suatu produk | Melihat ulasan dan rata-rata rating suatu produk | Melihat ulasan dan rata-rata rating suatu produk |
Dikerjakan oleh Juan Lukius Barnaby
Modul Favorit memungkinkan pengguna untuk menandai restoran atau makanan yang mereka sukai agar mudah diakses kembali.
Fungsi Modul:
- Menandai Favorit: Pengguna dapat menandai makanan atau restoran sebagai favorit.
- Daftar Favorit: Pengguna dapat melihat daftar favorit yang menampilkan gambar, nama, dan informasi dasar.
- Mengelola Favorit Pengguna: Admin dapat melihat daftar favorit pengguna dan menghapus favorit yang dianggap tidak relevan atau tidak sesuai dengan kebijakan platform.
- Akses ke Detail: Dari daftar favorit, pengguna dapat langsung mengakses halaman detail untuk memberikan ulasan atau melihat informasi lebih lanjut.
Berikut aksi yang dapat dilakukan masing-masing role:
| User | Guest | Admin |
|---|---|---|
| Menambah/menghapus favorit | - | Mengelola favorit pengguna |
| Melihat daftar favorit | - | Melihat dan menghapus favorit pengguna |
| Mengakses halaman detail dari favorit | - | - |
AngkringanPedia mengambil dataset dari Menu Angkringan Jogja
Berikut merupakan dataset yang sudah di convert menjadi .json --> Dataset
Pada aplikasi kami, terdapat tiga jenis pengguna:
- User
- Guest
- Admin
Penjelasan lebih rinci tentang setiap jenis pengguna dan kewenangannya dalam aplikasi tersedia di deskripsi masing-masing modul.
-
Setup Awal di Django:
- Membuat
django-app authentication - Menginstall
django-cors-headersuntuk menangani Cross-Origin Resource Sharing - Mengkonfigurasi
settings.pyuntuk mengizinkan koneksi dari Flutter
CORS_ALLOW_ALL_ORIGINS = True CORS_ALLOW_CREDENTIALS = True CSRF_COOKIE_SECURE = True SESSION_COOKIE_SECURE = True
- Menambahkan "10.0.2.2" ke
ALLOWED_HOSTSuntuk akses dari emulator Android
- Membuat
-
Membuat Endpoint API di Django:
- Membuat
viewsuntukauthentication(login/register) - Membuat
viewsuntuk operasi CRUD - Mengatur routing URL untuk endpoint tersebut
- Memastikan endpoint mengembalikan response dalam format JSON
- Membuat
-
Setup Flutter:
- Menginstall
package pbp_django_authdanprovider - Mengkonfigurasi
Providerdimain.dartuntuk state management - Membuat model sesuai dengan struktur JSON dari Django
- Menginstall
-
Alur Komunikasi:
a. Login:
- User memasukkan
credentialsdi Flutter - Flutter mengirim POST request ke endpoint Django (
/auth/login/) - Django memverifikasi dan mengembalikan response
- Flutter menyimpan session cookie jika login berhasil
b. Operasi CRUD:
- Flutter mengirim request ke endpoint Django dengan cookie session
- Django memverifikasi session dan mengeksekusi operasi
- Django mengembalikan response JSON
- Flutter memproses response dan update UI
- User memasukkan
-
Contoh Flow Request:
Flutter App -> HTTP Request -> Django Server | Verify Session | Process Request | Flutter App <- JSON Response <- Django Server -
Format Komunikasi
- Request dari Flutter:
final response = await request.login( "http://your-url/auth/login/", {'username': username, 'password': password} );
- Response dari Django:
return JsonResponse({ "status": True, "message": "Login sukses!", "username": user.username })
- Request dari Flutter:
-
Keamanan
- Menggunakan CSRF token untuk keamanan
- Implementasi session management
- Validasi input di kedua sisi (Flutter dan Django)
- HTTPS untuk komunikasi yang aman (wajib untuk production)