Sjakkarena - En webapplikasjon for organisering av sjakkturneringer
Bachelor thesis
Permanent lenke
https://hdl.handle.net/11250/2663591Utgivelsesdato
2020Metadata
Vis full innførselSamlinger
Sammendrag
Aalesunds Schaklag har gitt i oppgave å lage en applikasjon som kan benyttes til å organisere uoffisielle sjakkturneringer. Denne rapporten inneholder det teoretiske grunnlaget for utviklingen av applikasjonen, en beskrivelse av det ferdige produktet, samt en beskrivelse av utviklingsprosessen.
I applikasjonen skal turneringsverter kunne opprette turneringer som spillere kan melde seg på. Det er tenkt at applikasjonen i hovedsak vil bli brukt i samlingslokaler hvor turneringsvert viser informasjon om turneringen på en storskjerm. Slik turneringsinformasjon er blant annet turnerings-id, som spillere vil bruke til å melde seg på turneringer, og tabeller som viser spillernes plasseringer og pågående partier.
Spillere som skal melde seg på en turnering må ha en egen enhet. På sin enhet oppgir spillerne en turnerings-id gitt av turneringsvert og et, for turneringen, unikt spillernavn. I løpet av turneringen vil spillerne bli tildelt partier. Ved slutten av hvert parti vil spillerne legge inn resultatet av partiet. Basert på spillerens prestasjoner i turneringen, vil spilleren få tildelt en ny motstander når resultatet er lagt til.
I utviklingen av applikasjonen har det vært lagt spesielt stor vekt på interaksjonsdesign, turneringsoppsett og effektiv kommunikasjon mellom server og klienter. For å få et godt brukergrensesnitt har bl.a. gestaltprinsippene og Donald Norman sine designregler blitt benyttet. Systemet for å organisere sjakkturneringer i applikasjonen er basert på turneringssystemet Monrad og tilpasset oppdragsgivers ønsker. For å kommunisere mellom frontend og backend har det blitt benyttet WebSockets for å oppdatere klienter når de ikke vet når ny informasjon er tilgjengelig på server. Restkall over HTTP har blitt brukt når dette ikke er tilfellet.
Applikasjonen består av en frontend som er utviklet med JavaScript-rammeverket Vue, en Java backend utviklet med Spring Boot og en tilhørende MySQL database. Applikasjonen ble laget som en webapplikasjon som passer på alle typer skjermstørrelser. Spillerdelen har blitt utviklet med et spesielt fokus på mobilskjermer. Delen av applikasjonen som brukes av turneringsverter er tenkt skal benyttes på større skjermer, men fungerer også på mindre enheter. Aalesunds Schaklag has asked for an application which can be used to organize informal chess tournaments. This report contains the theoretical foundation for the development of the application and a description of the finished product. Additionally, the process of development is described.
By using the application, tournament hosts can create tournaments which players can enroll in. The application is designed for being used in conjunction with physical gatherings. The tournament host should display tournament information found in the application on a large screen visible for all the contestants. Such information is, among other things, a tournament id the players will use to sign up for the tournament and a leaderboard.
Each player who want to sign up for a tournament will use his own device. To sign up for a tournament, the player uses the tournament id and creates his own unique username. During the tournament the players will be provided games. By the end of each game, the players are responsible for adding the result of the game. Based on the performance of a player in the tournament, the player will receive a new game after the result has been registered.
During the development of the application the main focus has been the user interface, the system for organizing tournaments and the way the server and clients communicates. The gestalt principles and Donald Normans design rules have had a considerable influence on the user interface. The system for organizing tournaments is based on the Monrad system and has been adapted to the wishes of Aalesunds Schaklag. WebSocket has been used in the communication between the server and clients in any case where the clients are not aware of new information being available. In all other cases, REST calls over HTTP are used.
The frontend of the application is built using the Javascript framwork, Vuejs. Spring Boot has been used to create the backend of the application. In addition, data is stored in a MySQL database. The part of the application meant for players will mainly be shown on mobile screens, while the part of the application meant for tournament hosts will mainly be shown on large screens. The designs of these parts have been influenced by which screens they mainly will be displayed on. However, all parts of the application can be used on all types of screens.