Skip to content

Latest commit

 

History

History
150 lines (112 loc) · 5.04 KB

menubar-app-to-check-who-is-on-vacation.md

File metadata and controls

150 lines (112 loc) · 5.04 KB

Menubar app to check who is on vacation

The corresponding challenge is #92.

Problem

Manually checking your calendar to quickly see who is on vacation is a hassle. It would be easier to have menubar app that shows in a glance who is on vacation today.

Approved solution

We developed a menubar app that shows who is when on vacation. You find a screencast of the app here and below you find a screenshot.

img.png

We made the following important technological decisions and assumptions:

  • We use the Community Solid Server-specific Client Credentials to log in and authenticate. There is an ongoing discussion in the Solid-OIDC spec regarding the need for something like Client Credentials.
  • We use Electron because it allows us to reuse existing JavaScript libraries and make the app cross-platform.
  • Users have to manually provide the urls of the vacation calendars. We didn't include the automatic discovery of this information.
  • We assume that the vacation calendar lists the dates via the predicate https://data.knows.idlab.ugent.be/person/office/#date.
  • We assume that the name in the WebID is provided via the predicate http://schema.org/name.

User flow

Actors/actresses

  • Menubar app
  • User of the application

Preconditions

  • The user has Node.js installed.

Steps

  1. Clone the repo of the app via

    git clone https://github.com/SolidLabResearch/solid-menubar-app.git
  2. Install the dependencies via

    npm i
  3. Navigate to the folder pod-example-data via

    cd pod-example-data
  4. Populate the test pods on the SolidLab Playground via

    node create-example-pods.js
  5. Go back to the root of the repo via

    cd ..
  6. Copy the example config file that works with the test pods via

    cp pod-example-data/config.json config.json
  7. Start the app via

    npm start
  8. The app appears in the menubar. The icon is an umbrella on a beach.

Postconditions

  • When you click on the icon, it shows the vacation days.

Follow-up actions

  • Clarify use of the Community Solid Server-specific Client Credentials in the README of the app (issue).
  • The app stores the id and secret used by the Client Credentials in a JSON file on the disk of the user. Are there suggestions on how to make this safer (issue)?
  • Clarify why the app does not use BashLib (issue).
  • Regarding the code to populate the test pods:
    • Investigate if this code should be in a separate library (issue).
    • Clarify why this code did not use BashLib (issue).

Future work

  • There is an ongoing discussion in the Solid-OIDC spec regarding the need for something like Client Credentials. We also have a challenge about that.
  • How can the app use Solid-OIDC for authentication instead of Client Credentials (issue)? That way the app works with all Solid identity providers.