Adres
Utrecht, Veenendaal

Werktijden
Maandag tot en met vrijdag: 9.00 tot 17.00 uur
Weekend: 10.00 tot 17.00 uur

Car Sharing Mobile Application

Een persoonlijk project: een mobiele app voor een gedeelde auto, die bijhoudt wie ermee reed, wat het kostte en hoe dat verdeeld wordt tussen de bestuurders. Een .NET-backend met MySQL achter een React Native-app en een Vue.js-webclient.

  • TypePersoonlijk project
  • Periode2021
  • RolSolo full stack gebouwd
  • OpgeleverdiOS- en Android-app, webclient, backend
  • Kilometers en brandstof afgerekend per rit en per bestuurder, zodat niemand hoeft te onthouden wie getankt heeft.
  • Pushmeldingen en e-mail houden elke bestuurder op de hoogte van waar de auto is en wie hem heeft.
  • iOS, Android en web op één backend, zodat de app en de webclient het nooit oneens zijn over wat een rit kostte.

Context

Een auto delen met meerdere mensen gaat goed tot het over geld gaat. Iedereen herinnert zich de ritten anders, de tankbonnen liggen in het handschoenenkastje van een ander, en het afrekenen wordt een ruzie die niemand wilde. De app haalt dat van tafel door alles vast te leggen op het moment zelf.

De uitdaging

Eerlijkheid moet berekend worden, niet aangenomen. Kilometers, brandstof en wie er reed moeten allemaal nauwkeurig worden vastgelegd op het moment van gebruik, want achteraf valt niets ervan te reconstrueren. En de app is alleen nuttig als bestuurders er ook echt naar grijpen. Daardoor horen de meldingen en de flow van het geheel bij het engineeringwerk, niet bij de franje eromheen.

Wat ik deed

  • De .NET-backend gebouwd, met daarin ritten, bestuurders, kosten en de afrekenlogica die daarvan maakt wat ieder verschuldigd is.
  • De data gemodelleerd in MySQL, rond ritten en kostengebeurtenissen, zodat een correctie een nieuw feit is in plaats van een herschrijving van de geschiedenis.
  • De mobiele app opgeleverd in React Native met Expo, naar iOS en Android vanuit één codebase.
  • Een Vue.js-webclient gebouwd op dezelfde services, voor de dingen die makkelijker gaan met een toetsenbord, zoals een periode nakijken of een rit corrigeren.
  • Pushmeldingen en e-mail toegevoegd, op de gebeurtenissen die er echt toe doen voor de andere bestuurders, en alleen die.

Het resultaat

  • Gedeeld gebruik vastgelegd op het moment zelf in plaats van gereconstrueerd uit het geheugen.
  • Kosten verdeeld op basis van de cijfers, wat de discussie uit het afrekenen haalt.
  • Eén backend, twee clients, en een heldere scheiding tussen wat de services bezitten en wat elke client toont.

Gebruikte technologieën

  • .NET: De backendservices en de afrekenlogica voor de kosten.
  • C#: De taal waarin de backend is geschreven.
  • MySQL: Ritten, bestuurders, voertuigen en kostengebeurtenissen.
  • React Native: De iOS- en Android-app, gebouwd met Expo.
  • Vue.js: De webclient op dezelfde services.

React, Next.js en React Native zijn vijf jaar eigen bouwwerk, en ik licht je graag toe wat dat inhoudt.