# elbon-asyafa/bot-whatsapp-asy architecture

> Architecture diagram of the GitHub repository elbon-asyafa/bot-whatsapp-asy, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/elbon-asyafa/bot-whatsapp-asy
- Repository: https://github.com/elbon-asyafa/bot-whatsapp-asy

## Overview

Bot WhatsApp multi-user untuk mencatat keuangan dan to-do, mengelola reminder, memproses media, serta menyediakan AI yang dapat menjalankan aksi. Alur utama: pengguna mengirim perintah lewat WhatsApp, runtime merutekannya ke fitur, fitur memakai Google Sheets untuk data bila diperlukan, lalu bot membalas melalui WhatsApp. README mendokumentasikan beberapa kemampuan yang tidak terlihat pada cuplikan kode; hubungan tersebut ditandai dengan bukti README, bukan dianggap sebagai inspeksi implementasi.

Main entry points: [`index.js`](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js) (Koneksi & Perutean), [`sheets.js`](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/sheets.js) (Data Spreadsheet), [`gemini.js`](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/gemini.js) (Gemini AI), [`brat-advanced.js`](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/brat-advanced.js) (Stiker Brat)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_messaging["WhatsApp Runtime"]
  node_runtime["Koneksi &amp; Perutean<br/>[index.js]"]
end

subgraph group_personal["Data &amp; Produktivitas"]
  node_accounts["Akun &amp; Akses<br/>[index.js]"]
  node_finance["Pencatatan Keuangan<br/>[index.js]"]
  node_todos["To-do<br/>[index.js]"]
  node_reminders["Reminder &amp; Alarm<br/>[index.js]"]
  node_sheets[("Data Spreadsheet<br/>[sheets.js]")]
end

subgraph group_ai["AI Assistant"]
  node_assistant["AI Assistant<br/>[index.js]"]
  node_gemini{{"Gemini AI<br/>[gemini.js]"}}
  node_receipt["Scan Struk<br/>[index.js]"]
end

subgraph group_media["Media Tools"]
  node_downloads["Unduh Media<br/>[index.js]"]
  node_stickers["Stiker Brat<br/>[brat-advanced.js]"]
  node_fakechat["Generator Fake Chat<br/>[fakechat.js]"]
  node_media_commands["Stiker &amp; Utilitas Media<br/>[index.js]"]
end

node_user(("Pengguna"))
node_whatsapp{{"WhatsApp"}}
node_google{{"Google Sheets API"}}

node_user -->|"mengirim pesan"| node_whatsapp
node_whatsapp -->|"meneruskan pesan"| node_runtime
node_runtime -->|"mengirim balasan"| node_whatsapp
node_runtime -->|"merutekan akun"| node_accounts
node_runtime -->|"merutekan transaksi"| node_finance
node_runtime -->|"merutekan tugas"| node_todos
node_runtime -->|"menjadwalkan alarm"| node_reminders
node_runtime -->|"merutekan perintah AI"| node_assistant
node_runtime -->|"memproses struk"| node_receipt
node_runtime -->|"menangani unduhan"| node_downloads
node_runtime -->|"memanggil generator"| node_stickers
node_runtime -->|"memanggil generator"| node_fakechat
node_runtime -->|"merutekan media"| node_media_commands
node_accounts -->|"membaca dan menulis"| node_sheets
node_finance -->|"membaca dan menulis"| node_sheets
node_todos -->|"membaca dan menulis"| node_sheets
node_reminders -->|"menyimpan pengaturan"| node_sheets
node_sheets -->|"membaca dan menulis"| node_google
node_assistant -->|"memproses perintah"| node_gemini
node_assistant -->|"menjalankan aksi data"| node_sheets
node_gemini -->|"mengelola riwayat"| node_sheets
node_receipt -->|"menganalisis gambar"| node_gemini

click node_runtime "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_accounts "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_finance "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_todos "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_reminders "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_sheets "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/sheets.js"
click node_assistant "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_gemini "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/gemini.js"
click node_receipt "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_downloads "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"
click node_stickers "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/brat-advanced.js"
click node_fakechat "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/fakechat.js"
click node_media_commands "https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js"

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_runtime toneBlue
class node_accounts,node_finance,node_todos,node_reminders,node_sheets toneAmber
class node_assistant,node_gemini,node_receipt,node_google toneMint
class node_downloads,node_stickers,node_fakechat,node_media_commands toneRose
class node_user,node_whatsapp toneIndigo
```

## Components

### WhatsApp Runtime

- [Koneksi & Perutean](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`

### Data & Produktivitas

- [Akun & Akses](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [Pencatatan Keuangan](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [To-do](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [Reminder & Alarm](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [Data Spreadsheet](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/sheets.js): `sheets.js`

### AI Assistant

- [AI Assistant](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [Gemini AI](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/gemini.js): `gemini.js`
- [Scan Struk](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`

### Media Tools

- [Unduh Media](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`
- [Stiker Brat](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/brat-advanced.js): `brat-advanced.js`
- [Generator Fake Chat](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/fakechat.js): `fakechat.js`
- [Stiker & Utilitas Media](https://github.com/elbon-asyafa/bot-whatsapp-asy/blob/main/index.js): `index.js`

### Other components

- **Pengguna**
- **WhatsApp**
- **Google Sheets API**

## Connections

- Pengguna → WhatsApp: mengirim pesan (evidence: `README.md`)
- WhatsApp → Koneksi & Perutean: meneruskan pesan (evidence: `index.js`)
- Koneksi & Perutean → WhatsApp: mengirim balasan (evidence: `index.js`)
- Koneksi & Perutean → Akun & Akses: merutekan akun (evidence: `README.md`)
- Koneksi & Perutean → Pencatatan Keuangan: merutekan transaksi (evidence: `README.md`)
- Koneksi & Perutean → To-do: merutekan tugas (evidence: `README.md`)
- Koneksi & Perutean → Reminder & Alarm: menjadwalkan alarm (evidence: `README.md`)
- Koneksi & Perutean → AI Assistant: merutekan perintah AI (evidence: `README.md`)
- Koneksi & Perutean → Scan Struk: memproses struk (evidence: `index.js`)
- Koneksi & Perutean → Unduh Media: menangani unduhan (evidence: `README.md`)
- Koneksi & Perutean → Stiker Brat: memanggil generator (evidence: `index.js`)
- Koneksi & Perutean → Generator Fake Chat: memanggil generator (evidence: `index.js`)
- Koneksi & Perutean → Stiker & Utilitas Media: merutekan media (evidence: `README.md`)
- Akun & Akses → Data Spreadsheet: membaca dan menulis (evidence: `README.md`)
- Pencatatan Keuangan → Data Spreadsheet: membaca dan menulis (evidence: `README.md`)
- To-do → Data Spreadsheet: membaca dan menulis (evidence: `README.md`)
- Reminder & Alarm → Data Spreadsheet: menyimpan pengaturan (evidence: `README.md`)
- Data Spreadsheet → Google Sheets API: membaca dan menulis (evidence: `sheets.js`)
- AI Assistant → Gemini AI: memproses perintah (evidence: `index.js`)
- AI Assistant → Data Spreadsheet: menjalankan aksi data (evidence: `index.js`)
- Gemini AI → Data Spreadsheet: mengelola riwayat (evidence: `gemini.js`)
- Scan Struk → Gemini AI: menganalisis gambar (evidence: `README.md`)
