Contributing¶
Repository layout¶
AnnoTrain/
├── backend/
├── frontend/
├── docs/
├── data/
│ └── .gitkeep
├── README.md
└── .gitignore
Development principles¶
- Keep the implementation incremental — build the smallest usable version first.
- Do not implement future roadmap features unless explicitly requested.
- Prefer simple, readable code over premature abstractions.
- Keep the backend generic: never hard-code
animal,root,cell, etc. into core domain models (see the data model). - Separate annotation logic from ML/training logic (see architecture).
- Preserve future support for classification, detection, segmentation, points, paths, and tracking.
- Treat raw annotations, consensus datasets, dataset versions, and model versions as different concepts.
- Never store large scientific images or model weights in Git.
- Never commit secrets or
.envfiles. - Add documentation as functionality is implemented.
- Prefer reproducibility and explicit versioning.
- Keep the MVP deployable and understandable by one researcher maintaining the project.
UX principles¶
Contributor workflows should require minimal friction. For the initial classification workflow:
Contributor accounts are not required for the MVP. Researcher-facing interfaces can be more detailed, but scientific/ML terminology should be explained rather than assumed.
Pedagogical principles¶
Whenever practical, expose concepts rather than hiding them completely — e.g. show how many annotations produced a consensus, dataset split sizes, class imbalance, model probabilities, confusion matrices, disagreement, model errors, and which DatasetVersion trained which ModelVersion. The platform should make deep learning understandable without making the interface unnecessarily technical.
Storage rules¶
Git must never be used for scientific datasets, credentials, or large trained-model files. The .gitignore already excludes local data, databases, model checkpoints, logs, and environment files — keep it that way as the project grows.
Documentation strategy¶
Documentation is written alongside the software, not after it. This docs/ site is the seed of the public AnnoTrain documentation — add a page as soon as the corresponding functionality starts to exist, following the structure already used here (Vision, Annotation, Architecture, Roadmap).