# ZQ Platform
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](backend/) [![FastAPI](https://img.shields.io/badge/FastAPI-0.121+-green.svg)](backend/) [![Vue](https://img.shields.io/badge/Vue-3.5+-brightgreen.svg)](web/) [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](web/) **A Full-Stack Enterprise Low-Code / No-Code Development Platform Based on FastAPI + Vue 3** English | [简体中文](README.md)
## 🌐 Links - **Official Website**: - **Demo Link**: - **Demo Account**: zhangwei - **Demo Password**: 123456 *** ## 📖 Introduction ZQ Platform is a full-featured enterprise-level development platform with a decoupled frontend-backend architecture. The backend is built on **FastAPI** asynchronous framework, and the frontend is powered by **Vue 3** + **Element Plus** + **Vben Admin 5.x**. The platform integrates RBAC permission management, organization management, **online form/page design (no-code)**, instant messaging, AI chat, third-party login and organization sync, system monitoring, scheduled tasks, data source management, code generator, and many other enterprise-grade modules, significantly accelerating enterprise application development. ## 🎯 No-Code Capabilities — Fully Open-Source, Free, and Unrestricted The no-code (online development) module of ZQ Platform is one of its core highlights. Compared to mainstream no-code/low-code platforms on the market, it offers the significant advantages of being **fully open-source, completely free, and entirely unrestricted**. ### Comparison with Similar Platforms | Dimension | ZQ Platform | DingTalk YiDa | Baidu AiSuDa | NocoBase | | ---------------------- | --------------------------------------------------------------- | -------------------------------------------- | ------------------------------------------------------ | ----------------------------------------------------- | | **License** | fully open-source | ❌ Closed-source commercial | ❌ Closed-source commercial | ⚠️ AGPL 3.0 (copyleft, commercial restrictions) | | **Free to Use** | ✅ Completely free, no hidden costs | ❌ Pay per user/form/process | ❌ Pay per edition, feature limitations | ⚠️ Community edition limited, enterprise edition paid | | **User Limit** | ✅ Unlimited | ❌ Limited by plan | ❌ Limited by edition | ⚠️ Community edition has user limits | | **Deployment** | ✅ Self-hosted, data fully under your control | ⚠️ SaaS-focused, very high self-hosting cost | ⚠️ SaaS-focused, self-hosting needs enterprise edition | ✅ Supports self-hosting | | **Custom Development** | ✅ Unlimited, can modify source code freely | ❌ Not supported | ❌ Limited support | ⚠️ AGPL restricts commercial customization | | **Commercial Use** | ✅ Apache 2.0 allows free + LICENSE\_SUPPLEMENTAL commercial use | ❌ Must purchase commercial license | ❌ Must purchase commercial license | ⚠️ AGPL requires purchased license for commercial use | | **Database Support** | PostgreSQL / MySQL | Cloud database only | Cloud database only | PostgreSQL | | **Frontend Tech** | Vue 3 + Element Plus (mainstream) | Closed stack, cannot customize | Closed stack | React + Ant Design | | **Backend Tech** | Python FastAPI (async, high-performance) | Closed | Closed | Node.js + Koa | ### No-Core Features #### 📝 Online Form Designer - **Drag-and-Drop Design**: Intuitive drag-and-drop operations to build complex forms without writing any code - **Rich Component Library**: 30+ components including text input, number, date, dropdown select, cascade select, file upload, rich text, sub-forms, etc. - **Complex Layout**: Supports multi-column, grouping, table layout, tabs, and other complex page layouts - **Conditional Logic**: Field visibility conditions, validation rules, and linkage logic configuration - **Mobile Adaptation**: Automatically adapts to both PC and mobile displays #### 📄 Online Page Designer - **Visual Page Composition**: Freely combine forms, charts, data tables and other components into complete business pages - **Data Binding**: Supports data source binding and API integration for real-time interaction with backend data - **Permission Integration**: Page-level access control, seamlessly integrated with the RBAC permission system #### 📊 Dashboard Designer - **Rich Chart Components**: 20+ chart types including line, bar, pie, radar, funnel, heatmap, sankey, K-line, etc. - **Business Components**: Announcement list, to-do items, quick links, ranking list, server monitor, weather widget, etc. - **Data Filtering**: Supports interactive data filtering with date picker, input search, etc. - **Free Layout**: Drag-and-drop free layout with customizable size and position #### 🔗 Data Management - **Data Source Management**: Connect external databases (PostgreSQL / MySQL / SQL Server) as data sources - **Form Data Management**: Auto-generates list, detail, edit, and delete functionality for form data - **Data Import/Export**: Supports Excel format data import and export ### Use Cases - **Enterprise Internal Systems**: OA, CRM, ERP, inventory management, project management, etc. - **Business Process Digitalization**: Approval workflows, ticketing systems, reporting systems, etc. - **Rapid Prototyping**: Quick validation and iteration of business requirements - **SaaS Platform Construction**: Multi-tenant application development - **Data Collection & Analysis**: Surveys, data gathering, statistical analysis *** ## 🏗 Tech Stack ### Backend | Technology | Description | | ------------------------------------------------------------------ | ----------------------- | | [FastAPI](https://fastapi.tiangolo.com/) | Web framework (0.121+) | | [SQLAlchemy 2.0](https://www.sqlalchemy.org/) | Async ORM | | [Alembic](https://alembic.sqlalchemy.org/) | Database migrations | | [PostgreSQL 16+](https://www.postgresql.org/) / MySQL / SQL Server | Database | | [Redis](https://redis.io/) | Cache & messaging | | [APScheduler 4.x](https://apscheduler.readthedocs.io/) | Task scheduling | | [MinIO](https://min.io/) / OSS / Azure Blob | File storage | | [Qdrant](https://qdrant.tech/) | Vector database (RAG) | | [OpenAI](https://openai.com/) / Anthropic / DashScope | AI LLM integration | | [WebSocket](https://websockets.readthedocs.io/) | Real-time communication | ### Frontend | Technology | Description | | ---------------------------------------------------------- | ---------------------------------------- | | [Vue 3](https://vuejs.org/) | Frontend framework | | [TypeScript](https://www.typescriptlang.org/) | Type safety | | [Element Plus](https://element-plus.org/) | UI component library | | [Vben Admin 5.x](https://github.com/vbenjs/vue-vben-admin) | Admin framework | | [Vite](https://vitejs.dev/) | Build tool | | [Pinia](https://pinia.vuejs.org/) | State management | | [Vue Router](https://router.vuejs.org/) | Routing | | [i18n](https://vue-i18n.intlify.nuxt.dev/) | Internationalization (zh-CN/en-US/zh-TW) | | [ECharts](https://echarts.apache.org/) | Chart visualization | | [Tiptap](https://tiptap.dev/) | Rich text editor | | [CodeMirror](https://codemirror.net/) | Code editor | ## ✨ Key Features ### 🔐 User & Permissions - **User Management**: Full CRUD, avatar upload, password policies - **Role Management**: RBAC-based role permission assignment - **Menu Management**: Dynamic menu configuration with permission control - **Department Management**: Tree-based organization structure - **Position Management**: Position association and staffing - **Resource Permissions**: Granular field-level permission control - **Data Permissions**: Department/user-based data scope isolation ### 🏢 Organization - **Org Chart**: Visual organization chart - **Department Tree**: Unlimited hierarchical department management - **Enterprise Sync**: DingTalk, Feishu (Lark), WeCom organization/user sync ### 🔗 Third-Party Integration - **OAuth Login**: Gitee, GitHub, QQ, Google, WeChat, Microsoft, DingTalk, Feishu, WeCom - **Notifications**: Email (SMTP), SMS (Aliyun/Tencent), DingTalk bot, Feishu bot, WeCom bot, WeChat Official Account - **File Storage**: Local storage, MinIO, Aliyun OSS, Azure Blob Storage ### 📱 No-Code Capabilities - **Online Form Designer**: Drag-and-drop form builder with complex form design - **Form Data Management**: Form data CRUD with dynamic queries - **Online Page Designer**: Visual page editor - **Dashboard Designer**: Drag-and-drop dashboard builder with rich chart components - **Code Generator**: Multiple encoding modes (date sequence, serial numbers, etc.) ### 💬 Instant Messaging - **Real-time Chat**: WebSocket-based private and group chat - **Message Management**: Unread counts, mute notifications, pinned conversations - **System Notifications**: System alerts and announcement management ### 🤖 AI Capabilities - **AI Chat**: Integration with OpenAI, Anthropic (Claude), DashScope (Tongyi Qianwen) and more - **Knowledge Base**: RAG (Retrieval-Augmented Generation) based on Qdrant vector database ### ⚙️ System Tools - **Data Dictionary**: Business dictionary management (tree/list) - **System Configuration**: Dynamic system parameter configuration - **UI Configuration**: Frontend preference settings (dynamically loaded from backend) - **Scheduled Tasks**: APScheduler-based task scheduling management - **File Management**: File upload, preview, chunked upload - **Data Source Manager**: External database connection management - **API Tokens**: API access token management - **Region Manager**: Geographic data management ### 🌐 Internationalization - Chinese Simplified, Chinese Traditional, English - Fully internationalized frontend UI - Backend error message i18n support ## 🚀 Quick Start ### Prerequisites - Python 3.12+ - Node.js 20.10+ - pnpm 9.12+ - PostgreSQL 16+ - Redis ### Backend Setup ```bash cd backend # Create virtual environment python -m venv venv source venv/bin/activate # Linux/Mac # Install dependencies pip install -r requirements.txt # Configure environment variables cp env/example.env env/dev.env # Edit env/dev.env to configure database connection, etc. # Run database migrations alembic upgrade head # Start development server uvicorn main:app --reload --port 8000 ``` ### Frontend Setup ```bash cd web # Install dependencies pnpm install # Start development server (Element Plus version by default) pnpm dev ``` Visit to access the system. ### 🐳 Docker Compose Deployment The project provides a complete Docker Compose deployment solution located in the `docker/` directory. It can start PostgreSQL, Redis, backend, and frontend services with a single command. #### Prerequisites - [Docker](https://www.docker.com/) >= 24.0 - [Docker Compose](https://docs.docker.com/compose/) >= 2.20 #### Deployment Steps ```bash # 1. Navigate to the project root cd zq-platform # 2. (Optional) Configure environment variables # For production, be sure to modify JWT_SECRET_KEY, DB_PASSWORD, and REDIS_PASSWORD vim .env # 3. Build and start all services docker compose up -d # 4. View startup logs docker compose logs -f # 5. Access the system # Open http://localhost in your browser ``` #### Service Architecture ```text ┌─────────────┐ ┌──────────────────────────────────┐ │ Browser │ ───▶ │ Nginx (Port 80) │ └─────────────┘ │ ├─ Static files → Vue SPA │ │ ├─ /basic-api/* → backend:8000 │ │ └─ /ws/* → backend:8000 │ └──────────┬───────────────────────┘ │ ┌──────────────────────┼──────────────────────┐ ▼ ▼ ▼ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ │ PostgreSQL │ │ Redis │ │ Backend │ │ :5432 │ │ :6379 │ │ :8000 │ └─────────────┘ └──────────────┘ └──────────────┘ ``` #### Service Details | Service | Image | Port | Description | |---------|-------|------|-------------| | **postgres** | postgres:16-alpine | 5432 | Database | | **redis** | redis:7-alpine | 6379 | Cache (AOF persistence) | | **backend** | Custom build | 8000 | FastAPI (Uvicorn 4 workers) | | **web** | Custom build | **80** | Nginx serving frontend + proxying API/WebSocket | #### Common Commands ```bash # Build and start docker compose up -d # View logs docker compose logs -f # Stop services docker compose down # Full cleanup (removes volumes, use for initial deployment) docker compose down -v # Rebuild a specific service (after code changes) docker compose build backend docker compose up -d backend # Check service status docker compose ps ``` #### Security Notes 1. **Before deploying to production, be sure to update the following secrets in `.env`**: - `JWT_SECRET_KEY` — JWT signing key - `DB_PASSWORD` — Database password - `REDIS_PASSWORD` — Redis password 2. The default database is PostgreSQL. To switch to MySQL, modify the service configuration in `docker-compose.yml`. 3. File storage defaults to `local` mode. To use MinIO or OSS, configure it in `.env`. ## 🏛 Project Structure ``` zq-platform/ ├── backend/ # Backend Python service │ ├── app/ # Core application modules │ │ ├── base_model.py # Base model │ │ ├── base_schema.py # Common schemas │ │ ├── base_service.py # Base service │ │ ├── config.py # System configuration │ │ ├── database.py # Database connection │ │ └── ... │ ├── core/ # Core business modules │ │ ├── auth/ # Authentication │ │ ├── user/ # User management │ │ ├── role/ # Role management │ │ ├── menu/ # Menu management │ │ ├── dept/ # Department management │ │ ├── permission/ # Permission management │ │ ├── chat/ # Instant messaging │ │ ├── file_manager/ # File management │ │ ├── message/ # Notifications │ │ ├── oauth/ # Third-party login │ │ ├── code_generator/ # Code generator │ │ ├── data_source/ # Data source management │ │ ├── system_config/ # System configuration │ │ ├── ui_config/ # UI configuration │ │ ├── server_monitor/ # Server monitoring │ │ ├── redis_monitor/ # Redis monitoring │ │ ├── database_monitor/ # Database monitoring │ │ ├── redis_manager/ # Redis manager │ │ ├── database_manager/ # Database manager │ │ ├── dingtalk_sync/ # DingTalk sync │ │ ├── feishu_sync/ # Feishu sync │ │ ├── wecom_sync/ # WeCom sync │ │ ├── application/ # Application management │ │ ├── device/ # Device management │ │ ├── region/ # Region management │ │ ├── login_log/ # Login logs │ │ ├── api_token/ # API tokens │ │ ├── link_preview/ # Link preview │ │ ├── dict/ # Data dictionary │ │ ├── post/ # Position management │ │ └── resource_scope/ # Resource permissions │ ├── online_dev/ # Online development │ │ ├── form_manager/ # Form management │ │ ├── form_data_manager/ # Form data management │ │ └── page_manager/ # Page management │ ├── scheduler/ # Scheduled tasks │ ├── zq_demo/ # Demo module │ ├── alembic/ # Database migrations │ ├── main.py # Application entrypoint │ └── requirements.txt # Python dependencies │ ├── web/ # Frontend project │ ├── apps/ │ │ └── web-ele/ # Element Plus app version │ │ └── src/ │ │ ├── api/ # API interfaces │ │ ├── components/ # Business components │ │ ├── views/ # Page views │ │ ├── router/ # Route configuration │ │ ├── store/ # State management │ │ ├── locales/ # i18n │ │ └── layouts/ # Layout components │ ├── packages/ # Shared packages │ │ ├── @core/ # Core packages (UI components, utils, etc.) │ │ ├── effects/ # Business logic │ │ ├── constants/ # Constants │ │ ├── hooks/ # Composables │ │ ├── icons/ # Icon library │ │ ├── locales/ # Internationalization │ │ ├── preferences/ # User preferences │ │ ├── request/ # HTTP requests │ │ ├── stores/ # State management │ │ ├── styles/ # Styles │ │ ├── types/ # TypeScript types │ │ └── utils/ # Utility functions │ └── package.json # Frontend dependencies │ └── README.md # Project documentation ``` ## 📸 Screenshots > (Add project screenshots here) ## ✅ Environment Requirements | Dependency | Version | | ---------- | -------- | | Python | >= 3.12 | | Node.js | >= 20.10 | | pnpm | >= 9.12 | | PostgreSQL | >= 16 | | Redis | >= 6.0 | ## 🤝 Contributing Issues and Pull Requests are welcome to help improve the project. 1. Fork the repository 2. Create your feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'feat: add some amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## 📄 License This project adopts a dual-license structure: - **Core License**: [Apache License 2.0](LICENSE) — Standard Apache 2.0 open-source license, permitting free use, modification, and redistribution - **Supplemental Terms**: [ZQ-Platform Public License Supplemental Terms](LICENSE_SUPPLEMENTAL) — Additional terms governing attribution ("powered by ZQ-Platform") and trademark usage By using this software, you agree to comply with all terms in both documents. ## 📞 Contact - **Official Website**: - **Source Code**: - **Full Version Demo**: - **Open-Source Demo**: - **Author Email**: - **Issues**: [GitHub Issues](https://github.com/jiangzhikj/zq-platform/issues)