Skip to content

User Flow

Authentication Flow

  1. User mengunjungi halaman login

  2. better-auth menangani session via cookie

  3. Setelah login, user diarahkan ke dashboard

    Destiny Analysis Flow

    Input Form (Unified)

    1. User membuka halaman /destiny
    2. Tab Input menampilkan form terpadu dengan field:
      • Profile Name (opsional, untuk labeling history)
      • Full Name (nama di akta kelahiran)
      • Birth Date (date picker)
      • Gender (Male / Female / Other)
      • Birth Time — mode Exact (time picker) atau Range (dropdown 7 rentang waktu dengan midpoint otomatis)
      • Birth City & Country
    3. Saat birth date dipilih, Weton (Primbon Jawa) dihitung otomatis dan ditampilkan (hari, pasaran, neptu)
    4. User menekan tombol Calculate Numerology atau Generate BaZi

    Numerology (Client-Side)

    1. Engine kalkulasi deterministik berjalan di browser — tidak ada call ke server
    2. Hasil ditampilkan di tab Numerology: Life Path, Expression, Soul Urge, Personality, Maturity, Personal Year
    3. Setiap angka menampilkan calculation steps dan Master Number badge jika applicable
    4. Hasil otomatis tersimpan ke History (localStorage)

    BaZi (Backend Proxy)

    1. Frontend memanggil POST /v1/checkDestinyAccess untuk cek usage limit
    2. Jika quota habis, tampilkan pesan lock dengan alasan
    3. Jika quota tersedia, frontend membangun prompt dan memanggil POST /v1/invokeDestiny
    4. Backend:
      • Verifikasi usage limit lagi
      • Ambil OPENAI_API_KEY dari env vars (tidak pernah dikirim ke client)
      • Proxy prompt ke OpenAI API
      • Increment usage counter di database
      • Return hasil LLM ke frontend
    5. Frontend parse dan render hasil di tab BaZi: Four Pillars, Day Master, Element Balance, Ten Gods, Luck Pillars, Life Guidance, Affirmations
    6. Hasil otomatis tersimpan ke History (localStorage)

    History

    1. Tab History menampilkan daftar analisis terakhir (maksimal 20 entri)
    2. Setiap entri menampilkan profile name, nama, tanggal lahir, timestamp, dan badge sistem (Numerology / BaZi / Weton)
    3. User bisa klik entri untuk memuat kembali data dan hasil ke form
    4. User bisa menghapus entri individual dari history
    5. History disimpan di localStorage — tidak masuk ke backend database (sesuai kontrak saat ini)

Journal Flow

  1. User membuka halaman /journal
  2. ...