Continuous integration service for building a PPT from all of the lab members' weekly progress figures.
Designed by @danhagen and @bc for ValeroLab
How do we get a large lab of >8 students in sync about their research weekly, and how do we establish a culture of discipline with producing visible progress in our Ph.D.'s?
Social pressure can drive accountability for projects, so we decided to host a weekly figure review with the lab, where we can show one figure or image of our last week's progress, creating a visual topic for discussion.
-
See this reminder on Slack on Monday, and upload your figure to the google drive folder.
-
On the day of the lab meeting, lab members get an auto-generated PPT that combines the draft agenda and all figures from all lab members.
Travis-CI is set up with a 1x/wk CRON job that authenticates & downloads the contents of the Figures Drive folder, computes a PPT, uploads the results to the drive, clears the queue, and pings Slack via a webhook with the direct link to the PPT for download (link is mobile friendly too). Credentials and drive links are set as private environment variables within the Travis-CI GUI. A Zapier CRON job pings a Slack channel webhook to post the upload link as a reminder 1x/wk.
Python, Bash
Put this one in Travis-CI
export DRIVE_FOLDER="https://drive.google.com/..."
export DRIVE_QUEUE="https://drive.google.com/..."
export SLACK_API="https://hooks.slack.com/services/..."
CREDENTIALS='{"access_token": ...'
echo $CREDENTIALS >> mycreds1.txt
Where the credentials are the access token for the Google Drive Python API.
python3 download_from_gdrive.py
python3 build_weekly_ppt.py >> temp_output.txt
python3 upload_to_gdrive.py