petargyurov / megadetector-gui

A desktop application that makes using MegaDetector's model easier
43 stars 2 forks source link

Development Methodology and Considerations #16

Open petargyurov opened 3 years ago

petargyurov commented 3 years ago

Introduction

This document outlines some of the over-arching themes around the development of this application and serves to remind me and any future developers of some important design decisions.

Project Scope

This project's initial aim is to help conservationists by providing an easy to use application that automates the processing of camera trap images using AI.

Stage Description Status
Stage 1 App simplifies the use of MegaDetector and allows users to perform a quick review of the results โœ”๏ธ
Stage 2 Users can use other models trained outside of the app, not just MegaDetector
Stage 3 Users can train pre-trained models and use them in the app
Stage 4 Users can continue to train a custom model each time they import new data

Separate Repositories

At the time of writing, this project is split into two repositories. This decoupling comes with advantages and disadvantages.

Pros ๐Ÿ‘ Cons ๐Ÿ‘Ž
The backend repository can exist as a standalone project Difficult to use GitHub's project management features and management of issues
Confusing build process

At the start of this project I was more inclined to keep the two repos separated. After developing for a couple of months, and taking into consideration the future of the project, I think it would be more beneficial to have a single repo. This is especially important once we enter stage 2.

Inter-process Communication

โ„น๏ธ TODO

Error Handling and Logging

โ„น๏ธ TODO