зеркало из https://github.com/nextcloud/forms.git
75 строки
2.6 KiB
Markdown
75 строки
2.6 KiB
Markdown
|
# 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)
|
||
|
```sh
|
||
|
$ cd /var/www/html/nextcloud/apps
|
||
|
$ svn co https://vis.cs.umd.edu/svn/projects/forms/forms
|
||
|
```
|
||
|
|
||
|
### Install NPM
|
||
|
```sh
|
||
|
$ apt-get npm
|
||
|
```
|
||
|
### Build the App
|
||
|
```sh
|
||
|
$ cd /var/www/html/nextcloud/apps/forms
|
||
|
$ make all
|
||
|
```
|
||
|
|
||
|
### Start Webserver / Database
|
||
|
```sh
|
||
|
$ 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
|
||
|
|
||
|
|
||
|
|