Development Methodology and Considerations
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