The project aims to create a time tracking application developed on Cloudflares worker platform as backend and using Web Components compiled by Stencil.js as the frontend. Cloudflare offers a unique storage solution they call Durable objects which is used as this projects storage solution. The entire application is developed using TypeScript since stencil enforces TypeScript and JavaScript is more or less required to utilize the Cloudflare worker platform. User authentication was developed to handle the user logins. Users are identified by a JWT issued by the authentication system. Endpoints used to create organizations, employing users was developed. Durable objects have some limitation on how much data they can manage. A solution to workaround this limitation had to be done to make the application possible to implement. The workaround used was to store data with prefixed keys. This ensured that there would always be enough data for each item.
Projektets mål är att skapa en tidsrapporterings applikation utvecklad på Cloudflares worker plattform som backend och med webbkomponenter kompilerade av Stencil.js som frontend. Cloudflare erbjuder en unik lagringslösning som de kallar Durable objects som används till detta projekts lagringslösning. Hela applikationen är utvecklad med TypeScript eftersom stencil exklusivt skrivs i TypeScript och JavaScript mer eller mindre krävs för att använda Cloudflares worker plattform. Användarautentisering utvecklades för att hantera användarinloggningarna. Användare identifieras med en JWT utfärdad av autentiseringssystemet. Api slutpunkter som användes för att skapa organisationer och anställa användare utvecklades. Durable objects har en viss begränsning för hur mycket data de kan hantera. En lösning för att kringgå denna begränsning måste göras för att göra applikationen möjlig att implementera. Lösningen som användes var att lagra data med prefigerade nycklar. Detta säkerställde att det alltid skulle finnas tillräckligt med data för varje artikel.