# mohdikbal1207-netizen/kasir-rsud-bk architecture

> Architecture diagram of the GitHub repository mohdikbal1207-netizen/kasir-rsud-bk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/mohdikbal1207-netizen/kasir-rsud-bk
- Repository: https://github.com/mohdikbal1207-netizen/kasir-rsud-bk

## Overview

This repository is a hospital information system focused on cashier workflows, with separate admin, management, and public registration areas. The main operational flow is cashier entry and review of service charges, followed by admin verification and printing/reporting; management also has a dashboard for monitoring hospital activity. Registration creates an inactive staff account and stores user/profile records. Supabase is the evident authentication and data platform, while Fonnte supports notification delivery. Some page-to-API wiring is not visible in the sampled excerpts, so those connections are omitted.

Main entry points: [`lib/supabase.ts`](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/lib/supabase.ts) (Supabase), [`app/daftar/page.tsx`](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/daftar/page.tsx) (Staff registration), [`app/api/daftar/route.ts`](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/daftar/route.ts) (Registration API), [`app/manajemen/page.tsx`](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/manajemen/page.tsx) (Management dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Registration"]
  node_public_registration["Staff registration<br/>[page.tsx]"]
  node_registration_api["Registration API<br/>[route.ts]"]
  node_login["Login<br/>[page.tsx]"]
  node_whatsapp_api["Registration WhatsApp API<br/>[route.ts]"]
end

subgraph group_operations["Cashier Operations"]
  node_cashier_home["Cashier workspace<br/>[page.tsx]"]
  node_cashier_igd["IGD billing<br/>[page.tsx]"]
  node_cashier_inpatient["Inpatient billing<br/>[page.tsx]"]
  node_cashier_outpatient["Outpatient billing<br/>[page.tsx]"]
  node_cashier_receipts["Receipts<br/>[page.tsx]"]
  node_cashier_medicine["Medicine details<br/>[page.tsx]"]
  node_cashier_attendance["Cashier attendance<br/>[page.tsx]"]
  node_cashier_print["Cashier print center<br/>[page.tsx]"]
  node_cashier_print_api["Cashier print data<br/>[route.ts]"]
end

subgraph group_oversight["Admin and Management"]
  node_admin_home["Admin workspace<br/>[page.tsx]"]
  node_admin_igd["IGD verification<br/>[page.tsx]"]
  node_admin_outpatient["Outpatient review<br/>[page.tsx]"]
  node_admin_inpatient["Inpatient review<br/>[page.tsx]"]
  node_admin_medicine["Medicine review<br/>[page.tsx]"]
  node_admin_receipts["Receipt administration<br/>[page.tsx]"]
  node_admin_print_api["Admin print data<br/>[route.ts]"]
  node_management["Management dashboard<br/>[page.tsx]"]
  node_admin_users["User administration<br/>[page.tsx]"]
  node_admin_audit["Audit logs<br/>[page.tsx]"]
  node_admin_security["Security controls<br/>[page.tsx]"]
  node_force_logout["Force logout API<br/>[route.ts]"]
  node_notify_login["Login alert API<br/>[route.ts]"]
  node_announcement["Announcements<br/>[page.tsx]"]
end

subgraph group_platform["Shared Platform"]
  node_auth_context["Auth context<br/>[AuthContext.tsx]"]
  node_database[("Supabase<br/>[supabase.ts]")]
  node_fonnte_lib["Fonnte alerts<br/>[fonnte.ts]"]
end

node_staff(("Staff user"))
node_fonnte_service{{"Fonnte service"}}

node_staff -->|"submits details"| node_public_registration
node_public_registration -->|"posts registration"| node_registration_api
node_registration_api -->|"creates account and records"| node_database
node_staff -->|"signs in"| node_login
node_auth_context -->|"reads session and profile"| node_database
node_staff -->|"uses services"| node_cashier_home
node_staff -->|"administers operations"| node_admin_home
node_staff -->|"monitors activity"| node_management
node_admin_igd -->|"updates IGD records"| node_database
node_admin_print_api -->|"reads service transactions"| node_database
node_cashier_print_api -->|"reads service transactions"| node_database
node_management -->|"loads dashboard data"| node_database
node_force_logout -->|"checks users and ends sessions"| node_database
node_notify_login -->|"sends security alert"| node_fonnte_lib
node_fonnte_lib -.->|"sends message"| node_fonnte_service
node_whatsapp_api -.->|"sends registration message"| node_fonnte_service

click node_public_registration "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/daftar/page.tsx"
click node_registration_api "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/daftar/route.ts"
click node_login "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/login/page.tsx"
click node_auth_context "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/context/AuthContext.tsx"
click node_cashier_home "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/page.tsx"
click node_cashier_igd "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/igd/page.tsx"
click node_cashier_inpatient "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rawat-inap/page.tsx"
click node_cashier_outpatient "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rawat-jalan/page.tsx"
click node_cashier_receipts "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/kwitansi/page.tsx"
click node_cashier_medicine "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rincian-obat/page.tsx"
click node_cashier_attendance "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/absensi/page.tsx"
click node_cashier_print "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/pusat-cetak/page.tsx"
click node_admin_home "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/page.tsx"
click node_admin_igd "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/igd/page.tsx"
click node_admin_outpatient "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rawat-jalan/page.tsx"
click node_admin_inpatient "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rawat-inap/page.tsx"
click node_admin_medicine "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rincian-obat/page.tsx"
click node_admin_receipts "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/kwitansi/page.tsx"
click node_admin_print_api "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/pusat-cetak/route.ts"
click node_cashier_print_api "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/kasir/pusat-cetak/route.ts"
click node_management "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/manajemen/page.tsx"
click node_admin_users "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/users/page.tsx"
click node_admin_audit "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/audit-logs/page.tsx"
click node_admin_security "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/security/page.tsx"
click node_force_logout "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/force-logout/route.ts"
click node_notify_login "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/notify-login/route.ts"
click node_announcement "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/pengumuman/page.tsx"
click node_database "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/lib/supabase.ts"
click node_fonnte_lib "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/lib/fonnte.ts"
click node_whatsapp_api "https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/whatsapp/route.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_public_registration,node_registration_api,node_login,node_whatsapp_api,node_staff toneBlue
class node_cashier_home,node_cashier_igd,node_cashier_inpatient,node_cashier_outpatient,node_cashier_receipts,node_cashier_medicine,node_cashier_attendance,node_cashier_print,node_cashier_print_api toneAmber
class node_admin_home,node_admin_igd,node_admin_outpatient,node_admin_inpatient,node_admin_medicine,node_admin_receipts,node_admin_print_api,node_management,node_admin_users,node_admin_audit,node_admin_security,node_force_logout,node_notify_login,node_announcement toneMint
class node_auth_context,node_database,node_fonnte_lib toneRose
class node_fonnte_service toneIndigo
```

## Components

### Access and Registration

- [Staff registration](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/daftar/page.tsx): `app/daftar/page.tsx`
- [Registration API](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/daftar/route.ts): `app/api/daftar/route.ts`
- [Login](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/login/page.tsx): `app/login/page.tsx`
- [Registration WhatsApp API](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/whatsapp/route.ts): `app/api/whatsapp/route.ts`

### Cashier Operations

- [Cashier workspace](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/page.tsx): `app/kasir/page.tsx`
- [IGD billing](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/igd/page.tsx): `app/kasir/igd/page.tsx`
- [Inpatient billing](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rawat-inap/page.tsx): `app/kasir/rawat-inap/page.tsx`
- [Outpatient billing](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rawat-jalan/page.tsx): `app/kasir/rawat-jalan/page.tsx`
- [Receipts](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/kwitansi/page.tsx): `app/kasir/kwitansi/page.tsx`
- [Medicine details](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/rincian-obat/page.tsx): `app/kasir/rincian-obat/page.tsx`
- [Cashier attendance](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/absensi/page.tsx): `app/kasir/absensi/page.tsx`
- [Cashier print center](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/kasir/pusat-cetak/page.tsx): `app/kasir/pusat-cetak/page.tsx`
- [Cashier print data](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/kasir/pusat-cetak/route.ts): `app/api/kasir/pusat-cetak/route.ts`

### Admin and Management

- [Admin workspace](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/page.tsx): `app/admin/page.tsx`
- [IGD verification](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/igd/page.tsx): `app/admin/igd/page.tsx`
- [Outpatient review](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rawat-jalan/page.tsx): `app/admin/rawat-jalan/page.tsx`
- [Inpatient review](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rawat-inap/page.tsx): `app/admin/rawat-inap/page.tsx`
- [Medicine review](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/rincian-obat/page.tsx): `app/admin/rincian-obat/page.tsx`
- [Receipt administration](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/kwitansi/page.tsx): `app/admin/kwitansi/page.tsx`
- [Admin print data](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/pusat-cetak/route.ts): `app/api/admin/pusat-cetak/route.ts`
- [Management dashboard](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/manajemen/page.tsx): `app/manajemen/page.tsx`
- [User administration](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/users/page.tsx): `app/admin/users/page.tsx`
- [Audit logs](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/audit-logs/page.tsx): `app/admin/audit-logs/page.tsx`
- [Security controls](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/security/page.tsx): `app/admin/security/page.tsx`
- [Force logout API](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/force-logout/route.ts): `app/api/admin/force-logout/route.ts`
- [Login alert API](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/api/admin/notify-login/route.ts): `app/api/admin/notify-login/route.ts`
- [Announcements](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/app/admin/pengumuman/page.tsx): `app/admin/pengumuman/page.tsx`

### Shared Platform

- [Auth context](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/context/AuthContext.tsx): `context/AuthContext.tsx`
- [Supabase](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/lib/supabase.ts): `lib/supabase.ts`
- [Fonnte alerts](https://github.com/mohdikbal1207-netizen/kasir-rsud-bk/blob/main/lib/fonnte.ts): `lib/fonnte.ts`

### Other components

- **Staff user**
- **Fonnte service**

## Connections

- Staff user → Staff registration: submits details
- Staff registration → Registration API: posts registration
- Registration API → Supabase: creates account and records
- Staff user → Login: signs in
- Auth context → Supabase: reads session and profile
- Staff user → Cashier workspace: uses services
- Staff user → Admin workspace: administers operations
- Staff user → Management dashboard: monitors activity
- IGD verification → Supabase: updates IGD records
- Admin print data → Supabase: reads service transactions
- Cashier print data → Supabase: reads service transactions
- Management dashboard → Supabase: loads dashboard data
- Force logout API → Supabase: checks users and ends sessions
- Login alert API → Fonnte alerts: sends security alert
- Fonnte alerts → Fonnte service: sends message
- Registration WhatsApp API → Fonnte service: sends registration message
