Issue tracker
Universiteit Antwerpen
Een herontwikkelde issuetracker voor Anet, met verbeterde databankintegratie en zoekfunctionaliteit dankzij Django.
Inleiding
Het Anet issuetracker-systeem kampte met het probleem dat het offline en ontoegankelijk was. Om dit probleem te overwinnen en effectieve probleemregistratie en -oplossing mogelijk te maken, werd er een project gestart om de issuetracker nieuw leven in te blazen en te herstellen. Door het systeem te herstellen, kregen gebruikers weer toegang tot een efficiënt platform voor probleembeheer, wat resulteert in verbeterde communicatie en gestroomlijnde probleemoplossing binnen de Anet-organisatie.
Verdieping in Django en Analyse van de Databankstructuur
Eerst moest ik me verdiepen in Django, omdat ik nog niet vaak een ORM-model had gebruikt voor een relatief groot project. Daarna analyseerde ik de structuur van de huidige databank. Het leek op het eerste gezicht vrij standaard en vertaalbaar naar tabellen en associatieve tabellen.
Uitdagingen en Oplossingen
Echter, de databank bleek niet zo makkelijk te gebruiken binnen Django’s ORM-systeem, te wijten aan vreemde veldnamen en overtollige tabellen. De oplossing was om een script te schrijven dat met eenvoudige SQL-operaties de benodigde data uit de oude databank haalt en in het Django ORM-model plaatst.
Implementatie van Datastructuur
Ik heb vervolgens functies geschreven om deze taak zo eenvoudig mogelijk te maken. De structuur van de data was als volgt: "Issue" met daaronder "Keywords" en "Messages". Elk bericht had ook relevante trefwoorden. Voor elke issue moesten de berichten en de bijbehorende trefwoorden worden opgehaald.
Fig 1. Overzicht van de datastructuur
Interface en Zoekfunctionaliteit
Na het oplossen van de databankproblemen, kon ik aan de slag met de templates. Ik heb een eenvoudige interface gemaakt die real-time zoekt naar de issues die overeenkomen met de ingevoerde zoektermen. Het zoeken is nu aanzienlijk vereenvoudigd door meerdere attributen in één zoekveld te kunnen ingeven.
Toekomstige Plannen
Hoewel het project momenteel is opgebouwd met standaard Django templates, is het de bedoeling om dit uiteindelijk over te zetten naar Jinja2 templates.