Go to file
2023-10-11 21:57:18 +02:00
.github/workflows Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
.reuse Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
appinfo Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
css Switch to vue.js tutorial app 2021-08-21 16:17:14 +02:00
doc Revert unwanted doc change and add diagram 2023-10-11 21:57:18 +02:00
extra Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
img Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
lib Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
LICENSES Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
mockup Add mockups 2021-08-21 17:37:23 +02:00
src Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
templates Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
tests Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
.editorconfig Add editorconfig for TABS! 2021-10-10 16:05:06 +02:00
.eslintrc.js Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
.gitattributes Revert unwanted doc change and add diagram 2023-10-11 21:57:18 +02:00
.gitignore Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
.php_cs-fixer.dist.php Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
babel.config.js Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
composer.json Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
composer.lock Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
Makefile Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
package-lock.json Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
package.json Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
psalm.xml Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
README.md Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
run.sh Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
stylelint.config.js Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
test.sh Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00
webpack.config.js Update to new Nextcloud app template 2023-10-11 21:55:03 +02:00

UPschooling

Place this app in nextcloud/apps/

Building the app

The app can be built by using the provided Makefile by running:

make

This requires the following things to be present:

  • make
  • which
  • tar: for building the archive
  • curl: used if phpunit and composer are not installed to fetch them from the web
  • npm: for building and testing everything JS, only required if a package.json is placed inside the js/ folder

The make command will install or update Composer dependencies if a composer.json is present and also npm run build if a package.json is present in the js/ folder. The npm build script should use local paths for build systems and package managers, so people that simply want to build the app won't need to install npm libraries globally, e.g.:

package.json:

"scripts": {
    "test": "node node_modules/gulp-cli/bin/gulp.js karma",
    "prebuild": "npm install && node_modules/bower/bin/bower install && node_modules/bower/bin/bower update",
    "build": "node node_modules/gulp-cli/bin/gulp.js"
}

Publish to App Store

First get an account for the App Store then run:

make && make appstore

The archive is located in build/artifacts/appstore and can then be uploaded to the App Store.

Running tests

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

make test

This will run the PHP unit and integration tests and if a package.json is present in the js/ folder will execute npm run test

Of course you can also install PHPUnit and use the configurations directly:

phpunit -c phpunit.xml

or:

phpunit -c phpunit.integration.xml

for integration tests

Development

Docker or Podman is required for the dev environment. Other than that composer and npm/nodejs must be installed.

Mac OS

brew install coreutils

Start dev environment

Starting the development environment with your container runtime should be as easy as

./run.sh
docker/podman exec -it --user 33 nextcloud bash -c 'cd /var/www/html/custom_apps/upschooling && make watch-js'

Frontend development

The app tutorial also shows the very basic implementation of an app frontend using Vue.js. To build the frontend code after doing changes to its source in src/ requires to have Node and npm installed.

  • 👩‍💻 Run make dev-setup to install the frontend dependencies
  • 🏗 To build the Javascript whenever you make changes, run make build-js

To continuously run the build when editing source files you can make use of the make watch-js command.