3fb4822fa4 | ||
---|---|---|
.tx | ||
appinfo | ||
css | ||
img | ||
js | ||
l10n | ||
lib | ||
screenshots | ||
src/js | ||
templates | ||
tests | ||
.babelrc.js | ||
.editorconfig | ||
.eslintrc.js | ||
.gitignore | ||
.l10nignore | ||
.scrutinizer.yml | ||
.travis.yml | ||
CHANGELOG.md | ||
COPYING | ||
Forms_Support.md | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
_config.yml | ||
composer.json | ||
package.json | ||
phpunit.integration.xml | ||
phpunit.xml | ||
webpack.common.js | ||
webpack.dev.js | ||
webpack.prod.js |
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.
Installation
Download the Forms Codebase
(Placeholder, not sure if we decided we wanted this in this version since the app is not yet on git)
$ cd /var/www/html/nextcloud/apps
$ svn co https://vis.cs.umd.edu/svn/projects/forms/forms
Install NPM
$ apt-get npm
Build the App
$ cd /var/www/html/nextcloud/apps/forms
$ make all
Start Webserver / Database
$ service apache2 start
$ service mysql start
Enable the App
- Open NextCloud in your browser of choice (Chrome)
- Click on the user icon in the top right of the screen, and select Apps from the drop down menu
- Find the Forms app in the list and click enable
- The app will now be fully functional! The forms icon will appear on the top toolbar of NextCloud after it has been enabled
To Rebuild
$ cd /var/www/html/nextcloud/apps/forms
$ npm run build
$ service Apache2 restart
$ service mysql restart
Refresh the page in your browser to reflect the changes.
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
-
Vote.vue: File where voting page (responding to the survey) 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
-