Skip to content

nextcloud/forms

Nextcloud Forms

Downloads Code coverage Dependabot status Start contributing

πŸ“ Simple surveys and questionnaires, self-hosted

Straightforward form creation

Simple sharing and responding

Response visualization and exporting

  • πŸ“ Simple design: No mass of options, only the essentials. Works well on mobile of course.
  • πŸ“Š View & export results: Results are visualized and can also be exported as CSV in the same format used by Google Forms.
  • πŸ”’ Data under your control! Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.
  • πŸ™‹ Get involved! We have lots of stuff planned like more question types, collaboration on forms, and much more!

πŸ— Development setup

  1. ☁ Clone this app into the apps folder of your Nextcloud: git clone https://github.com/nextcloud/forms.git
  2. πŸ‘©β€πŸ’» In the folder of the app, run the command composer i && composer i && npm ci && npm run build to install dependencies and build the Javascript.
  3. βœ… Enable the app through the app management of your Nextcloud
  4. πŸŽ‰ Partytime! Help fix some issues and review pull requests πŸ‘

πŸ§™ Advanced development stuff

To build the Javascript whenever you make changes, you can use npm run build. Or npm run watch to automatically rebuild on every file save.

You run several tests by:

  • npm run lint for JavaScript linting
  • npm run stylelint for CSS linting
  • composer cs:check for the Nextcloud php coding standard
  • composer lint for php linting
  • composer test:unit and composer test:integration to run the php functionality tests
  • composer psalm for static code analysis

β™₯ How to create a pull request

This guide will help you get started:

✌ Code of conduct

The Nextcloud community has core values that are shared between all members during conferences, hackweeks and on all interactions in online platforms including Github and forums. If you contribute, participate or interact with this community, please respect our shared values. 😌