Skip to content

Commit e401121

Browse files
authored
Merge pull request #6 from AccelerationConsortium/dev
flowchart, wording, images
2 parents 17dd8d8 + 5b12f8b commit e401121

21 files changed

+555
-332
lines changed

.pre-commit-config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ repos:
66
hooks:
77
- id: trailing-whitespace
88
- id: check-added-large-files
9+
args: ['--maxkb=2000']
910
- id: check-ast
1011
- id: check-json
1112
- id: check-merge-conflict

CONTRIBUTING.md

Lines changed: 87 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,91 @@ on [PyPI], the following steps can be used to release a new version for
335335
to collectively create software are general and can be applied to all sorts
336336
of environments, including private companies and proprietary code bases.
337337

338+
### Updating the Clickable SVG
339+
340+
The SVG is created using PowerPoint (select all objects, right click, save as picture -> change file format to SVG) and saved to `course-flowchart.svg`. Note that I put 99% transparent white boxes in front of the locations I want to be clickable. Kind of hacky, but with minimal effect. To make it easier to identify objects, these can be renamed either in PowerPoint or in Inkscape.
341+
342+
After opening the SVG file in Inkscape:
343+
1. click on the mostly transparent rectangle object (might need to double click)
344+
2. right click and select "Link Properties.." (or create link)
345+
3. Insert the absolute or relative link into the href field
346+
- `courses/hello-world/overview.html`
347+
- `courses/data-science/overview.html`
348+
- `courses/robotics/overview.html`
349+
- `courses/software-dev/overview.html`
350+
- `courses/capstone/overview.html`
351+
4. Save
352+
5. Open the SVG file (i.e., raw code) in a text editor such as VS Code
353+
6. Replace:
354+
355+
```html
356+
width="XXXX"
357+
height="YYYY"
358+
```
359+
360+
361+
with the following:
362+
363+
```html
364+
viewBox="0 0 XXXX YYYY"
365+
width="100%"
366+
height="100%"
367+
```
368+
369+
For example, replace:
370+
371+
```html
372+
width="2965"
373+
height="1876"
374+
```
375+
376+
with:
377+
378+
```html
379+
viewBox="0 0 2965 1876"
380+
width="100%"
381+
height="100%"
382+
```
383+
384+
1. To add a hover fill effect, add the following to each of the transparent rectangles:
385+
386+
```html
387+
onmouseover="evt.target.setAttribute('fill', 'blue'); evt.target.setAttribute('fill-opacity', '0.25');"
388+
onmouseout="evt.target.setAttribute('fill', 'white'); evt.target.setAttribute('fill-opacity', '0.01');"
389+
```
390+
391+
For example, replace:
392+
393+
```html
394+
xlink:href="courses/data-science/overview.html"><rect
395+
x="1909"
396+
y="690"
397+
width="388"
398+
height="389"
399+
fill="#FFFFFF"
400+
fill-opacity="0.0117647"
401+
id="rect85" /></a><a
402+
```
403+
404+
with the following:
405+
406+
```html
407+
xlink:href="courses/data-science/overview.html"><rect
408+
x="1909"
409+
y="690"
410+
width="388"
411+
height="389"
412+
fill="#FFFFFF"
413+
fill-opacity="0.0117647"
414+
onmouseover="evt.target.setAttribute('fill', 'blue'); evt.target.setAttribute('fill-opacity', '0.25');"
415+
onmouseout="evt.target.setAttribute('fill', 'white'); evt.target.setAttribute('fill-opacity', '0.01');"
416+
id="rect85" /></a><a
417+
```
418+
8. Save, build docs to verify, and commit/push to GitHub.
419+
420+
You can search for `hello-world`, `data-science`, etc. to find corresponding locations.
421+
422+
See also https://app.screencast.com/yIypgQZ22BO83 and https://stackoverflow.com/questions/39203857/scaling-svg-produced-with-inkscape
338423

339424
[black]: https://pypi.org/project/black/
340425
[commonmark]: https://commonmark.org/
@@ -367,5 +452,5 @@ on [PyPI], the following steps can be used to release a new version for
367452
```{todo} Please review and change the following definitions:
368453
```
369454
370-
[repository]: https://github.com/<USERNAME>/ac-microcourses
371-
[issue tracker]: https://github.com/<USERNAME>/ac-microcourses/issues
455+
[repository]: https://github.com/AccelerationConsortium/ac-microcourses
456+
[issue tracker]: https://github.com/AccelerationConsortium/ac-microcourses/issues
210 KB
Loading

docs/_images/mqtt-workflow.png

1.73 MB
Loading

docs/_images/sdl-demo/LICENSE.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2022 sgbaird
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

docs/_images/sdl-demo/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Various content taken from https://github.com/sparks-baird/self-driving-lab-demo.
2+
3+
For provenance:
4+
grid vs. random vs. bayesian: https://github.com/sparks-baird/self-driving-lab-demo/blob/7b9a2a9bc4a5079b03907ffd5c758094217d3872/notebooks/3.1-random-vs-grid-vs-bayesian.ipynb
5+
6+
Star protocols as used in:
7+
> Baird, S. G.; Sparks, T. D. Building a “Hello World” for Self-Driving Labs: The Closed-Loop Spectroscopy Lab Light-Mixing Demo. STAR Protocols 2023, 4 (2), 102329. https://doi.org/10.1016/j.xpro.2023.102329.
Loading

docs/_images/sdl-demo/green-led.jpg

463 KB
Loading
Loading
Loading
Loading

docs/certificate-framework.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Here, we provide details for the five core microcourses, including title, descri
99
```
1010

1111
```{raw} html
12-
:file: course-flowchart-viewbox.svg
12+
:file: course-flowchart.svg
1313
```
1414

1515
<!-- <div align="center">

docs/conf.py

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,65 @@
8787
templates_path = ["_templates"]
8888

8989

90+
# # Specify the root directory
91+
# root_dir = 'courses'
92+
93+
# # Initialize the dictionary
94+
# nbsphinx_thumbnails = {}
95+
96+
# # Walk through the directory
97+
# for dirpath, dirnames, filenames in os.walk(root_dir):
98+
# for filename in filenames:
99+
# # Check if the file is a notebook
100+
# if filename.endswith('.ipynb'):
101+
# # Construct the key by removing the root directory and the file extension
102+
# key = os.path.join(dirpath, filename)[len(root_dir)+1:-len('.ipynb')]
103+
# # Construct the value by replacing the slashes with dashes and adding the directory and extension
104+
# value = '_static/' + key.replace('/', '-') + '.png'
105+
# # Add the key-value pair to the dictionary
106+
# nbsphinx_thumbnails[key] = value
107+
108+
# # Print the dictionary
109+
# print("nbsphinx_thumbnails = ", nbsphinx_thumbnails)
110+
111+
# nbsphinx_thumbnails = {
112+
# "courses/hello-world/1.1-running-the-demo": "_static/1.1-running-the-demo.png",
113+
# ...
114+
# }
115+
116+
nbsphinx_thumbnails = {
117+
"courses/hello-world/1.1-running-the-demo": "../../_images/sdl-demo/star-protocols-graphical-abstract.png",
118+
"courses/hello-world/1.2-blink-and-read": "../../_images/sdl-demo/green-led.jpg",
119+
"courses/hello-world/1.3-bayesian-optimization": "../../_images/sdl-demo/grid-vs-random-vs-bayesian.png",
120+
"courses/hello-world/1.4-hardware-software-communication": "../../_images/mqtt-workflow.png",
121+
"courses/hello-world/1.5-logging-data": "../../_images/1.5-logging-data.png",
122+
"courses/hello-world/1.6-piecing-the-modules-together": "../../_images/1.6-piecing-the-modules-together.png",
123+
"courses/hello-world/1.7-convert-to-a-lab-sensor-system": "../../_images/1.7-convert-to-a-lab-sensor-system.png",
124+
"courses/data-science/2.1-gentle-intro-bayesian": "../../_images/2.1-gentle-intro-bayesian.png",
125+
"courses/data-science/2.2-multi-objective-opt": "../../_images/2.2-multi-objective-opt.png",
126+
"courses/data-science/2.3-constrained-opt": "../../_images/2.3-constrained-opt.png",
127+
"courses/data-science/2.4-high-dimensional-opt": "../../_images/2.4-high-dimensional-opt.png",
128+
"courses/data-science/2.5-multi-fidelity-opt": "../../_images/2.5-multi-fidelity-opt.png",
129+
"courses/data-science/2.6-predefined-candidates": "../../_images/2.6-predefined-candidates.png",
130+
"courses/data-science/2.7-benchmarks": "../../_images/2.7-benchmarks.png",
131+
"courses/robotics/3.1-pumps-and-pipettes": "../../_images/3.1-pumps-and-pipettes.png",
132+
"courses/robotics/3.2-liquid-handlers": "../../_images/3.2-liquid-handlers.png",
133+
"courses/robotics/3.3-mobile-robotics": "../../_images/3.3-mobile-robotics.png",
134+
"courses/robotics/3.4-computer-vision": "../../_images/3.4-computer-vision.png",
135+
"courses/robotics/3.5-solid-sample-transfer": "../../_images/3.5-solid-sample-transfer.png",
136+
"courses/software-dev/4.1-vscode-setup": "../../_images/4.1-vscode-setup.png",
137+
"courses/software-dev/4.2-vscode-debugging": "../../_images/4.2-vscode-debugging.png",
138+
"courses/software-dev/4.3-unit-testing": "../../_images/4.3-unit-testing.png",
139+
"courses/software-dev/4.4-automated-docs": "../../_images/4.4-automated-docs.png",
140+
"courses/software-dev/4.5-continuous-integration": "../../_images/4.5-continuous-integration.png",
141+
"courses/software-dev/4.6-project-templates": "../../_images/4.6-project-templates.png",
142+
"courses/software-dev/4.7-cloud-servers": "../../_images/4.7-cloud-servers.png",
143+
"courses/software-dev/4.8-cloud-computing": "../../_images/4.8-cloud-computing.png",
144+
"courses/capstone/5.1-project-proposal": "../../_images/5.1-project-proposal.png",
145+
"courses/capstone/5.2-design-and-execution": "../../_images/5.2-design-and-execution.png",
146+
"courses/capstone/5.3-dissemination": "../../_images/5.3-dissemination.png",
147+
}
148+
90149
# Enable markdown
91150
extensions.append("myst_parser")
92151

docs/course-content.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@
55
If you've already completed the [Certificate Overview](certificate-framework.md), you're ready to dive into the course content! If not, we recommend you start there.
66

77
## 🚀 Getting Started
8-
As [mentioned in the overview](/courses/hello-world/overview.md), each course is comprised of modules, where the typical structure for each module is:
8+
As [mentioned in the overview](/courses/hello-world/overview.md), each course is comprised of modules, where each module typically has three components:
99

10-
1. A guided notebook tutorial (ungraded)
11-
2. A standalone notebook assignment (graded)
12-
3. A mini project (graded)
1310

14-
To familarize yourself with the assignment structure and to keep everyone on the same page, complete the[🔗 GitHub starter tutorial](https://github.com/AC-Classroom/github-starter-course).
11+
| | Component | Points |
12+
|---|-------------------|--------|
13+
| 1. | 🧭 Guided tutorial | 0 |
14+
| 2. | 📓 Notebook assignment | 5 |
15+
| 3. | 🛠️ Mini project | 10 |
16+
17+
18+
These courses are integrated with coding exercises via GitHub Classroom. To familarize yourself with the assignment structure and keep everyone on the same page, complete the [🔗 GitHub starter tutorial](https://github.com/AC-Classroom/github-starter-course).
1519

1620
<!-- If you've reached this point, and you're wondering what a self-driving lab is in the first place, watch [▶️ "The Future of Chemistry is Self-driving"](). *TODO: Video needs to be edited and uploaded to YouTube. Add this as an embedded iframe perhaps* -->
1721

@@ -80,6 +84,10 @@ courses/software-dev/4.8-cloud-computing.ipynb
8084

8185
## 🏢 Capstone Project at the AC Training Lab
8286

87+
```{note}
88+
🔑 Due to the intensive nature of this in-person course and to maximize value to the participants, completion of the previous four courses are mandatory.
89+
```
90+
8391
```{include} courses/capstone/description.md
8492
```
8593

docs/course-flowchart.png

32.8 KB
Loading

0 commit comments

Comments
 (0)