explaingit

kukuhtw/toko_kopi

15PHPAudience · pm founderComplexity · 3/5Setup · moderate

TLDR

An AI-powered ordering and customer management chatbot for cafes and restaurants, written in PHP, supporting WhatsApp, Telegram, Discord, and web, with multi-branch management and an extensible plugin system.

Mindmap

mindmap
  root((KopiBot))
    What it does
      Order chatbot
      Branch management
      Customer portal
    Channels
      WhatsApp
      Telegram
      Discord
      Web
    Features
      Loyalty points
      Payment plugins
      Promo codes
    Tech stack
      PHP 8
      MySQL
      LLM APIs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Let customers place food and drink orders through a WhatsApp or Telegram chatbot without any app download.

USE CASE 2

Manage multiple cafe branches from one dashboard with separate menus, pricing, and promotions per branch.

USE CASE 3

Add loyalty points, CRM, and payment gateways using the plugin system without changing core application code.

USE CASE 4

Give customers a portal to check order history and loyalty balances using only their contact details.

Tech stack

PHP 8MySQLApacheOpenAI APIAnthropic API

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires PHP 8, Apache, MySQL, and API keys for at least one LLM (OpenAI or Anthropic) and one messaging platform.

In plain English

KopiBot is an AI-powered ordering and customer management system built for coffee shops, cafes, restaurants, and similar food and beverage businesses. It is written in PHP 8 without any large framework and runs on a standard Apache and MySQL setup. The name comes from "kopi," the Indonesian word for coffee. The system lets customers place orders through a chatbot that understands their intent using a combination of rule-based logic and large language model APIs (OpenAI and Anthropic). Customers can reach the chatbot through a website, WhatsApp, Telegram, or Discord. The same chatbot logic runs across all those channels. It walks the customer through selecting items, choosing variants and toppings, applying promo codes, and confirming an order. One installation can manage multiple branches of the same brand. Each branch can have its own menu, pricing, promotions, currency, and timezone settings. A super admin dashboard gives an overview across all branches, while each branch has its own admin account. There is also a lightweight customer portal where customers can log in using their contact details and order number to check their order history, view loyalty point balances, and repeat previous orders. The plugin system is the main extensibility mechanism. Features like loyalty points, customer CRM, payment gateways, and individual messaging channels are all plugins that can be enabled or disabled without changing the core application code. Payment gateways supported by the included plugins are Midtrans, Xendit, iPaymu, and Nicepay. WhatsApp support covers several gateway providers including Fonnte, Twilio, and the official Meta Cloud API. Installation can be done through a web-based wizard or by manually importing the SQL schema, copying the example config file, and setting database credentials. LLM API keys are managed through the admin dashboard after setup rather than in the configuration file.

Copy-paste prompts

Prompt 1
Walk me through setting up KopiBot for a single coffee shop branch, from importing the SQL schema to configuring the first WhatsApp chatbot channel.
Prompt 2
I want to add a new payment gateway to KopiBot. Show me how the plugin system works and what a minimal payment gateway plugin looks like.
Prompt 3
How does KopiBot route customer messages from WhatsApp and Telegram through the same chatbot logic? Show me the message handling code.
Prompt 4
Help me customize the chatbot conversation flow in KopiBot to add a new step for choosing a pickup time slot.
Prompt 5
I want to connect KopiBot to the Meta WhatsApp Cloud API. Walk me through the webhook setup and the required configuration fields.
Open on GitHub → Explain another repo

← kukuhtw on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.