superappgov

ASN

80 file · 694.6 KB

README

ASN NEXUS

Platform pengetahuan ASN Indonesia yang menyatukan regulasi, manajemen karier, kompensasi, disiplin, dan tools simulasi dalam satu pengalaman web.

Fitur Utama

  • 18 domain pengetahuan ASN dengan konten terstruktur dan actionable.
  • Tools interaktif: estimasi THP, estimasi pensiun, dan kalkulator KGB.
  • Navigasi cepat melalui Command Palette (Cmd/Ctrl + K).
  • Filter domain berbasis persona (CPNS, PPPK, PNS) di homepage (persisten per browser).
  • Bookmark domain (disimpan di localStorage) dengan aksi ekspor JSON dan hapus massal.
  • Section "Terakhir Dibuka" berbasis riwayat interaksi domain pengguna.
  • Dashboard event internal di /insights untuk evaluasi UX dan telemetry lokal (ter-gate mode internal).
  • UI responsif desktop-mobile dengan mode terang/gelap.
  • Aksesibilitas dasar yang diperkuat (skip-link, keyboard-first navigation).

Stack

  • Next.js App Router
  • React + TypeScript
  • Tailwind CSS v4

Menjalankan Proyek

npm install
npm run dev

Buka http://localhost:3000.

Validasi Kualitas

npm run lint
npm run build

Struktur Penting

  • src/app - halaman domain dan layout aplikasi
  • src/components/layout - header, footer, command palette
  • src/components/calculators - kalkulator ASN
  • src/components/ui - komponen presentasi domain/FAQ
  • src/components/ui/DomainViewTracker.tsx - telemetry saat domain page benar-benar dibuka
  • src/hooks/useBookmarks.ts - sinkronisasi bookmark lintas komponen
  • src/hooks/usePersonaFilter.ts - sinkronisasi preferensi persona lintas komponen
  • src/hooks/useAnalyticsLog.ts - sinkronisasi log analytics untuk dashboard
  • src/lib/analytics.ts - event tracking map dan helper telemetry
  • src/lib/featureFlags.ts - kontrol fitur internal (/insights)
  • src/lib/personaPreferences.ts - util penyimpanan preferensi persona
  • src/lib/constants.ts - sumber data domain, golongan, dan instansi

Event Analytics

Event inti yang dipetakan:

  • palette_opened
  • palette_result_selected
  • theme_toggled
  • persona_filter_selected
  • domain_opened
  • domain_viewed
  • bookmark_toggled
  • bookmark_exported
  • bookmark_cleared
  • tool_tab_selected

Konfigurasi Internal

  • Set NEXT_PUBLIC_ENABLE_INSIGHTS=true untuk membuka /insights di mode production.

Catatan

Konten disajikan untuk edukasi. Untuk keputusan administratif/hukum resmi, selalu verifikasi ke regulasi mutakhir dan unit kepegawaian instansi terkait.

File Utama

  • .gitignore
  • DEPLOYMENT_RULES.md
  • README.md
  • eslint.config.mjs
  • mdx-components.tsx
  • next.config.ts
  • package-lock.json
  • package.json