$ show yangjian102621/geekai
GeekAI is a full-stack, production-grade AI creation platform providing chat, image generation (MidJourney, DALL-E, Jimeng, Stable Diffusion), video generation (Sora, Veo, Keling, MiniMax, Wan, Doubao), music generation (Suno), and PPT creation. The system features a Go + Gin backend with MySQL/Redis persistence and a Vue 3 (Element Plus/Vant) frontend supporting both desktop and mobile interfaces. It includes a complete monetization framework with power credits, multiple payment gateways (Alipay, WeChat Pay, EPay), user invite/reward system, and an administrative dashboard for managing users, models, API keys, and system configurations. Architecturally, the backend follows a layered pattern with handlers, services, and stores. Key design patterns include an adapter pattern for video generation providers (allowing easy addition of new AI services), a factory pattern for OSS uploaders (local, MinIO, Qiniu, Aliyun, Tencent), and an abstraction for payment integrations. Async tasks (e.g., image generation, video creation) are handled via Redis-based queues with polling for status updates. The frontend uses Pinia stores for state management and includes reusable UI components like custom tabs, file uploaders, and parameter builders. The codebase demonstrates solid engineering with moderate code quality. It has several genuinely reusable patterns (video adapter, upload manager, payment service interface) but also exhibits duplication between desktop and mobile views, some hardcoded configuration, and reliance on many third-party SDKs that may drift over time. While not exceptionally polished, it is a fully functional commercial-grade platform suitable for deployment and customization.
The LLM identified 4 files worth highlighting for reuse:
Defines the VideoAdapter interface with CreateTask and QueryTask methods, providing a clean abstraction for multiple video generation providers (Sora, Veo, Keling, MiniMax, Wan, Doubao). Each provider implements this interface, allowing plug-and-play addition of new video AI services without modifying core business logic.
Implements a manager that selects an OSS uploader implementation (local, MinIO, Qiniu, Aliyun, Tencent) based on configuration at runtime. Provides a unified UploadFile method, enabling the rest of the application to store files without depending on specific cloud providers. Demonstrates clean separation of concerns and easy extensibility.
Defines a PayService interface with common payment operations (create, query, verify), implemented by Alipay, WeChat Pay, and EPay services. This abstraction decouples order handling from payment processing, allowing the system to support multiple payment methods interchangeably and add new ones with minimal changes.
A reusable sliding-indicator tab component built with Vue 3 that supports dynamic width control and dark mode. Used across desktop and mobile views, it encapsulates tab switching logic and styling, reducing duplication and providing a consistent UI pattern.