Solid Health Application

Name of Application: Solid Health
Report issues at: Profile - DylanStorey - Solid Community Forum

Description: Application for storing and accessing medical health records in Solid pods

Code Repository: Dylan Storey / Solid Health App · GitLab

Hi all,

Over the past few months, I’ve been attempting to develop a Solid application for storing medical records in user’s pods and granting access to other users as required, with the overall aim of using my developer experience as an evaluation of the maturity of the Solid ecosystem.

I’ve found that most of the functionality that I wanted from the application is supported by the Solid package that I was using, but unfortunately I was unable to get the application hosted on a live server due to issues with the package when deploying - so the application can only be run locally for the moment.

I’m posting about this here because I believe I’ve developed some features in the application that may be useful to other developers using Solid, namely:

  1. Dynamic building of a Thing based on the presence or absence of data provided by user input (podWriter.js:160)

  2. Generic way of reading and displaying properties and values of Things stored in a Dataset, regardless of property names of the Thing (index.js:672)

  3. Generic function to insert new Things into a Dataset, given an object containing property-value pairs and the Dataset URI (podWriter.js:225)

  4. Deleting a solid Container, by cycling through contained Containers and Datasets and deleting each before deleting the overall Container (podWriter.js:260)

  5. Retrieve all Things within a Dataset and provide access for an individual to a subset of the Things based on search condition, by inserting the subset to a new Dataset (index.js:893)

  6. A diagram to show the application data stored in the user’s pod, including the overall number of Containers, Datasets and Things related to the application (index.js:984)

**Terminology from Glossary — Inrupt JavaScript Client Libraries

Hopefully some of you find some of the source code useful and can use it in your own development. If anyone has any feedback about any aspect of the application please comment or send me a message - I’d love to hear it!

Also a huge thanks to those of you who have helped me with development issues I’ve had throughout the process. As you probably know it can be quite frustrating developing in this space where few resources exist on the Web, so the help of this community was truly invaluable.

Thanks,
Dylan

**Edit: After much help from @ThisIsMissEm, the app is now live at Solid Health App if anyone would like to have a look. Thanks again Emelia!

5 Likes

Hi @DylanStorey i regularily host dist folder of vuejs apps on github-pages.
I don’t now parcel and react but vuejs uses webpack . What is the issue when packaging the app?

When running the app in the browser, after logging in, the package fails at the call to ‘handleRedirectAfterLogin’ part of the login process. Error details shown below:

It works fine when run locally but when I tried to run it on the remote server the package behaves differently for some reason.

Someone on the Gitter developer chat mentioned missing a ‘jose’ dependency but I haven’t seen anything about that in documentation and am not sure how to include it or what difference it would make

I tried running with webpack too but got the same error. It seems like it must be an error to do with the ’ inrupt/solid-client-authn-browser’ package itself.

I’ve left more replies in the gitter thread, which may help (I’m the someone, I’m on the Inrupt SDK team) — I just don’t remember to check gitter and here as much as email or github issues.

Thanks so much, I’ll have a look now