## Task
- Login (Yasir)
- Register (Yasir)
- Halaman keterangan "sedang direview"
- Kerangka (Yasir)
## Data
- User Status
- approved (true, false)
- Login
```json
// request
//response
"success": true,
"message": "User login successfully.",
"data": {
"token": "5|4Nq2EQ9AxeKeeLkUa9IjnHv4f2Opr1el39WtgI1J",
"name": "admin",
"role": "1", // (admin pusat: 1, admin_provinsi: 2, user: 6)
"code": "CODE"
}
```
- Activity
- Nama
- Gambar (max 3)
- Tgl
- Deskripsi
## Menu Besar:
- Dashboard (Chart) - Aha
1. Group by (usia, pekerjaan, pendidikan, provinsi)
2. jumlah total User
- List User - Yasir
1. list User (semua user)
2. Button Edit & Delete (Admin Pusat)
3. Button pengajuan delete (Admin Provinsi) -> muncul text box (alasan)
- List Activity - Aha
1. list activity (semua user)
2. Detail Activity(semua user)
3. Button Add, Edit & Delete (Admin Provinsi)
4. delete image di detail activity (admin)
- My Profile - Yasir
1. Change Password
2. List New User (admin) -> approval
3. List Pengajuan delete user (admin pusat)
4. List deleted user (admin pusat)
## How to Code
- buat halaman baru filenya di @/src/page
- setiap halaman baru pastikan ada component
- LoadingModal
- NotifModal
- simpan state global
- buat action string di @/src/action/AppAction
- tambahkan reducer baru untuk tiap halaman di @src/reducer
- tambahkan reducer baru di @src/rootreducer
- setiap halaman dimulai dg component SafeAreaView
```javascript=
import NotifModal from '../components/NotifModal'
import LoadingModal from '../components/LoadingModal'
const [loadingVisible, setLoadingVisible] = React.useState(false)
const [notifData, setNotifData] = React.useState({
visible: false,
title: null,
message: null,
primaryAction: null,
primaryActionText: null,
secondaryAction: null,
secondaryActionText: null
})
// setiap request panggil loading dan set loading false tiap dapat result
// muncul loading
setLoadingVisible(true)
// jika response gagal, munculin notif
let notifDataParam = {
...notifData,
visible: true,
title: 'Peringatan',
message: 'Username / Password salah',
primaryAction: () => {
setNotifData({
...notifData,
visible: false
})
},
primaryActionText: 'Tutup'
}
setNotifData(notifDataParam)
```
## To Do
- [x] - Warna background list user **Yasir**
- [x] - implement filter list user (done), list persetujuan, list pengajuan hapus user (high) **Yasir**
- [x] - panggil api jumlah persetujuan user & pengajuan hapus user **Yasir**
- [x] - popup detail user (high) **Yasir**
- [x] - form & action edit user (high) **Yasir**
- [x] - alert 'apa anda yakin?' delete user **Yasir**
- [x] - popup alasan delete user (admin: provinsi ) **Yasir**
- [x] - privilege menu list persetujuan user & list pengajuan hapus user role admin (1,2,3,4,5) (high) **Yasir**
- [x] - tombol centang & x list persetujuan user & list pengajuan hapus user (tinggal kasih action)(high) **Yasir**
- [x] - tambah alasan di tiap item user di list pengajuan delete **Yasir**
- [x] - redesign profile, nama dan kode di atas **Aha**
- [x] - tampilan activity list perlu disesuaikan dg list user (high) **Aha**
- [x] tambah kolom gender di register dan update user **Yasir**
### List Bug
- [x] - load pertama kali list kabupaten di form register **Yasir**
- [x] - klik register harus 2x karena variable foto blm ter set **Yasir**
- [x] - date picker tgl lahir di form **Yasir**
- [x] - Dashboard Page -> total page background merah , angka dibawah text **Aha**
- [x] - Hapus Filter user list langsung reload **Yasir**
- [x] - Dropdown alamat berubah jika parent nya diganti **Yasir**
- [x] - error auth harusnya return response 401 unauthorize
- [ ] - clear local storage klo eror 401 **Yasir**
- [x] - menampilkan percent di data dashboard **Aha**
- [ ] - download chart dan menampilkan list data **Aha** *download list data?
- [x] - activity list kurang filter provinsi **Aha**
- [x] - change Password (high) **Yasir**
- [x] - setelah add activity form belum ke reset **Aha**
- [x] - update activity belum berjalan **Aha** *error on update endpoint Zu
- [x] - default province id list activity dibuat kosong **Aha**
- [x] - perlu validasi email, no.hp, ktp, umur (diatas 17), password dan confirm password harus sama **Yasir**
- [x] - di halaman kegiatan, waktu add foto, harusnya bisa satu2 **Aha**
- [x] - list anggota (admin prov) -> setelah sukses permintaan hapus, harusnya ada message 'permohonan telah diajukan, menunggu approval dari admin pusat' **Lazu**
- [x] - registrasi,setelah input ada message 'Terima kasih anda sudah mendaftar tunggu konfirmasi dari Admin Provinsi' **Lazu**
- [x] - halaman Dashboard , ketika type diganti province, maka akan muncul dropdown(province, kabupaten, kecamatan) **yasir**
- [x] - halaman dashboard, jumlah anggota akan reload ketika ada (provinsi, kabupaten atau kecamatan) **yasir**
- [x] - filter kegiatan belum berjalan **aha**
- [x] - list anggota page 2 tidak berjalan **yasir**
- [ ] - chart berantakan
- [x] - total tidak sesuai **lazu**
- [x] - halaman chart, setelah clear filter provinsi, chart belum ke reload
- [x] - pengajuan hapus user belum berfungsi
- [x] - click detail di list pengajuan user baru force close
- [ ] - di list pengajuan waktu approve atau reject belum auto reload Dan perhitungan jumlah juga belum berjalan
- [x] - setelah hapus data mengeluarkan message
- [ ] - setiap ke halaman dashboard & myprofile harusnya reload data
- [x] message setelah ganti password
- [ ] filter tidak kehapus setelah ganti group
- [x] message setelah edit & hapus user
- [x] no urut daftar kegiatan
- [ ] dashboard aetiap ganti filter belum ada loading
- [x] admin prov hanya bisa mengajukan provinsinya saja
- [ ] delete kegiatan tidak ada message
- [ ] halaman dashboard, harusnya scroll dari chart
### Data Testing
- Admin Provinsi
120106001500002
1234567
- Admin Pusat
120106001500001
12345
- User
lazu@email.com
1234567
dwi@email.com
123456
- user
admin@gmail.com (admin pusat)
aryo@gmail.com aceh (admin provinsi)
arbi@email.com aceh
aswin@email.com aceh
ardi@email.com aceh
dona@gmail.com DKI (admin provinsi)
denny@gmail.com DKI
dinyi@email.com DKI
dru@email.com DKI
joko@gmail.com Jatim (admin provinsi)
joni@email.com Jatim
jono@email.com Jatim
jarvis@email.com Jatim
### command generete aab
```
npx react-native build-android --mode=release
```
### Keystore
password: porgan12345
first n lastname: Porgan
unit: IT
organization: Porgan Indonesia
city: Jakarta
alias-key: porgan-indonesia
### bug after release
| Dev | Tes | Bug |
| ---- | ---- | --------------------------------------------------------------------------------- |
| Done | Done | load pertama activity tidak muncul semua |
| Done | Done | admin bisa create (pilih provinsi) update delete |
| Done | Done | halaman index activity kepotong |
| Done | Done | tulisan ilang saat dark mode |
| Done | Done | check permission (admin pusat dan prov) |
| Done | Done | halaman dashbord->pilih provinsi->scrool kebawah applikasi close |
| | | hasil foto auto-rotate |
| Done | | halaman myprofile->approve user ->tampilan ktpperlu disesuaikan |
| Done | Done | validasi jenis kelamin |
| Done | Done | validasi length no.hp 8-14 |
| | | Gagal Simpan waktu registrasi |
| Done | Done | menambahkan keteranga di pada kolom foto dan gambar ktp, 'harap foto disesuaikan' |
| Done | Done | menampilkan logo eye open and close di password pada halaman login |
| Done | Done | tidak menampilkan error saat gagal registrasi |