Overview
TDuck is a free, production-ready form and survey platform built with SpringBoot, Vue, and ElementUI. It enables rapid creation of questionnaires and business forms through a no-code approach while supporting custom component development.
Key Features
Form Components:
- Over a dozen component types including rating scales, cascading selectors, image carousels, provicne-city selectors, and geolocation
Form Builder:
- Logic conditions with real-time preview
- Shareable links generation
- Customizable appearance with logo, header images, and background themes
Data Management:
- Survey response collection
- Visual chart-based data analytics
- Shared templates for reuse
Integrations:
- WeChat Official Account QR code authentication
- Local and multiple cloud storage backends
- Email and SMS notifications
Technology Stack
- Backend: SpringBoot, MyBatis-Plus
- Frontend: Vue2, ElementUI
Project Structure
tduck-platform/
├── tduck-common # Shared utilities
├── tduck-account # User management
├── tduck-storage # File storage
├── tduck-project # Form project logic
├── tduck-wx-mp # WeChat integration
└── tduck-api # Client API endpoints
Prerequisites
- MySQL 5.7+
- JDK 1.8+
- Maven 3.x
- Node.js 14+
Backend Setup
- Clone the repository:
git clone https://gitee.com/TDuckApp/tduck-platform.git
-
Import as a Maven project in your IDE
-
Create the database:
CREATE DATABASE tduck DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-
Execute
doc/tduck.sqlto initialize schema -
Update database credentials in
tduck-api/src/main/resources/application-prod.yml -
Launch via
com.tduck.cloud.api.TduckApiApplication
Frontend Setup
git clone https://gitee.com/TDuckApp/tduck-front.git
cd tduck-front
npm install
npm run serve
Production build:
npm run build
Docker Deployment
Standalone Container
docker run \
-e SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3310/tduck-v4?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&tinyInt1isBit=false&nullCatalogMeansCurrent=true" \
-e SPRING_DATASOURCE_USERNAME=root \
-e SPRING_DATASOURCE_PASSWORD=tduck@tduck \
-p 8999:8999 \
-v /upload:/application/BOOT-INF/lib/upload \
tduckcloud/tduck-platform
Configuration options:
SPRING_DATASOURCE_URL— JDBC conneection stringSPRING_DATASOURCE_USERNAME— Database usernameSPRING_DATASOURCE_PASSWORD— Database password-p— Port mapping (container:host)-v— Volume mount for file uploads
Docker Compose Setup
wget https://gitee.com/TDuckApp/tduck-platform/raw/master/docker/docker-compose.yaml
docker-compose up -d
Adjust environment variables in the compose file to match your infrastructure before deployment.