Schul-Cloud Core Server
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
config [WIP] N21/merge (#452) Feb 11, 2019
migrations SC-931: Fix key extraction for old files (#494) Feb 22, 2019
public WIP [ci-skip] Feb 8, 2017
src Merge branch 'master' into SC-901-fix-student-homework-archive Feb 20, 2019
test [WIP] Geschlecht u. Forschung entf.; Einv.E. von 18 -> 16 (#456) Feb 19, 2019
.dockerignore [WIP] N21/merge (#452) Feb 11, 2019
.gitignore [WIP] N21/merge (#452) Feb 11, 2019
.npmignore travis Oct 19, 2016
.travis.yml fix firstLogin >18 (#469) Feb 13, 2019
Dockerfile [WIP] N21/merge (#452) Feb 11, 2019
LICENSE Update README: Update Travis CI badges (#414) Jan 16, 2019 [WIP] N21/merge (#452) Feb 11, 2019
crontab [WIP] N21/merge (#452) Feb 11, 2019
package-lock.json SC-931: Migrate script for fixing old file links in topic contents (#490 Feb 21, 2019
travis_rsa.enc [WIP] N21/merge (#452) Feb 11, 2019
yarn.lock yarn.lock Nov 7, 2018

Schul-Cloud Server

Based on Node.js and Feathers

Dev: Build Status Production: Build Status

Code Coverage Version

Swagger UI documentation is available here. When running the server locally, it is served at http://localhost:3030/docs/.


  • node.js
  • mongoDB


You will need the client as well. Setup instructions for Windows and Linux are available.


  1. Go into project folder
  2. run mongod
  3. run npm start
  4. run npm run setup

Run with Debug in Visual Studio Code

#Change in launch.json

    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit:
    "version": "0.2.0",
    "configurations": [
            "type": "node",
            "request": "launch",
            "name": "Launch SC-Server",
            "program": "${workspaceFolder}/src/index.js",
            "skipFiles": [


How to name your branch

  1. Take the last part of the url of your Trello ticket (e.g. "8-setup-feather-js")
  2. Name the branch "yourname/trelloid" (e.g. "nico/8-setup-feather-js")


Run tests

  1. Go into project folder
  2. run npm run test

Create tests

  1. Create a folder for the "service" you're working on in "/test/services"
  2. Create a file "user.test.js" for frontend tests (e.g. clicking a link or check if url is available)
  3. Create a file "unit.test.js" for backend tests (e.g. calculating a number)

Try to cover as many methods as possible unit test wise - goal is 100% of course, so one test per method.


Default branch: develop

  1. Go into project folder
  2. Run the tests (see above)
  3. Commit with a meanigful commit message(!) even at 4 a.m. and not stuff like "dfsdfsf"
  4. Checkout to master branch
  5. Run git pull
  6. Checkout to the branch you want to upload
  7. run git rebase -p develop (not git merge!) and solve merge conflicts if needed
  8. run git push