Skip to content

Commit f1f83cb

Browse files
committed
feat: updated structure setup script to keep development artifacts in strict isolation(prevents monolithic notebook workflows)
1 parent 56affe0 commit f1f83cb

2 files changed

Lines changed: 134 additions & 23 deletions

File tree

README.md

Lines changed: 112 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,62 @@ Built from lessons learned through iterative experimentation to enable reproduci
77

88
---
99

10+
## Table of Contents
11+
12+
- [Project Structure](#project-structure)
13+
- [Scope](#scope)
14+
- [Previous Work](#previous-work)
15+
- [Quick Start](#quick-start)
16+
- [Notebook Tools Installation](#notebook-tools-installation)
17+
- [Reproducibility Framework](#reproducibility-framework)
18+
- [Environment Setup](#environment-setup)
19+
- [Environment Details](#environment-details)
20+
- [Environment Management](#environment-management)
21+
- [Scripts](#scripts)
22+
- [Workflows](#workflows)
23+
24+
---
25+
26+
## Project Structure
27+
28+
```
29+
experiments-framework/
30+
├── notebooks/ # all jupyter notebooks
31+
│ ├── scripts/ # notebook utility scripts
32+
│ ├── templates/ # clean starting templates
33+
│ │ ├── 01_preprocessing.working.ipynb # data prep template
34+
│ │ ├── 02_annotation.working.ipynb # labeling template
35+
│ │ ├── 03_training.working.ipynb # model training template
36+
│ │ └── systems.working.ipynb # infrastructure template
37+
│ ├── machine_learning/ # ml development
38+
│ │ ├── 01_preprocessing.dev.ipynb # active preprocessing
39+
│ │ ├── 02_annotation.dev.ipynb # active annotation
40+
│ │ ├── 03_training.dev.ipynb # active training
41+
│ │ ├── preprocessing/ # preprocessing experiments
42+
│ │ ├── annotation/ # annotation experiments
43+
│ │ └── training/ # training experiments
44+
│ └── systems/ # infrastructure notebooks
45+
│ └── systems.dev.ipynb # systems development
46+
├── data/ # data organization
47+
│ ├── raw/ # original recordings
48+
│ ├── clips/ # extracted video clips
49+
│ ├── frames/ # extracted images
50+
│ └── annotations/ # labels and metadata
51+
├── configs/ # workflow configurations
52+
├── models/ # trained ml models
53+
├── scripts/ # project setup scripts
54+
│ ├── setup_experiments_structure.sh # creates dirs/notebooks
55+
│ ├── setup_provenance.sh # tracks repo evolution
56+
│ └── setup_orcid.sh # citation setup
57+
├── lib/ # reusable code modules
58+
│ └── notebook_tools/ # notebook utilities
59+
├── references/ # citations and refs
60+
├── environment.yml # conda environment
61+
└── PROVENANCE.md # repo history tracking
62+
```
63+
64+
---
65+
1066
## Scope
1167

1268
* Modular workflow patterns for preprocessing, annotation, and training
@@ -23,6 +79,25 @@ Built from lessons learned through iterative experimentation to enable reproduci
2379

2480
This repo rebuilds the workflow framework to be modular and scalable.
2581

82+
## Quick Start
83+
84+
1. Clone and setup:
85+
```bash
86+
git clone https://github.com/iTrauco/experiments-framework.git
87+
cd experiments-framework
88+
chmod +x scripts/*.sh
89+
./scripts/setup_experiments_structure.sh
90+
```
91+
92+
2. Track your work:
93+
```bash
94+
./scripts/setup_provenance.sh
95+
```
96+
97+
3. Start developing in the `.dev` notebooks or copy templates to begin new experiments.
98+
99+
---
100+
26101
## Notebook Tools Installation
27102

28103
```bash
@@ -107,6 +182,42 @@ The environment includes essential data science and computer vision packages:
107182

108183
---
109184

185+
## Scripts
186+
187+
### setup_experiments_structure.sh
188+
Creates the complete project directory structure with interactive menu. Features:
189+
- Default creates in parent directory (`../`)
190+
- Remembers last used location
191+
- Rollback option to undo
192+
- Installs GitHub Actions and pre-commit hooks
193+
194+
### setup_provenance.sh
195+
Documents your experimental evolution across repository rebuilds:
196+
- Links to previous repos and branches
197+
- Records what you tested and learned
198+
- Builds a timeline in PROVENANCE.md
199+
200+
### setup_orcid.sh
201+
Adds ORCID identifier and citation infrastructure to your project.
202+
203+
---
204+
205+
## Workflows
206+
207+
### Development Flow
208+
1. Copy templates from `notebooks/templates/` to start new work
209+
2. Develop in `.dev` notebooks at the machine_learning level
210+
3. Create experimental variations in subdirectories
211+
4. Track successful patterns in LESSONS_LEARNED.md files
212+
213+
### GitHub Actions
214+
Automatically converts notebooks to markdown on push for better documentation and diffs.
215+
216+
### Pre-commit Hooks
217+
Validates notebook metadata and cleans outputs before commits.
218+
219+
---
220+
110221
### Environment Management
111222

112223
For collaborators who enhance the environment with additional packages:
@@ -119,16 +230,5 @@ conda env export > environment.yml
119230

120231
This ensures full reproducibility across systems by preserving all dependencies and versions.
121232

122-
123233
---
124-
**Author:** Christopher Trauco | [ORCID: 0009-0005-8113-6528](https://orcid.org/0009-0005-8113-6528)
125-
126-
---
127-
128-
## References
129-
130-
This repository includes citation tracking files located in the `references/` directory:
131-
132-
* [`citations.bib`](references/citations.bib)
133-
* [`datasets.bib`](references/datasets.bib)
134-
* [`software.bib`](references/software.bib)
234+
**Author:** Christopher Trauco | [ORCID: 0009-0005-8113-6528](https://orcid.org/0009-0005-8113-6528)

scripts/README.md

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,33 @@ chmod +x scripts/setup_experiments_structure.sh
3535
```
3636
notebooks/
3737
├── README.md # main notebooks info
38+
├── scripts/
39+
│ └── README.md # notebook utilities
3840
├── templates/
39-
│ └── README.md # reusable templates
40-
├── preprocessing/
41-
│ ├── README.md # preprocessing docs
42-
│ └── 01_preprocessing.working.ipynb # video to frames
43-
├── annotation/
44-
│ ├── README.md # annotation docs
45-
│ └── 02_annotation.working.ipynb # labeling workflow
46-
└── training/
47-
├── README.md # training docs
48-
└── 03_training.working.ipynb # model training
41+
│ ├── README.md # reusable templates
42+
│ ├── 01_preprocessing.working.ipynb # preprocessing template
43+
│ ├── 02_annotation.working.ipynb # annotation template
44+
│ ├── 03_training.working.ipynb # training template
45+
│ └── systems.working.ipynb # systems template
46+
├── machine_learning/
47+
│ ├── README.md # ml workflows
48+
│ ├── 01_preprocessing.dev.ipynb # preprocessing dev
49+
│ ├── 02_annotation.dev.ipynb # annotation dev
50+
│ ├── 03_training.dev.ipynb # training dev
51+
│ ├── preprocessing/ # preprocessing experiments
52+
│ │ └── README.md
53+
│ ├── annotation/ # annotation experiments
54+
│ │ └── README.md
55+
│ └── training/ # training experiments
56+
│ └── README.md
57+
└── systems/
58+
├── README.md # systems docs
59+
└── systems.dev.ipynb # dev notebook
4960
data/
5061
├── raw/
5162
│ └── README.md # original recordings
5263
├── clips/
53-
│ └── README.md # 60s extracts
64+
│ └── README.md # extracted clips
5465
├── frames/
5566
│ ├── README.md # extracted images
5667
│ └── sample_camera_20250622/ # sample folder

0 commit comments

Comments
 (0)