How ntkhang03/goat-bot-v2 works
Goat Bot is a personal-account Facebook Messenger bot with a web dashboard. The main workflow is Messenger events entering the chat API, being dispatched and checked by the bot handlers, then invoking commands or event scripts that may respond through the API and persist user, thread, or global data. The dashboard provides authenticated account and thread-management routes over shared data. The README documents handler stages and bot capabilities; some runtime wiring and unsampled route details are represented only where supported by the tree or excerpts.
Main entry points: controller/index.js Database setup · fb-chat-api/index.js Facebook chat API · handlerEvents.js Event handlers · threadsData.js Thread data
Components 21
Messenger runtime
- Facebook chat API
fb-chat-api/index.js - Account login
bot/login/login.js - Event action
bot/handler/handlerAction.js - Event handlers
bot/handler/handlerEvents.js
Bot features
- Commands
scripts/cmds - Event scripts
scripts/events - Localized text
languages
Persistence
- Data initialization
bot/handler/handlerCheckData.js - Database setup
database/controller/index.js - Thread data
database/controller/threadsData.js - User data
database/controller/usersData.js - Global data
database/controller/globalData.js - Dashboard data
database/controller/dashBoardData.js - MongoDB
database/connectDB/connectMongoDB.js - SQLite
database/connectDB/connectSqlite.js
Web dashboard
- Dashboard server
dashboard/app.js - Access checks
dashboard/middleware/index.js - Dashboard routes
dashboard/routes
Other components
- Messenger users
- Dashboard users
Connections 26
- Messenger users → Facebook chat API: send events
- Facebook chat API → Event action: dispatches events
- Event action → Data initialization: checks records
- Event action → Event handlers: processes event
- Event handlers → Commands: executes commands
- Event handlers → Event scripts: executes handlers
- Event handlers → Localized text: loads text
- Commands → Facebook chat API: sends responses
- Event scripts → Facebook chat API: sends responses
- Data initialization → Thread data: creates threads
- Data initialization → User data: creates users
- Event handlers → Global data: updates analytics
- Database setup → MongoDB: connects when selected
- Database setup → SQLite: connects when selected
- Database setup → Thread data: initializes access
- Database setup → User data: initializes access
- Database setup → Global data: initializes access
- Database setup → Dashboard data: initializes access
- Dashboard users → Dashboard server: uses dashboard
- Dashboard server → Access checks: applies checks
- Dashboard server → Dashboard routes: mounts routes
- Access checks → Thread data: reads membership
- Dashboard routes → Dashboard data: uses account data
- Dashboard routes → Thread data: uses thread data
- Account login → Facebook chat API: establishes session
- Facebook chat API → Facebook: communicates with