Skip to Content

My Account (Akun Saya)

CodeACC-ME
ModuleAccount
TypeSelf-service profile
StatusImplemented
PriorityP0 — MVP
ProcessManajemen akun pribadi
API[URL Postman]

1. Overview

Akun Saya adalah halaman tempat pengguna yang sedang login mengelola akunnya sendiri: foto profil, nama, email login, dan kata sandi. Halaman ini juga menampilkan informasi yang tidak bisa diubah sendiri, yaitu peran pengguna dan toko tempat ia ditugaskan (bila terhubung ke data karyawan), serta log aktivitas milik pengguna tersebut.

Semua pengguna yang login bisa mengakses halaman ini tanpa permission khusus; setiap perubahan hanya berlaku untuk akun pengguna itu sendiri.

Hasil yang diharapkan: pengguna bisa menjaga data dan keamanan akunnya sendiri tanpa meminta bantuan admin.

2. Problem

  • Pengguna harus menghubungi admin hanya untuk mengganti nama, foto, atau kata sandi.
  • Kata sandi awal perlu diganti oleh pemiliknya demi keamanan.
  • Pengguna perlu tahu peran dan toko apa yang dimilikinya untuk memahami aksesnya.

3. Goals & Non-goals

Goals

  • Pengguna bisa memperbarui profilnya sendiri. Indikator: nama, foto, email, dan kata sandi bisa diubah tanpa admin.
  • Perubahan email tetap aman. Indikator: email baru harus diverifikasi lewat tautan.
  • Pengguna memahami aksesnya. Indikator: peran dan toko tampil di kartu profil.

Non-goals

  • Mengubah peran, status aktif, atau toko sendiri (dilakukan admin)
  • Menghapus akun sendiri
  • Autentikasi dua faktor

4. User Scenarios

RoleScenario
Semua penggunaMengganti kata sandi awal setelah login pertama
Semua penggunaMengunggah foto profil agar mudah dikenali di log aktivitas dan notifikasi
KasirMengganti email login karena pindah ke email kantor; memverifikasi lewat tautan di email baru
Kepala TokoMemeriksa peran dan toko yang terhubung ke akunnya
Semua penggunaMelihat riwayat aktivitas yang ia lakukan sendiri

5. User Flow

  1. Mode lihat — Kartu profil (foto, nama, peran, toko) dan detail nama serta email (dengan ikon terverifikasi bila sudah diverifikasi). Tombol Log Aktivitas dan Ubah Data.
  2. Mode ubah — Halaman /account/my-account/edit dengan tab Profil, Email, dan Kata Sandi; tab aktif disimpan di URL (?tab=).
  3. Foto profil — Pengunggah gambar tampil di kartu profil (hanya mode ubah). Setelah gambar dipilih, tombol Simpan muncul; foto baru langsung tampil setelah tersimpan.
  4. Profil — Ubah nama; tombol simpan aktif hanya jika ada perubahan.
  5. Email — Isi email baru (placeholder: email saat ini). Setelah disimpan, sistem mengirim tautan verifikasi ke email baru. Email login baru berlaku setelah tautan dibuka di /auth/change-verify-email.
  6. Kata Sandi — Isi kata sandi saat ini, kata sandi baru, dan konfirmasinya.
  7. Log aktivitas — Panel log aktivitas milik pengguna, dengan filter event, pelaku, dan rentang tanggal.

Alternative paths

  • Tinggalkan tab dengan perubahan belum disimpan — muncul konfirmasi perubahan belum disimpan.
  • Kata sandi saat ini salah atau konfirmasi tidak cocok — ditolak BE; error tampil pada field terkait.
  • Gagal menyimpan foto — toast “Gagal mengubah foto profil”.

6. User Stories

Prioritas: P0 wajib untuk rilis, P1 penting, P2 kalau sempat.

US-01 — Melihat akun saya (P0)

Sebagai pengguna, saya ingin melihat data akun saya, agar tahu profil dan akses saya.

IDKriteria penerimaan
AC-01.1Kartu profil menampilkan foto (atau inisial nama bila tidak ada foto), nama, dan daftar peran.
AC-01.2Daftar toko tampil hanya bila akun terhubung ke karyawan yang punya toko.
AC-01.3Email tampil dengan ikon terverifikasi bila email_verified_at terisi.
AC-01.4Skeleton tampil selama data dimuat.

US-02 — Mengubah foto profil (P1)

Sebagai pengguna, saya ingin mengganti foto profil, agar mudah dikenali.

IDKriteria penerimaan
AC-02.1Pengunggah hanya tampil di mode ubah dan hanya menerima satu file gambar.
AC-02.2Tombol Simpan muncul setelah gambar dipilih.
AC-02.3Setelah berhasil, toast “Foto profil berhasil diubah” tampil dan foto baru dipakai tanpa berkedip ke inisial.
AC-02.4File yang diunggah tercatat sebagai milik pengguna dan muncul di File Saya.

US-03 — Mengubah nama (P0)

Sebagai pengguna, saya ingin memperbaiki nama saya.

IDKriteria penerimaan
AC-03.1Nama wajib diisi.
AC-03.2Tombol simpan aktif hanya jika ada perubahan; setelah berhasil toast sukses tampil dan data akun dimuat ulang.

US-04 — Mengubah email login (P0)

Sebagai pengguna, saya ingin mengganti email login saya secara aman.

IDKriteria penerimaan
AC-04.1Email baru wajib dan harus berformat valid.
AC-04.2Info verifikasi email tampil di tab sebelum menyimpan.
AC-04.3Setelah disimpan, BE mengirim tautan verifikasi ke email baru dengan URL <origin>/auth/change-verify-email?token=.
AC-04.4Membuka tautan memverifikasi token lalu mengarahkan ke halaman login.
AC-04.5Error BE (misalnya email sudah dipakai) tampil pada field.

US-05 — Mengganti kata sandi (P0)

Sebagai pengguna, saya ingin mengganti kata sandi saya, agar akun tetap aman.

IDKriteria penerimaan
AC-05.1Kata sandi saat ini, kata sandi baru, dan konfirmasi wajib diisi; ketiganya bisa ditampilkan/disembunyikan.
AC-05.2Validasi kekuatan kata sandi, kecocokan konfirmasi, dan kebenaran kata sandi saat ini dilakukan BE; error tampil pada field terkait.
AC-05.3Setelah berhasil, toast sukses tampil.

US-06 — Log aktivitas saya (P2)

Sebagai pengguna, saya ingin melihat aktivitas yang saya lakukan.

IDKriteria penerimaan
AC-06.1Tombol Log Aktivitas di mode lihat membuka log milik pengguna, dengan filter event, pelaku, dan rentang tanggal.

7. Document Structure

FieldRequiredDefaultNotes
Foto profil (avatar_file)TidakInisial nama1 gambar, maks 1 MB; dikirim sebagai file_id + file_source
NamaYa
EmailYaDiubah lewat verifikasi (US-04)
Email terverifikasiOtomatisemail_verified_at
PeranRead-onlyDiatur admin di Settings → Pengguna
TokoRead-onlyDari karyawan terhubung (party.employee.stores)
Kata sandi saat iniYa (tab Kata Sandi)Tidak disimpan di FE
Kata sandi baruYa (tab Kata Sandi)Aturan kekuatan dari BE
Konfirmasi kata sandi baruYa (tab Kata Sandi)Harus sama dengan kata sandi baru (BE)

8. Status Lifecycle

Tidak berlaku untuk akun sendiri. Status email (terverifikasi / belum) dijelaskan di PRD Users; pengguna tidak bisa mengubah status aktifnya sendiri.

9. Permissions & Actions

Permissions

ActionPermissionSyarat tambahan
Semua aksi di Akun SayaPengguna login; hanya untuk akun sendiri

10. Business Rules

Aturan bisnis adalah ketentuan yang berlaku di semua layar dan semua aksi, siapa pun yang melakukannya. FE memakainya sebagai validasi di form, BE memakainya sebagai sumber kebenaran; jika keduanya berbeda, perilaku BE yang dianggap benar dan FE menyesuaikan.

  • BR-01 Semua endpoint Akun Saya bekerja pada pengguna dari token login (/api/auth/...), bukan id di URL.
  • BR-02 Email login baru hanya berlaku setelah diverifikasi lewat tautan; sampai saat itu email lama tetap dipakai.
  • BR-03 Mengganti kata sandi wajib menyertakan kata sandi saat ini.
  • BR-04 Aturan kekuatan kata sandi dan kecocokan konfirmasi ditegakkan BE; FE hanya memeriksa field tidak kosong.
  • BR-05 Peran, status aktif, dan toko tidak bisa diubah dari Akun Saya.
  • BR-06 Setiap perubahan dicatat di log aktivitas.

11. Edge Cases

Edge case adalah kondisi yang jarang terjadi tetapi pasti muncul di operasional nyata. Perilaku yang diharapkan ditetapkan di sini agar tidak diputuskan sendiri-sendiri saat implementasi.

IDCaseExpected behavior
EC-01Tautan verifikasi email kedaluwarsa atau tidak validHalaman verifikasi menampilkan status gagal (ditentukan BE)
EC-02Pengguna meminta ganti email dua kali sebelum verifikasiDitentukan BE; sebaiknya hanya tautan terbaru yang berlaku
EC-03Setelah ganti kata sandi, sesi di perangkat lainDitentukan BE; pengguna bisa mencabut sesi lain lewat Perangkat Terhubung
EC-04Form kata sandi setelah berhasil disimpanNilai field tidak dikosongkan otomatis; halaman hanya di-refresh
EC-05Foto dipilih tetapi tidak disimpanFoto lama tetap berlaku; file yang terlanjur diunggah tercatat di File Saya sebagai tidak digunakan
EC-06Akun tidak terhubung ke karyawanBagian Toko tidak tampil di kartu profil

12. API Contract

ActionMethodEndpointRef
Data akun sayaGET/api/auth/meUS-01
Ubah namaPATCH/api/auth/meUS-03
Ubah foto profilPATCH/api/auth/avatarUS-02
Ubah email (kirim verifikasi)POST/api/auth/email/changeUS-04
Verifikasi ubah email (halaman auth)POST/api/auth/email/change/verifyAC-04.4
Ganti kata sandiPATCH/api/auth/password/changeUS-05
Log aktivitas sayaGET/api/auth/activity-logs/cursorUS-06
Presign / finalize unggah fotoPOST / GET/api/files/upload/presign, /api/files/upload/finalize/:idUS-02

13. Dependencies

PRD terkait

  • Users (Settings) — admin mengelola akun yang sama (peran, status, email).
  • My Files — foto profil tersimpan sebagai file milik pengguna.
  • Linked Devices — mencabut sesi di perangkat lain.
  • Activity Logs — sumber log aktivitas.

Efek ke modul lain

  • Nama dan foto dipakai di header dashboard, log aktivitas (sebagai pelaku), dan kolom “Dibuat Oleh” di berbagai daftar.
Last updated on