YAREU (Your Action to Reuse & Unite)
- Jual Beli Barang: Platform marketplace untuk menjual dan membeli barang bekas atau baru
- Donasi Uang: Fitur untuk melakukan donasi uang kepada penerima donasi
- Donasi Barang: Fitur untuk mendonasikan barang kepada penerima donasi
- Tukar Tambah: Sistem untuk melakukan pertukaran atau tukar tambah barang
Aplikasi ini dibangun menggunakan Flet (Python) dengan arsitektur MVC (Model-View-Controller) dan menggunakan PostgreSQL sebagai database.
-
Python
- Download dari python.org
- Pastikan Python sudah terinstall dengan mengecek versi:
python --version
-
PostgreSQL
- Pastikan PostgreSQL service berjalan dengan membuatnya terlebih dahulu
- Default database:
yareu - Default user:
postgres - Default password:
postgres - Default port:
5432
-
Clone repository (jika belum)
git clone <repository-url> cd IF2150-2025-K01-G03-YAREU
-
Buat virtual environment
- Windows
python -m venv .venv - macOS/Linux
python3 -m venv .venv
- Windows
-
Aktifkan virtual environment
- Windows
.venv\Scripts\activate
- macOS/Linux
source .venv/bin/activate
- Windows
-
Install dependencies
Menggunakan pip:
pip install -r requirements.txt
Atau menggunakan uv:
uv pip install -r requirements.txt
-
Setup database
- Pastikan PostgreSQL sudah berjalan
- Atau bisa mengubah konfigurasi database di
src/database/connection.pyjika diperlukan
-
Pastikan virtual environment sudah aktif
-
Jalankan aplikasi
Menggunakan uv:
uv run flet run src/views
Atau menggunakan flet langsung:
flet run src/views
-
Aplikasi akan terbuka di browser atau window desktop
- Build aplikasi
flet build windows- Lalu buka .exe yang telah dihasilkan
Untuk memperbarui requirements.txt setelah meng-install dependencies baru:
pip freeze > requirements.txtUntuk melakukan formatting agar codebase memiliki penulisan yang seragam:
black .| Nama Modul | Jenis | Penjelasan |
|---|---|---|
DonaturEntity |
Model | Menyimpan data donatur |
TransaksiEntity |
Model | Menyimpan detail transaksi |
DonasiUangManager |
Controller | Mengatur logika terkait donasi uang |
DonateFundsPage |
View | Menampilkan informasi donasi uang |
BarangEntity |
Model | Menyimpan data barang |
BarangDonasiEntity |
Model | Menyimpan data barang yang telah didonasikan |
DonateGoodsPage |
View | Menampilkan informasi donasi barang |
DonasiBarangManager |
Controller | Mengatur logika terkait donasi barang |
PenerimaDonasiEntity |
Model | Menyimpan data penerima donasi |
TerimaDonasiUangManager |
Controller | Mengatur logika terkait terima donasi uang |
DonationRecipientDetailPage |
View | Menampilkan informasi penerimaan donasi uang |
KonfirmasiDonasiManager |
Controller | Mengatur logika terkait konfirmasi donasi |
DonationPage |
View | Menampilkan form konfirmasi donasi |
TerimaDonasiBarangManager |
Controller | Mengatur logika terkait penerimaan donasi barang |
DonationRequestPage |
View | Menampilkan form penerimaan donasi barang |
| Nama Modul | Jenis | Penjelasan |
|---|---|---|
PenjualEntity |
Model | Menyimpan data penjual |
PenjualanManager |
Controller | Mengatur logika terkait penjualan |
SellPage |
View | Menampilkan form penjualan |
PembeliEntity |
Model | Menyimpan data pembeli |
FullPaymentManager |
Controller | Mengatur logika terkait pembelian |
CheckoutPage |
View | Menampilkan form pembayaran full payment |
| Nama Modul | Jenis | Penjelasan |
|---|---|---|
TukarTambahManager |
Controller | Mengatur logika terkait tukar tambah |
ShopPage |
View | Menampilkan form tukar tambah |
AjuanTukarTambahManager |
Controller | Mengatur logika terkait pengajuan tukar tambah |
ProductDetailPage |
View | Menampilkan form dan informasi terkait pengajuan tukar tambah |
| Nama Modul | Jenis | Penjelasan |
|---|---|---|
PengirimanManager |
Controller | Mengatur logika terkait pengiriman barang |
CheckoutPage |
View | Menampilkan form dan informasi terkait pengiriman barang |
KonfirmasiPenerimaanManager |
Controller | Mengatur logika terkait konfirmasi penerimaan barang |
ProfilePage |
View | Menampilkan informasi terkait konfirmasi penerimaan barang |
Tabel untuk menyimpan data pengguna sistem (autentikasi).
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idPengguna |
INTEGER (PK) | ID unik pengguna |
nama |
VARCHAR | Nama pengguna |
email |
VARCHAR | Email pengguna (unique) |
password |
VARCHAR | Password terenkripsi |
nomorTelepon |
VARCHAR (nullable) | Nomor telepon pengguna |
Tabel untuk menyimpan data donatur.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idDonatur |
INTEGER (PK) | ID unik donatur |
nama |
VARCHAR | Nama donatur |
email |
VARCHAR (nullable) | Email donatur |
nomorTelepon |
VARCHAR (nullable) | Nomor telepon donatur |
Tabel untuk menyimpan data penerima donasi.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idPenerima |
INTEGER (PK) | ID unik penerima donasi |
nama |
VARCHAR | Nama penerima donasi |
email |
VARCHAR (nullable) | Email penerima donasi |
nomorTelepon |
VARCHAR (nullable) | Nomor telepon penerima donasi |
alamat |
VARCHAR (nullable) | Alamat penerima donasi |
Tabel untuk menyimpan data penjual.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idPenjual |
INTEGER (PK) | ID unik penjual |
nama |
VARCHAR | Nama penjual |
email |
VARCHAR (nullable) | Email penjual |
nomorTelepon |
VARCHAR (nullable) | Nomor telepon penjual |
alamat |
VARCHAR (nullable) | Alamat penjual |
Tabel untuk menyimpan data pembeli.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idPembeli |
INTEGER (PK) | ID unik pembeli |
nama |
VARCHAR | Nama pembeli |
email |
VARCHAR (nullable) | Email pembeli |
nomorTelepon |
VARCHAR (nullable) | Nomor telepon pembeli |
alamat |
VARCHAR (nullable) | Alamat pembeli |
Tabel untuk menyimpan data barang yang dijual.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idBarang |
INTEGER (PK) | ID unik barang |
namaBarang |
VARCHAR | Nama barang |
deskripsi |
VARCHAR (nullable) | Deskripsi barang |
kategori |
VARCHAR (nullable) | Kategori barang |
foto |
VARCHAR (nullable) | Path/link foto barang |
video |
VARCHAR (nullable) | Path/link video barang |
idPenjual |
INTEGER (FK) | ID penjual (foreign key ke PenjualEntity) |
harga |
INTEGER (nullable) | Harga barang |
Tabel untuk menyimpan data barang yang didonasikan.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idBarangDonasi |
INTEGER (PK) | ID unik barang donasi |
namaBarang |
VARCHAR | Nama barang donasi |
deskripsi |
VARCHAR (nullable) | Deskripsi barang donasi |
kategori |
VARCHAR (nullable) | Kategori barang donasi |
idDonatur |
INTEGER (FK) | ID donatur (foreign key ke DonaturEntity) |
idPenerima |
INTEGER (FK, nullable) | ID penerima (foreign key ke PenerimaDonasiEntity) |
status |
VARCHAR | Status barang donasi (default: "pending") |
caraPengiriman |
VARCHAR (nullable) | Cara pengiriman barang donasi |
Tabel untuk menyimpan data transaksi (jual beli, donasi, tukar tambah).
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idTransaksi |
INTEGER (PK) | ID unik transaksi |
idBarang |
INTEGER (FK, nullable) | ID barang (foreign key ke BarangEntity) - untuk jual beli |
idPembeli |
INTEGER (FK, nullable) | ID pembeli (foreign key ke PembeliEntity) - untuk jual beli |
idDonatur |
INTEGER (FK, nullable) | ID donatur (foreign key ke DonaturEntity) - untuk donasi |
idPenerima |
INTEGER (FK, nullable) | ID penerima (foreign key ke PenerimaDonasiEntity) - untuk donasi |
jumlah |
INTEGER (nullable) | Jumlah uang (untuk donasi uang atau pembayaran) |
kuantitas |
INTEGER (nullable) | Kuantitas barang |
metodePembayaran |
VARCHAR (nullable) | Metode pembayaran |
status |
VARCHAR | Status transaksi (default: "pending") |
jenisTransaksi |
VARCHAR | Jenis transaksi: "donasi_uang", "donasi_barang", "jual_beli", "tukar_tambah" |
tanggal |
VARCHAR (nullable) | Tanggal transaksi |
Tabel untuk menyimpan data pengiriman.
| Atribut | Tipe Data | Keterangan |
|---|---|---|
idPengiriman |
INTEGER (PK) | ID unik pengiriman |
idTransaksi |
INTEGER (FK) | ID transaksi (foreign key ke TransaksiEntity) |
alamat |
VARCHAR | Alamat pengiriman |
detailAlamat |
VARCHAR (nullable) | Detail alamat pengiriman |
kota |
VARCHAR (nullable) | Kota tujuan pengiriman |
metodePengiriman |
VARCHAR (nullable) | Metode pengiriman |
status |
VARCHAR | Status pengiriman (default: "pending") |
controllers/: Kelas Manager untuk business logicmodels/: Kelas Entity dan Schema untuk data modelsdatabase/: Koneksi database dan query functionsviews/: Kelas Form & Display untuk UI (Flet)