Getting help
Smile is a free, open-source project and is provided with no warranty or guarantee of support. Effective use of this project assumes you know modern Javascript syntax, have some familiarity with typing commands in a terminal program, git, GitHub, and understand basic concepts about web servers and web design. Smile is designed to make life easier for programmers/developers. There are better packages and services for people looking for no-code solutions that avoid the need to program altogether including Qualtrics, SurveyMonkey, and Google Forms.
If you need help or are stuck we have collected some useful resources.
Documentation
Obviously, if you are reading this you are aware of the extensive documentation. You might be surprised how often common issues can be addressed by carefully reading the documentation. We put a lot of time into making it as clear and comprehensive as possible and keep it up to date.
Other resources
Technically, Smile is simply a collection of open-source tools that have been integrated into a single project. As a result, you can also look at the documentation for the underlying tools. For example, the following links might help learn more about the underlying technologies:
Javascript
Most of the code you need to write for Smile is in Javascript. Here are are useful resources for learning Javascript:
- Modern Javascript - a great resource for learning Javascript
- Interneting is hard - Friendly web development tutorials for complete beginners
Vue.js
The core of Smile is built using the Vue.js framework. Here are some resources for the parts of the Vue.js ecosystem used in the project:
- Learn Vue - useful website for learning the Vue.js framework
- Vuejs tutorial - A tutorial for learning Vue.js
- Vuejs docs - Complete docs for Vue.js
- Vue Router used to jump between different pages on the timeline
- Pinia is used to manage the underlying application state
- VueUse collection of Vue utilities used in the project
Vite
Vite is the build tool used in the project. This compiles together the various libraries used during development so they load quickly on the participant's browser. In addition, Vite enables fast development of complex front-end Javascript applications. Here are some resources for learning more about Vite:
- Vite - the Vite docs are quite comprehensive
- Vitepress - this documentation website uses Vitepress, a static site generator built on Vite
CSS/Styling
- Tailwind CSS - the CSS framework used in the project. The docs are quite intuitive.
Github
- Git for beginners
- Github Actions - used to deploy the project
Unix/Shell commands
- The missing semester of your CS education - how to use the shell/terminal program, git, security concepts/encryption
- Shell.how - helps you learn and interpret different shell/terminal commands
GitHub Discussions
If you can't find an answer to your question in the documentation, you can try posting in the GitHub Discussions on the base repo. This is a good place to ask questions, share tips, and propose new features.
GitHub Issues
If you think you have found a bug in the software, you can open an issue on the GitHub Issues. Please provide as much information as you can and also first search existing issues (both open and closed).