Development Guide
As you may know, this software project has been running for serveral university terms now. With fast rotating team members, there are several issues that must be averted. First of all, it is always a struggle to setup local development environments that work reliably cross-platform. There have been serveral occurences, where some team members can not get the code to run on their system, while it works for everybody else. Second, every person has their own preferred coding style and formatting. In the worst case, if we are not careful, we end up with a patchwork of code that is hard to read and work with for old and new team members alike. Last but not least, we want to ensure that newcomers can pickup the project rather quickly, without weeks of experimenting to figure out how the features work.
Therefore, the pages in this chapter shall document the following.
How to setup your local development environment.
What requirements and tools are needed to build the code? How do I get those tools?
The architecture of the system components.
Which component architecture is chosen? How does this apply to the code? Why was this particular architecture specified? How are individual modules linked together?
Considerations and choices made during development.
Why is something implemented the way it is? What issues were faced during development?
We hope this helps you to comprehend the choices made during development and allows you to quickly get started with the project.