Skip to content

carstenhag/vue-planner

Repository files navigation

Planner für DHBW

Live version at https://planner.chagemann.de/

Goals

Planner für DHBW is a web app that displays course information for DHBW Mosbach students. Current events and news pertaining to the StuV are also displayed.
A future goal is making general information available for students of the DHBW Mosbach.

Currently, a website with the courses and a native Android App exist.

As far as I know, the iOS version of the app does not have all features of the Android one. There are no developers yet that have taken their time to tackle this issue.

My idea was to have a web app that can be developed once and then distributed and used on the three major platforms - Web, Android and iOS. This can be done having one JavaScript codebase that gets deployed as a website. Web browsers can access it directly and native apps simply wrap around this website, e.g. on Android launching a WebView with the URL pointing to our server.

So far I'm aiming to get close to a feature parity with the Android app, using Vue.js

The following is a list of functional requirements:

  • Display the courses (From the DHBW, .ics files) of a module
  • Tab with current events organized by the StuV (Google Calendar, JSON API), possibly other events that may be interesting for students
  • Tab with current news from the StuV (RSS/JSON Feed on a WordPress instance)
  • Display links to the Studierendenwerk for general information stuff
  • Display courses and events of the next two days in an "Aktuell" tab
  • At lunch times, show a button to open the Mensaplan

Server configuration (caddy)

Had to add a proxy between both the app and the DHBW calendar server, and the StuV WordPress server because javascript needs a CORS header which those servers don't deliver with them.

Any other server apart from caddy can be used too, the config just needs to be adapted.


proxy.chagemann.de {
cors
proxy / http://ics.mosbach.dhbw.de/
proxy /feed https://stuv-mosbach.de/feed/
}

Example configuration for the repo with git webhook support, requires http.git caddy plugin.

planner.chagemann.de {
root vue-planner/dist/

# 
git {
  repo github.com/carstenhag/vue-planner
  path ..
  hook /webhook WEBHOOK_SECRET
  hook_type github
  then npm install
  then npm run build
}

# Required so for example /vorlesungen/INF16B can be accessed/routed by Vue
rewrite {
    regexp .*
    to {path} /
}

}

Build

Building the app is pretty easy, you just need a working node.js and npm setup on your machine.
Not exactly sure which version is needed, just get one of the latest ones and it should work.

npm install

# start a local webserver and run the app
npm run dev

# build for production
npm run build

LICENSE has to be added yet, but it will probably be GPL-3-licensed just like the Android app.

Releases

No releases published

Packages

No packages published

Languages