xiaoju-survey
XIAOJUSURVEY is an enterprises form builder and analytics platform that allows users to create questionnaires, exams, polls, quizzes, and analyze data online.
Top Related Projects
Free JavaScript form builder library with integration for React, Angular, Vue, jQuery, and Knockout.
🔥 LimeSurvey – A powerful, open-source survey platform. A free alternative to SurveyMonkey, Typeform, Qualtrics, and Google Forms, making it simple to create online surveys and forms with unmatched flexibility.
The successor to this repository is actively maintained at https://formspree.io. Its source code is not available
Quick Overview
Xiaoju Survey is an open-source survey system developed by DiDi, a Chinese ride-hailing company. It provides a comprehensive platform for creating, distributing, and analyzing surveys, with features tailored for large-scale enterprise use. The system is designed to be flexible, scalable, and easy to integrate with existing business processes.
Pros
- Highly customizable survey creation with a wide range of question types
- Robust data analysis and reporting capabilities
- Scalable architecture suitable for enterprise-level deployment
- Integration with DiDi's ecosystem and potential for other business integrations
Cons
- Documentation primarily in Chinese, which may limit accessibility for non-Chinese speakers
- Steep learning curve for advanced features and customizations
- Limited community support compared to more widely-used survey platforms
- May require significant setup and configuration for optimal performance
Code Examples
As Xiaoju Survey is primarily a survey platform and not a code library, there are no specific code examples to showcase. The system is typically interacted with through its user interface or API endpoints.
Getting Started
Since Xiaoju Survey is a full-fledged survey system rather than a code library, there isn't a simple code snippet for getting started. Instead, users would typically follow these steps:
-
Clone the repository from GitHub:
git clone https://github.com/didi/xiaoju-survey.git -
Follow the installation instructions in the project's documentation (which are primarily in Chinese).
-
Configure the system according to your organization's needs, including setting up databases and integrating with existing systems.
-
Access the survey creation interface to start building and distributing surveys.
-
Utilize the reporting and analysis tools to gather insights from survey responses.
For detailed setup and usage instructions, refer to the project's documentation on GitHub.
Competitor Comparisons
Free JavaScript form builder library with integration for React, Angular, Vue, jQuery, and Knockout.
Pros of survey-library
- More comprehensive documentation and examples
- Wider range of customization options and question types
- Active community support and regular updates
Cons of survey-library
- Steeper learning curve due to more complex features
- Larger file size, which may impact load times for simpler surveys
Code Comparison
survey-library:
Survey.StylesManager.applyTheme("default");
var json = {
questions: [{
type: "rating",
name: "satisfaction",
title: "How satisfied are you with our product?",
mininumRateDescription: "Not Satisfied",
maximumRateDescription: "Completely satisfied"
}]
};
window.survey = new Survey.Model(json);
xiaoju-survey:
const survey = new Survey({
questions: [{
type: 'rating',
title: 'How satisfied are you with our product?',
options: [1, 2, 3, 4, 5]
}]
});
survey.render('#survey-container');
The code comparison shows that survey-library offers more detailed configuration options, while xiaoju-survey provides a simpler API for basic survey creation. survey-library's approach allows for more customization, but xiaoju-survey's syntax may be easier for beginners to understand and implement quickly.
🔥 LimeSurvey – A powerful, open-source survey platform. A free alternative to SurveyMonkey, Typeform, Qualtrics, and Google Forms, making it simple to create online surveys and forms with unmatched flexibility.
Pros of LimeSurvey
- More extensive feature set, including advanced question types and survey logic
- Larger community and better documentation
- Self-hosted option for greater control and customization
Cons of LimeSurvey
- Steeper learning curve due to more complex interface
- Heavier resource requirements, potentially slower performance
- Less modern UI design compared to Xiaoju Survey
Code Comparison
LimeSurvey (PHP):
public function actionSaveQuestionGroupOrder()
{
$request = Yii::app()->request;
$groupOrder = $request->getPost('groupOrder');
$surveyid = $request->getPost('surveyid');
$success = QuestionGroup::updateGroupOrder($groupOrder, $surveyid);
echo json_encode($success);
}
Xiaoju Survey (JavaScript):
export const saveQuestionOrder = (surveyId, questionOrder) => {
return api.post(`/surveys/${surveyId}/questions/order`, { questionOrder })
.then(response => response.data)
.catch(error => console.error('Error saving question order:', error));
};
Both repositories provide survey creation and management functionality, but LimeSurvey offers a more comprehensive solution with advanced features and greater flexibility. Xiaoju Survey, on the other hand, appears to have a more modern and streamlined approach, potentially offering better ease of use for simpler survey needs.
The successor to this repository is actively maintained at https://formspree.io. Its source code is not available
Pros of Formspree
- More actively maintained with recent updates and contributions
- Offers a hosted solution, simplifying deployment and infrastructure management
- Provides built-in spam protection and CAPTCHA support
Cons of Formspree
- Less customizable than Xiaoju Survey for complex survey scenarios
- Requires a paid plan for advanced features and higher submission limits
- May have limitations for handling large-scale surveys or data analysis
Code Comparison
Xiaoju Survey (JavaScript):
const survey = new Survey({
questions: [
{ type: 'text', label: 'Name' },
{ type: 'radio', label: 'Gender', options: ['Male', 'Female'] }
]
});
Formspree (HTML):
<form action="https://formspree.io/f/your-form-id" method="POST">
<input type="text" name="name">
<input type="email" name="email">
<button type="submit">Send</button>
</form>
Summary
Formspree is a more user-friendly option for simple form handling, offering a hosted solution with built-in features. However, Xiaoju Survey provides greater flexibility for complex surveys and data analysis. The choice between the two depends on the specific requirements of the project, such as customization needs, deployment preferences, and scalability considerations.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
XIAOJUSURVEYæ¯ä¸å¥è½»éãå®å ¨çè°ç ç³»ç»ï¼æä¾é¢å个人åä¼ä¸çä¸ç«å¼äº§åçº§è§£å³æ¹æ¡ï¼ç¨äºæå»ºåç±»é®å·ãèè¯ãæµè¯åå¤æè¡¨åï¼å¿«é满足å类线ä¸è°ç åºæ¯ã
å é¨ç³»ç»å·²æ²æ· 40+ç§é¢åï¼ç´¯ç§¯ç²¾éæ¨¡æ¿ 100+ï¼éç¨äºå¸åºè°ç ãå®¢æ·æ»¡æåº¦è°ç ãå¨çº¿èè¯ãæç¥¨ãæ¥éãæµè¯çä¼å¤åºæ¯ãæ°æ®è½åä¸ï¼ç»è¿ä¸äº¿é级æç£¨ï¼æ²æ·äºåé¢ç»è®¡ã交ååæã夿¸ éåæçå¨çº¿æ¥è¡¨è½åï¼å¿«é满足ä¸ä¸ååæã
åè½ç¹æ§
ð æç¨
-
å¤ç±»åæ°æ®ééï¼è½»æ¾å建è°ç 表åï¼ææ¬è¾å ¥ãæ°æ®éæ©ãè¯åãæç¥¨ãæä»¶ä¸ä¼ çã
-
æºè½é»è¾ç¼æï¼è®¾è®¡å¤è§åå¨æè¡¨åï¼æ¾ç¤ºé»è¾ã跳转é»è¾ãé项å¼ç¨ãé¢ç®å¼ç¨çã
-
ç²¾ç»æé管çï¼æ¯æé«æå¢éååï¼ç©ºé´ç®¡çãå¤è§è²æé管ççã
-
æ°æ®å¨çº¿åæå导åºï¼æ´å¯è°ç ç»æï¼æ°æ®å¯¼åºãåæ¶æ°æ®ç®¡çãåé¢ç»è®¡ã交ååæçã
-
AI çæé®å·ï¼æ¯æä¸é®æ¥å ¥LLMï¼å¯¹è¯å¼çæé®å·ï¼å®æ¶é¢è§æ´å¿«éã
ð¨ 好ç
-
主é¢èªç±å®å¶ï¼éé æ¨çåçï¼èªå®ä¹é¢è²ãèæ¯ãå¾çãLogoãç»æé¡µè§åçã
-
æ ç¼åµå ¥åç»ç«¯ï¼æ»¡è¶³ä¸ååºæ¯éæ±ï¼å¤ç«¯åµå ¥å¼å°é®å· SDKã
ð å®å ¨ã坿©å±
-
å®å ¨è½å坿©å±ï¼æä¾å®å ¨ç¸å ³å»ºè®¾çç»éªæå¯¼ï¼ä¼ è¾å å¯ãææè¯åºãåå¸å®¡æ¥çã
-
èªå®ä¹ Hook é ç½®ï¼è½»æ¾éæå¤æ¹ç³»ç»ä¸åç±»å·¥å ·ï¼æ°æ®æ¨ééæãæ¶æ¯æ¨ééæçã
1ã å ¨é¨åè½è¯·æ¥ç åè½ä»ç»ã
2ãä¼ä¸å个人åå¯å¿«éæå»ºç¹å®é¢åçè°ç ç±»è§£å³æ¹æ¡ã
ææ¯
1ãWeb 端ï¼Vue3 + ElementPlus
C 端å¤ç«¯æ¸²æï¼ReactNative SDK 建设ä¸
2ãServer 端ï¼NestJS + MongoDB
Java çï¼å»ºè®¾ä¸ï¼æ¬¢è¿å å ¥å ±å»º
3ãè½åå¢å¼º
æºè½åé®å·ï¼è§åä¸
项ç®ä¼å¿
ä¸ãå ·å¤å ¨é¢çç»¼åæ§åä¸ä¸æ§
-
å¶å®äºé®å·æ åååè®®è§è
é¢åæ åä¿éæ¦å¿µäºéï¼æ¯å ¨ç³»ç»çåºç¡åæ ¸å¿ãåºäºå®é ä¸å¡ç»éªï¼æ²æ·äºä¸¤å¤§ç±»ï¼
- ä¸å¡æè¿°ï¼é®å·åè®®ãé¢ååè®®
- ç©ææè¿°ï¼é¢åç©æåè®®ï¼å å«é¢åå设置å¨
-
设计è¯è¨æ¯ç³»ç»çµæ´»æ§ãä¸è´æ§çåºç³ï¼ä¿éç³»ç»æ¯æçå®é ä¸å¡è¿è½¬æ¥ææé«çç¨æ·ä½éªãå å«ä¸¤é¨åï¼
- 设计è§èï¼çµæ´»ãéåªãç»ä¸
- 交äºè§èï¼éµå¾ªç¨æ·è¡ä¸ºç¹å¾ï¼éµå¾ªäº§åå®ä½ï¼éµå¾ªæççç¨æ·ä¹ æ¯
-
æè§å³æå¾ï¼æå»ºæ¸²æä¸è´æ§é«
å®é ä¸å¡ä½¿ç¨ä¸å å«é®å·çæåææ¾ä½¿ç¨ï¼å³å¯¹äºç³»ç»çæå»ºç«¯å渲æç«¯ãæä»¬å°é¢ååºæ¯å设计ï¼ä»¥æ»¡è¶³ä¸ä»½é®å·ä»å å·¥çäº§å°ææ¾åºç¨çé«åº¦ä¸è´ã
-
é¢åç©æå设计ï¼èªç±å®å¶æ©å±
é¢åæ¯é®å·ææ ¸å¿çç»æé¨åï¼èé¢åå¯é ç½®åè½åå³å®äºä¸å±ä¸å¡å¯æ©å±çåºæ¯ä»¥åç³»ç»èªèº«å¯å¤ç¨çåºæ¯ã é¢åæ¶æè®¾è®¡ä¸ï¼ä¸»ææ¯ä¸ç±»é¢åæ¥æéç¨åºç¡è½åï¼æ¯ä¸ç§é¢åæ¥æåååç¹æ§è½åï¼å¹¶ä¿éé«åº¦å®å¶åã
-
åè§å»ºè®¾æ²æ·ç§¯ç´¯ï¼å®å ¨è½åæå±æ§é«
æ°æ®å å¯ä¼ è¾ãææä¿¡æ¯ç²¾ç»åæ£æµãæç¥¨é²å·çè½åï¼ä¿éé®å·åå¸ãæ°æ®åæ¶é¾è·¯å®å ¨æ§ã
äºãè½»éå设计ï¼å¿«éæ¥å ¥ãçµæ´»æ©å±
-
产åçº§å¼æºæ¹æ¡ï¼å¿«é产åºä¸å¥è°ç æµç¨
å´ç»é®å·çå½å¨ææä¾äºå®æ´ç产ååè½åï¼å å«ç¨æ·ç®¡ç: ç»å½ã注åãé®å·æéï¼é®å·ç®¡ç: åãç¼ãæãæ¶ãæ°æ®åæï¼å¯å¿«éæå»ºç¹å®é¢åçè°ç ç±»è§£å³æ¹æ¡ã
-
é®å·è®¾è®¡å¼ç®±å³ç¨ï¼éä½é¢åå¤æåº¦
é®å·ç»æå ·æé«çµæ´»æ§ï¼æ¤ä¸å¡ç¹å¾å¸¦æ¥é®å·ç¼è¾è½åçé«å¤ææ§è®¾è®¡ãæä»¬å°é®å·ç¼è¾åå为äºå¤§åé¢åï¼è¿è¡äº§åè½åèç±»ï¼åæ¶æå¯¼ç³»ç»æ¨¡åå设计åå¼åãåºäºæ¨¡åç¼æå管çï¼è½å¤å¼ç®±å³ç¨ã
-
äºæ¬¡å¼åææ¬ä½ï¼è½»æ¾å®å¶ä¸å±è°ç ç³»ç»
å ¨ç³»ç»è®¾è®¡åååºäºåè®®æ ååãåè½æ¨¡ååã管çé ç½®åï¼å¹¶æä¾äºä¸äºå宿´çææ¡£åå¼å忩屿åã
-
é¨ç½²ææ¬ä½ï¼å¿«éä¸çº¿
åå端åç¦»ï¼æä¾ Docker åæ¹æ¡ï¼æä¾äºå®åçé¨ç½²æå¯¼æåã
æ¬å°å¼å
请æ¥ç æ¬å°å®è£ æå æ¥å¯å¨é¡¹ç®ã
// æå¡å¯å¨
cd server
npm install
npm run local
// 页é¢å¯å¨
cd web
npm install
npm run serve
// B端 http://localhost:8080/management
// C端 http://localhost:8080/render/:surveyPath
å¿«éé¨ç½²
æå¡é¨ç½²
请æ¥ç é¨ç½²æå¯¼ ã
Docker éåçæ¬éæ©
æä»¬æä¾ä¸¤ä¸ª Docker éåçæ¬ä¾æ¨éæ©ï¼
-
slim çæ¬ (
xiaojusurvey/xiaoju-survey:latest-slim):- åºäº
node:18-slimï¼éåä½ç§¯æ´å° - éåç产ç¯å¢é¨ç½²
- å å«è¿è¡æéçæå°ä¾èµ
- åºäº
-
宿´çæ¬ (
xiaojusurvey/xiaoju-survey:latest-full):- åºäº
node:18ï¼å å«å®æ´çå¼åå·¥å · - éåå¼åç¯å¢æéè¦è°è¯çåºæ¯
- å
å«
curlãvimãgitçå·¥å ·
- åºäº
å¨ docker-compose.yaml ä¸ä¿®æ¹éåæ ç¾å³å¯åæ¢çæ¬ã
ä¸é®é¨ç½²
ï¼æåç¼åä¸ï¼
Star
弿ºä¸æï¼å¦æè¯¥é¡¹ç®å¯¹ä½ æå¸®å©ï¼è¯· star ä¸ä¸ â¤ï¸â¤ï¸â¤ï¸ï¼ä½ çæ¯ææ¯æä»¬æå¤§çå¨åã
交æµç¾¤
宿¹ç¾¤ä¼åå¸é¡¹ç®ææ°æ¶æ¯ã建设计ååç¤¾åºæ´»å¨ï¼æ¬¢è¿ä½ çå å ¥ã
ä»»ä½é®é¢ååä½å¯ä»¥èç³»å°å©æã
æ¡ä¾
å¦æä½ ä½¿ç¨äºè¯¥é¡¹ç®ï¼è¯·è®°å½åé¦ï¼æå¨ä½¿ç¨ï¼ä½ çæ¯ææ¯æä»¬æå¤§çå¨åã
Future Tasks
欢è¿äºè§£é¡¹ç®åå±åå ±å»ºï¼ä½ çæ¯ææ¯æä»¬æå¤§çå¨åã
è´¡ç®
å¦æä½ æ³æä¸ºè´¡ç®è æè æ©å±ææ¯æ ï¼è¯·æ¥çï¼è´¡ç®è æåï¼ä½ çå å ¥ä½¿æä»¬æå¤§çè£å¹¸ã
CHANGELOG
å ³æ³¨é¡¹ç®é大忴ï¼MAJOR CHANGELOGã
Top Related Projects
Free JavaScript form builder library with integration for React, Angular, Vue, jQuery, and Knockout.
🔥 LimeSurvey – A powerful, open-source survey platform. A free alternative to SurveyMonkey, Typeform, Qualtrics, and Google Forms, making it simple to create online surveys and forms with unmatched flexibility.
The successor to this repository is actively maintained at https://formspree.io. Its source code is not available
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot