Skip to content
Stian Onarheim edited this page Aug 9, 2020 · 4 revisions

Welcome to the qTracker-Client wiki!

Development process

Initially the idea was to write the tracker in Ada, although that never came to be. When starting the project we had no previous experience with neither Qt or Ada. In early March we gathered and brainstormed ideas, drew use cases, class diagrams and contemplated if the project was even doable. Designing the graphical user interface was a bit of a challenge as none of us really wanted to do front-end work. We decided on using Qt Quick/QML over Qt Widgets as it looked more customizable and future proof. We had a course that semester where we among other things learned MySQL, therefor the database choice.

We would have liked to create the client cross-platform. It was always the idea until we ran into problems installing and getting the qt-mysql library to work. We dropped the cross-platform support and settled for Linux only. We regrettably chose the first mysql library we found on the Tracker. This caused a great deal of frustration and many unnecessary hours spent debugging.

When we got the client up on its legs it was time to start writing the tracker. At the same time exams were approaching us and we didn't have a lot of time to set aside for this project. We decided to drop learning Ada and settled for cpp which we all were quite familiar with.

During the exam period a few features were added here and there. After the school semester we finally had time to finish the project. In just a few days we were able to fix all the crucial bugs and got the main features to run smoothly.

It was a great project for learning purposes. We got to write complex MySQL queries, parse bencode data, communicate with sockets and overall became more experienced with cpp and the Qt development framework. It was also really cool to see it all working!

Screenshots

Clone this wiki locally