I’ve written a survey and reporting platform with Anvil. I will soon be releasing it as an open source project on GitHub.
I’d like to thank @stucork for his killer CSS and JS assistance, as well as his augment library. There were some tough obstacles that I wouldn’t have overcome without his help. I’d also like to thank @p.colbert and @shaun for some early discussions.
Wow! As a G-Suite school we use Google Forms for our survey platform. We do our course evaluations through it and then compile the results Sheets to a master. Are there specific reasons why you think would be better, especially since you work in education space?
@robert I wouldn’t say that my software is better than other survey platforms . The impetus for the project was hearing too many times, “I wish <insert survey platform here> could do X”, so I built something I could control and would be free and open source.
I want to provide something that is attractive to developers (even if it is not attractive to non-technical folks). Two examples:
Every survey is represented by a JSON specification and can therefore be modified programmatically. The following JSON represents a short survey with branching logic based on a dropdown selection:
click to expand JSON
{
"title": "simple survey",
"widgets": [
{
"id": 0,
"type": "section",
"logic": null,
"title": "my first section",
"widgets": [
{
"id": 2,
"type": "text_box",
"logic": null,
"title": "What is your name?",
"number": false,
"mandatory": true,
"placeholder": "type name here"
},
{
"id": 3,
"type": "drop_down",
"logic": null,
"title": "Select your school",
"options": "school 1\nschool 2\nschool 3",
"mandatory": false,
"placeholder": "click here to choose schools"
}
]
},
{
"id": 4,
"type": "section",
"logic": {
"func": "any",
"conditions": [
{
"id": 3,
"title": "Select your school",
"value": "school 2",
"comparison": "="
}
]
},
"title": "A section that shows if school 2 was selected",
"widgets": [
{
"id": 5,
"type": "check_box",
"logic": null,
"title": "What is your favourite thing about school 2?",
"options": "teachers\nprincipal\nrecess"
}
]
}
],
"num_widgets": 6
}
I have found that rich text and native charting are often not very flexible in most survey platforms. To address this, Markdown and Vega-lite blocks are provided.
Cool! I really like this because you could easily build an automated workflow for a persistent case like course evaluation. All the hard work has been done. Thank you!
Hi there. I’m pursuing publication for this project. The review process may take a few months once I’ve submitted the software/paper; however, the project is technically available on my github page and pypi right now (and includes fairly complete documentation).
I love what you’ve built @campopianoa, but I have noob question for you. I was able to clone your code from GitHub, but I was curious if it was possible to import it back into Anvil to see how you went about building it. As mentioned, I am very new to Anvil and would be interested to see how you set up your forms, etc.
Thanks @campopianoa. I was able to get it into Anvil, but can you elaborate on what you mean regarding “data table problem”? The app obviously didnt come through with any Data Tables, which I tried my best to add back in based on the anvil.yaml. I keep coming up with the following error “anvil.server.RuntimeUnavailableError: Server resources not available for ‘python3-full’. Please contact support@anvil.works.
at landing.select_action_survey, line 21
called from start_up, line 20”
Not sure if this is all related. Thanks in advance.
What you’ve built is amazing! You can check out this blog on enterprise survey platform for insight into some additional gamification features that can make surveys more interactive and responsive.