Skip to content


Repository files navigation

MyGrades server

Apache2 License Travis CI master

Warning: Discontinued since 09/11/2019

MyGrades server is used as the backend for the Android app MyGrades. It is written in PHP using the Laravel framework.

Its two main purposes are:

  • define rules on how to scrape a students grades for specific universities
  • serve these rules via a simple REST api to the clients

It is important to note, that the server does not receive or store any information about the user such as the username or password, nor his or her grades. These will be used solely on the client.


Prerequisites: Docker and Docker Compose

Please add the following entries to your hosts file.

Alternatively you can adjust the VIRTUAL_HOST environment variable in docker-compose.yml to your needs.

git clone
cd mygrades-server

# set up DB configuration, only executing the commands and not modifying the files works out of the box ;)
cp docker/db/database.example docker/db/database
cp docker/db/password.example docker/db/password
cp docker/db/root-password.example docker/db/root-password
cp docker/db/user.example docker/db/user
cp .env.example .env # edit to your needs (only DB_* necessary)

# set folder permissions
chown -R <webserver_user>:<webserver_group> /path/to/mygrades-server
find /path/to/mygrades-server -type f -exec chmod 644 {} \;
find /path/to/mygrades-server -type d -exec chmod 755 {} \;
chmod -R ug+rwx /path/to/mygrades-server/storage /path/to/mygrades-server/bootstrap/cache

# run containers and install dependencies
cd docker

# export USER_ID from current <webserver_user> on production
export USER_ID="$(id -u):$(id -g)"

# run mygrades-server
docker-compose -f up -d
docker exec php composer install

# migrate and seed database
docker exec php php artisan migrate:install
docker exec php php artisan migrate:refresh --seed

# stop & remove containers
docker-compose down

Point your app to the server url


To execute the unit tests simply run

docker exec php phpunit

Used third-party libraries


This project is licensed under the Apache Software License, Version 2.0.

See LICENSE for more information.

Copyright 2015 - 2018 Jonas Theis, Tilman Ginzel

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.