The corresponding challenge is #92.
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.
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.
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
.
- Menubar app
- User of the application
- The user has Node.js installed.
-
Clone the repo of the app via
git clone https://github.com/SolidLabResearch/solid-menubar-app.git
-
Install the dependencies via
npm i
-
Navigate to the folder
pod-example-data
viacd pod-example-data
-
Populate the test pods on the SolidLab Playground via
node create-example-pods.js
-
Go back to the root of the repo via
cd ..
-
Copy the example config file that works with the test pods via
cp pod-example-data/config.json config.json
-
Start the app via
npm start
-
The app appears in the menubar. The icon is an umbrella on a beach.
- When you click on the icon, it shows the vacation days.
- 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:
- 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.