📝 Simple form & survey app for Nextcloud
Перейти к файлу
John Molakvoæ (skjnldsv) b4fb52eb54
Bump eslint & browserlist
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2020-02-26 13:39:43 +01:00
.github/workflows Use app-tutorial actions 2020-02-26 13:39:16 +01:00
.tx initial commit 2019-05-13 19:15:45 -04:00
appinfo Up max-version to 19 for latest server master 2020-01-23 10:22:09 +07:00
css Hotfixcss 2019-10-25 16:32:58 +02:00
img Add new app icon, fix #13 2019-06-12 17:58:47 +02:00
js Update survey.js and set description correctly 2019-07-24 00:22:25 +02:00
l10n [tx-robot] updated from transifex 2020-02-21 03:25:59 +00:00
lib Make 'unique' an integer 2020-02-18 00:55:02 +01:00
screenshots Added screenshots for app 2019-05-28 21:12:54 -04:00
src Use direct packages for lighter build 2020-02-26 13:26:40 +01:00
templates Version 1.0.3 2019-05-14 03:03:59 -04:00
tests Kill the tests for now 2019-08-30 10:56:15 +02:00
.editorconfig initial commit 2019-05-13 19:15:45 -04:00
.eslintrc.js Bump eslint & browserlist 2020-02-26 13:39:43 +01:00
.gitignore Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00
.l10nignore Version 1.0.3 2019-05-14 03:03:59 -04:00
.scrutinizer.yml initial commit 2019-05-13 19:15:45 -04:00
.stylelintrc.js Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00
CHANGELOG.md initial commit 2019-05-13 19:15:45 -04:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2020-02-12 16:14:42 +01:00
COPYING initial commit 2019-05-13 19:15:45 -04:00
Forms_Support.md update forms_support 2019-05-14 03:18:20 -04:00
ISSUE_TEMPLATE.md initial commit 2019-05-13 19:15:45 -04:00
LICENSE Initial commit 2019-05-13 01:53:28 -04:00
Makefile Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00
README.md Update readme 2019-09-09 10:06:58 +02:00
_config.yml initial commit 2019-05-13 19:15:45 -04:00
babel.config.js Bump eslint & browserlist 2020-02-26 13:39:43 +01:00
composer.json Add github actions 2020-02-25 20:05:59 +01:00
package-lock.json Bump eslint & browserlist 2020-02-26 13:39:43 +01:00
package.json Bump eslint & browserlist 2020-02-26 13:39:43 +01:00
phpunit.integration.xml initial commit 2019-05-13 19:15:45 -04:00
phpunit.xml initial commit 2019-05-13 19:15:45 -04:00
webpack.common.js Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00
webpack.dev.js Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00
webpack.prod.js Update configs and removed unused dependencies 2019-09-09 09:59:50 +02:00

README.md

Forms

Forms allows the creation of shareable forms, with multiple question types and privacy settings.

Note: This app is tested with Apache2 webserver, MySQL database, and apt-get package manager. To use alternatives, replace the relevant commands with those of your technology. This document assumes that a working NextCloud development environment has been installed. See https://docs.nextcloud.com/server/stable/developer_manual/general/devenv.html for help with this.

Build the app

# set up and build for production
make

# install dependencies
make dev-setup

# build for dev and watch changes
make watch-js

# build for dev
make build-js

# build for production with minification
make build-js-production

Running tests

You can use the provided Makefile to run all tests by using:

ps: only works if you're using php locally and have forms installed info your apps default folder

make test

✌️ 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. 😌

❤️ How to create a pull request

This guide will help you get started:

Code Overview

The following are the most important code files for development of the Forms App. Note: all paths are relative to nextcloud/apps/forms/

  • lib/Controller/apiController.php: The main API of the application. The functions defined in this file are called from http requests, and interface with the database

  • lib/Controller/pageController.php: Passes objects between screens

  • lib/Db/: All the files where database entities are defined and SQL queries are written. Mapper files define functions that retrieve data from the database

  • src/js/

    • Main.js: where Vue app is created
    • App.vue: The root component for the vue app
    • Router.js: Defines URLs that can be navigated to from the Vue app
  • src/js/components/

    • formsListItem.vue: Defines the list items (created surveys) within the forms app home page
    • quizFormItem.vue: Questions (for any survey) are defined as a quizFormItem here
  • src/js/views/

    • Create.vue: File where survey creation page is handled

    • List.vue: File where list of created surveys is handled (located on the forms app home page)

    • Results.vue: File where page that displays survey results is handled

    • appinfo/routes.php: Defines server endpoints that can be accessed by the client

  • /js/vote.js: File that contains the logic for the response page and responding to a form

  • /css/vote.scss: File that contains CSS formatting for the response page

  • /templates/vote.tmpl.php: File that contains the form template that is dynamically populated by the database