Anovote
Abstract
I 2019 etterlyste Start Ålesund en digital løsning for å gjennomføre digitale valg under generalforsamlingene sine. Til nå har disse blitt gjennomført manuelt, som er en kilde til feil. I faget ID102012 - Webteknologi ble en prototype laget. Prototypen fungerte under en demonstrasjon, men på grunn av tidsbegrensninger hadde prototypen flere mangler. Basert på denne prototypen har vi utviklet et produksjonsklart system for å gjennomføre trygge digitale valg.
Applikasjonen ble utviklet som en enkeltsidig applikasjon som kjører sammen med en Node server som bruker et REST API og WebSockets for kommunikasjon. Prosjektet har brukt agile arbeidsmetodikk med SCRUM rammeverket. Resultatet er et produksjonsklart system, med en full CI/CD pipeline, kjørende på et kontainer nettverk.
Vi fant ut at ved å jobbe med agile metoder, så har vi klart å lage et produkt som vi kan kontinuerlig forbedre trinnvis. Arbeid med moderne JavaScript teknologier for en å lage en fullstack løsning har vist seg å være tilstrekkelig for jobben. In 2019, Start Ålesund wanted a digital solution to perform their elections at their annual general assembly, up until then all counting were done manually, which were prone to errors. In the subject ID102012 - webteknologi, a Proof-of-Concept (PoC) was developed. The solution worked during demonstration, but due to time constraint it had many faults. Based on this PoC, we have created a production ready system to perform digital elections.
The application is developed as a Single-page Application (SPA) running in conjunction with a Node server that utilizes a combination of REST API and WebSockets for communication. The project has been applying agile methodology principles by using the SCRUM framework. The end result is a production-ready application, with a full CI/CD pipeline, hosted in a con-tainerized network.
We have found that working with the agile methodology has enabled us to create a product which can be enhanced incrementally. Working with modern JavaScript technology for a fullstack solution has proven sufficient for the task.