Skip to content

6. Project Management

Ankit Anand edited this page Apr 20, 2022 · 6 revisions

Version Control

The GitHub commit features aids in monitoring the versions at specific intervals during the project progression. This feature helps in keeping track of significant changes in case an error occurs suddenly. When dev branch becomes finalized, the files would be pushed to the release branch version by version. This is to help keep track of working prototypes and improvements made later. The latest release version can then would then get published.

Branching

The work was split between the Project Collaborators using GitHub Branching to properly isolate and separate the repositories. The Dev branch is the developer branch used to integrate the software code with the hardware. And finally, the main branch is where the final repositories of the fully tested and functional prototype get stored.

Division of Labour

The team worked together well with even allocation of times and effort. The work was split between the three members as follows:

  • Ankit Anand: Hardware & Software + Testing
  • Hayatu Abdullahi: Software Concept Design + Documentation & Social Media
  • Omkar Padwal: Web Interface Design + Code Documentation

Issues

GitHub has a feature called Issues where any team Collaborator could open an issue to notify other team members. This forum proved to be useful as it allowed the Team members to organise the project in a more efficient manner allowing the objective to be reached by avoiding repetitive errors.

Testing

Validation of code is carried out by the testing phase. Tests allows us to analyse the code before building the system. GoogleTest suite, which is a testing framework developed at google, was utilised for writing unit tests. This process is automated by GitHub action. GitHub actions activate when certain events are triggered. For example, when code is pushed to the dev or main repository, GitHub actions will trigger the testing event. A custom runner was hosted on the local Raspberry device for building, testing and deploying. Although, due to constraints in memory, it wasn't proving very useful for programming effectively. The benefit of this approach rests on the fact that code can be pushed safely when and only when the tests have passed.

Clone this wiki locally