Wout Salembier - Digital Developer & Designer

Card Background

Solid applications my experience with building one

Toen ik begon te werken voor Wheelhouse, had ik de eer om mijn eerste Wheelhouse-project samen met Konsolidate te doen. Konsolidate gelooft dat mensen controle moeten krijgen over hun gegevens. In deze blogpost zal ik precies uitleggen wat Solid is en hoe ik ermee heb mogen werken.

Wat is Solid technology?

Solid is een opwindend nieuw project geleid door Tim Berners-Lee, de uitvinder van het World Wide Web. Het Solid-project streeft ernaar om op ingrijpende wijze te veranderen hoe webapplicaties vandaag de dag werken, resulterend in ware gegevensbezit en verbeterde privacy. Solid biedt ons drie hoofdpunten: ware gegevensbezit, modulaire vormgeving en hergebruik van bestaande gegevens.

Solid bestaat uit Solid-servers en Solid-pods. Een Solid-server host een of meer Solid-pods. Pods zijn de plaatsen waar je jouw gegevens opslaat:

  • Elke Pod wordt volledig beheerd door de eigenaar van de Pod (dat wil zeggen, jij)
  • De gegevens en toegansregels van elke Pod zijn volledig afzonderlijk van andere Pods

Uiteindelijk kun je een Pod verkrijgen van een Pod-provider, of je kunt ervoor kiezen om je eigen Pod te hosten.

Mijn Solid demo

Konsolidate heeft mij de opdracht gegeven om een Solid-applicatie te demonstreren met jouw digitale Covid-certificaat. In essentie is het een kantoorcasus: wie kan veilig op kantoor werken en wie moet op afstand werken? Als gevolg hiervan kan de cliënt zien wie wel en niet veilig is. Aangezien het doel van Solid is om mensen controle over hun gegevens terug te geven, kan de werknemer hun gegevens delen met hun manager wanneer ze deze informatie willen delen. (Overbodig te zeggen: we gebruiken deze casus niet in productie, aangezien bedrijven dit niet van hun werknemers kunnen vragen. Dit project is bedoeld om iets te leren).

Aangezien dit een Solid-toepassing is, hebben we deze gebouwd volgens het principe van het delen van minimale gegevens. Je ziet alleen wat je moet zien. Daarom hebben we de app opgesplitst in twee afzonderlijke apps:

  • Eén voor de werknemers
  • Eén voor het management

De werknemersapp slaat jouw certificaat op en heeft een dubbel doel, aangezien het ook je gebruikelijke Covid Safe-app kan vervangen. Jouw COVID-19 veilige informatie wordt opgeslagen in jouw persoonlijke Pod, en je kunt hier toegang toe krijgen door in te loggen bij de gewenste Pod-provider.

De beheerdersapp controleert of werknemers veilig kunnen werken op kantoren van klanten. De enige gegevens die ze zien, zijn de namen van de werknemers en hun beschikbaarheid op dat moment.

The flow van de applicatie

Informational image

De workflow ziet er als volgt uit:

  1. De werknemer maakt een account aan bij een Solid Pod-provider. Hiermee kunnen ze toegang krijgen tot de werknemersapp.
  2. Zodra ze toegang hebben tot de werknemersapp, moeten ze hun Covid-informatie invullen.
  3. De informatie wordt naar hun persoonlijke Solid Pod gestuurd, en de datums en gebruikersnamen worden opgeslagen in een database.
  4. Alleen de beheerdersapp heeft toegang tot deze gegevens.
  5. De salesmanager kan deze gegevens vervolgens delen met zijn klanten om aan te tonen dat de werknemers veilig zijn voor COVID-19.

Used technologies

Informational image
  1. PDF.js: wordt gebruikt om het certificaat te lezen en de benodigde gegevens te verkrijgen.
  2. MobX: wordt gebruikt voor het beheer van de staat van de applicatie.
  3. Inrupt SDK: wordt gebruikt om verbinding te maken met de Solid Providers. Dit schrijft en leest gegevens naar de Pods.
  4. Firebase Realtime Database: hier sturen we de benodigde gegevens om te delen met de manager. We slaan ook de geregistreerde managers hier op.
  5. Ik heb de code geschreven in TypeScript en React.js.

Dat is een fantastische aanpak! Het jezelf uitdagen met nieuwe technologieën en diepgaande kennis vergaren kan niet alleen verrijkend zijn, maar het stelt je ook in staat om meer veelzijdigheid en diepgang aan je projecten toe te voegen. Het feit dat je niet stopte bij de basis, maar verder ging om alles te benutten wat het project beter en gebruiksvriendelijker kon maken, getuigt van een sterke toewijding aan vakmanschap. Zulke ervaringen dragen bij aan persoonlijke en professionele groei.

Conclusie

In de zes weken dat ik aan dit project heb gewerkt, heb ik veel geleerd over Solid en zijn mogelijkheden en kansen. Ik heb ook ontdekt wat het wel en niet kan doen. Ondanks dat Solid nog in bèta is, geloof ik dat deze technologie aan populariteit zal winnen. Daarnaast had ik het genoegen om TypeScript te ontdekken. Ik wilde altijd al iets schrijven in TypeScript, maar had nooit tijd voor een project. Als je de tijd hebt, zou je moeten proberen om iets eenvoudigs te creëren met Solid. Dit zal de volgende stap zijn in het bieden van echte gegevensbezit aan de gebruiker.