$ show bufanyun/hotgo
HotGo is a full-stack rapid application development framework built on GoFrame (Go) and Vue 3 (Naive UI). It provides an admin panel with RBAC, multi-tenancy, code generation, plugin/addon system, and integrations for payments (Alipay/WeChat/QQ), SMS, email, file storage (local/S3/MinIO/COS/OSS), message queues (Redis/Kafka/RocketMQ/disk), WebSocket real-time messaging, TCP server with RPC, and cron scheduling. The backend follows a modular service layer with generated DAO/entity patterns and custom ORM handlers for data filtering, tenant isolation, and sorting. The frontend is a dynamic SPA with built-in components for tables, forms, modals, uploads, and charts, plus i18n support. The codebase is production-ready but heavily relies on code generation and custom forks of GoFrame CLI tools, introducing some maintenance risk. Designed primarily for Chinese developers building enterprise admin systems.
The LLM identified 6 files worth highlighting for reuse:
Provides a unified Payment interface with implementations for Alipay, WeChat Pay, and QQ Pay. Includes order creation, notification handling, and refund logic. The abstraction allows switching payment providers without changing business code, and the SDK adapters are cleanly isolated. Reusable in any Go web application needing multi-provider payment integration.
Defines MqProducer and MqConsumer interfaces with implementations for Redis, Kafka, RocketMQ, and disk-based queues. Supports delay messages, topic routing, and producer/consumer lifecycle management. The clean abstraction and multiple driver implementations make this a portable messaging solution for Go applications.
Unified file upload interface supporting local filesystem, Tencent COS, Alibaba OSS, Qiniu, MinIO, and UCloud. Includes MIME type detection, multipart upload progress, and thumbnail support. The design allows adding new storage backends by implementing a simple interface, making it ideal for multi-cloud file management.
TCP client implementation with automatic reconnection, heartbeat keep-alive, and message serialization/deserialization. Supports RPC-style calls with request-response correlation. The client handles connection pooling and error recovery, making it reusable for any Go service needing reliable TCP communication.
A highly configurable data table component built on Naive UI's table, supporting dynamic column definitions, inline editing with cell components, row selection, pagination, sorting, and column settings (show/hide, drag). Includes a TableAction slot for custom actions and hooks for data loading and pagination. This component is a self-contained, reusable UI pattern for any Vue 3 admin panel.
A GoFrame ORM handler that automatically applies data permission filters (e.g., department scope, role-based access) to all queries. Uses a chained filter model to transparently inject WHERE clauses without modifying business logic. This pattern cleanly separates authorization from query building and can be extracted for any GoFrame-based application needing row-level security.