{"adoption": {"forks": 789, "observed_at": "2026-08-28T04:07:33.053026+00:00", "stars": 2978}, "canonical_url": "https://ross.abutalabs.com/products/dwsurvey", "card": {"archived": false, "artifact_type": "application", "description": "Survey System. 最好用的开源问卷调查系统、表单系统。", "domain": ["web-development", "developer-tools", "education", "hr", "data-science"], "enriched": true, "function": ["form-handling", "web-framework", "http-server", "search-engine", "caching", "self-hosted"], "health_score": 27, "homepage": "http://www.diaowen.net", "language": "Java", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["wkeyuan/DWSurvey"], "name": "wkeyuan/DWSurvey", "platform": ["self-hosted", "jvm"], "pushed_at": "2025-03-19T12:25:40+00:00", "repo": "wkeyuan/DWSurvey", "stars": 2978, "tags": ["survey-system", "questionnaire", "survey-form", "form-builder", "polls", "exams", "voting", "spring-boot", "vue2", "vue3", "element-ui", "element-plus", "java-backend", "open-source-survey", "diaowen", "web-server", "docker", "vue", "mysql", "elasticsearch", "redis"], "topics": ["survey", "questionnaire", "survey-system", "survey-form"], "urls": [], "use_cases": ["create online surveys and questionnaires", "build forms for data collection", "run polls and voting campaigns", "conduct online exams and quizzes", "self-host a survey platform instead of using SaaS", "collect structured feedback from employees or students", "analyze survey responses with search and reporting"], "what_it_is": "DWSurvey (调问) is an open-source survey and form system for building questionnaires, polls, exams, and voting forms, running since 2012 with a fully separated Vue frontend and Java Spring Boot backend. It supports one-click Docker deployment and uses MySQL, Elasticsearch, and Redis for storage, search, and caching.", "when_to_avoid": ["you need a lightweight embeddable form library rather than a full standalone survey application", "you cannot run Java, MySQL, Elasticsearch, and Redis infrastructure on your servers", "you require advanced features only available in the commercial V8 enterprise edition", "your project is not license-compatible with AGPL-3.0 copyleft terms", "you need a non-web (desktop/mobile-native) survey tool"], "when_to_choose": ["you need a self-hosted, fully open-source (AGPL) alternative to commercial survey tools like SurveyMonkey or Google Forms", "you want a mature, actively maintained survey system with 12+ years of development and real-world customer feedback", "your stack is Java/Spring Boot with Vue and you want to customize or extend the survey engine", "you need Docker-based one-click deployment with Elasticsearch-backed search and Redis caching for performance", "you serve enterprise, government, or education scenarios requiring on-premise data control"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dwsurvey", "repo": "wkeyuan/DWSurvey", "role": "main", "score": 28}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:33.053026+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:31:32.969672+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b0a2605de27ab50894b07e20d27fa26a15bd448e2c0217a28a846b459a801525", "fetched_at": "2026-08-28T04:07:33.053026+00:00", "kind": "readme", "missing": false, "url": "https://github.com/wkeyuan/DWSurvey"}, {"content_hash": "27bd7bcdecccae6228a519d93d84bdd8fa6957ec3cf96126ffc8a1ec84167575", "fetched_at": "2026-08-29T09:46:48.917409+00:00", "kind": "homepage", "missing": false, "url": "http://www.diaowen.net"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 12, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3370, "days_push": 532, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 28, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}