Back to projects page
Featured image

Issue tracker

Universiteit Antwerpen

A redeveloped issuetracker for Anet, with enhanced database integration and search functionality, powered by Django.

Introduction

The Anet issuetracker system faced the challenge of being offline and inaccessible. To overcome this problem and enable effective issue tracking and resolution, a project was undertaken to revive and restore the issuetracker. By reviving the system, users regained access to an efficient issue management platform, fostering improved communication and streamlined issue resolution within the Anet organization.

Diving into Django and Database Structure Analysis

Initially, I had to delve into Django, given my limited experience using ORM models in relatively large projects. Following that, I analyzed the current database structure which, at first glance, seemed fairly standard and translatable into tables and associative tables.

Challenges and Solutions

However, using the database within Django’s ORM system turned out to be not as straightforward, due to peculiar field names and redundant tables. The solution was to write a script that extracts necessary data from the old database using simple SQL operations and inserts it into the Django ORM model.

Implementation of Data Structure

Next, I created functions to make this task as easy as possible. The data structure was as follows: "Issue", which housed "Keywords" and "Messages". Each message also contained relevant keywords. For every issue, the corresponding messages and their keywords needed to be fetched.

Fig 1. Overview of the datastructure Fig 1. Overview of the datastructure

Interface and Search Functionality

After solving the database issues, I started working on the templates. I created a simple interface that searches for issues matching entered search terms in real-time. The search process has been significantly simplified, allowing for multiple attributes to be entered into a single search field.

Future Plans

While the project currently utilizes standard Django templates, the intention is to eventually migrate this to Jinja2 templates.