- Issue faculty call (first week of August or December)
- Optional: hold faculty information session mid-month
- Faculty call ends; decide which projects to fund (+3-4 weeks)
- Create project pages on site
- Contact faculty about decision
- Create student application form
- Circulate student application form (+1 week)
- Optional: hold student information session mid-month
- Student applications due (+2-3 weeks)
- Circulate applications to faculty
- Faculty/student interviews and selection (+4 weeks)
- Stipend information due (+1 week)
Gmail drafts are created using the gmailr package for R. This requires configuring Gmail itself to permit API access and downloading a set of credentials files to the local compute. Steps for this can be found here. Note that the credentials file should not be checked into the repository. By default, this file is expected to sit in the site-source
folder (see below).
The website is comprised of two repositories, site-source
and DSI-scholars
. The first contains the content used to build the second, which is the website itself. In order to to get started, check out both repositories so that they sit in the same root directory. For example:
mkdir ~/Documents/CU-DSI-Scholars
cd ~/Documents/CU-DSI-Scholars
git clone https://github.com/CU-DSI-Scholars/site-source
git clone https://github.com/CU-DSI-Scholars/DSI-scholars
The website itself is built from site-source
using the blogdown package. The general workflow is:
- Modify
site-source
in some way and check in the change into the repository:- Change directory to the site source by executing
cd ~/Documents/CU-DSI-Scholars/site-source
- Evaluate the changes by executing
git status
- Add any updated files by using
git add -u
- Add any new files by using
git add FILE_NAME
- Commit the changes by using
git commit -m 'COMMIT_MESSAGE'
- Push the changes
git push
- Change directory to the site source by executing
- Load
site-source.Rproj
in Rstudio or start a base R session and set the working directory toPATH/TO/site-source
- Run
blogdown::build_site()
from within R; this will update - Check in the changes to the
DSI-scholars
repository usinggit
status/add/commit/push steps from above
The following paths and files in site-source
are important:
config.toml
- contains overall settings for the site including the url for the "Apply Now" button; change this to the new student application form as necessarycontent/page
- static pages, currently used for FAQs and overview of DSI programscontent/post
- individual blog "posts", in particular the project pagesstatic
- anything in this folder gets verbatim copied to the website; it is currently used to stash images (not needed at all) and to host pdfs/docs that are specific to individual projects
In addition, four files will always be reachable through specific URLs by using HTTP redirects. As of writing, these are:
- content/page/pi_faq_2021_spring_summer.md - the alias line in this file means that it can always be reached at https://cu-dsi-scholars.github.io/DSI-scholars/static/pi_faq/
- content/post/2020-12-09-call-for-faculty-participation-dsi-scholars-spring-summer-2021.md is aliased to https://cu-dsi-scholars.github.io/DSI-scholars/static/pi_call/
- content/page/faq_2021_spring-summer.md is aliased to https://cu-dsi-scholars.github.io/DSI-scholars/static/student_faq/
- content/post/2021-01-05-call-for-student-applications-dsi-dfg-scholars-spring-summer-2021.md is aliased to https://cu-dsi-scholars.github.io/DSI-scholars/static/student_call/
When a new FAQ or faculty call are released, or if additional static URLs are desired, these files will have to be edited to remove their alias blocks and those blocks added elsewhere.
Currently, clip art is hosted on the free image hosting site Cloudinary. It is not necessary to use this, but the site does have some advantages. The structure of a Cloudinary link has some useful information:
https://res.cloudinary.com/vdoriecu/image/upload/c_thumb,w_200,g_face/v1599765419/social_network_bskhfi.png`
https://res.cloudinary.com/USERNAME/image/upload/TRANSFORMATION/FILEID/FILENAME.png`
For the most part, when a new piece of clip art is uploaded it is sufficient to copy an old URL, if necessary change the user name, and change just the file id and file name component. This allows you to re-use the existing transformation, most of which are necessary to turn in the image into a thumbnail of the appropriate size. You an optionally adjust that on Cloudinary itself.
URL shortening is done through bit.ly. It is only truly necessary for the application forms, as Google forms does not allow HTML (maybe you can copy/paste, never tried).
- Create and update an application form by cloning the previous one
- Banner image is created by modifying opencall_faculty2.xcf using GIMP
- It can be helpful to also look at the call from the year previous, to see if any term-specific language needs to be included
- Draft an announcement and send it to Jonathan
- Make a decision on which projects to fund
- Close the submission form
- (Optional) Duplicate the submission sheet
- Modify the sheet and at least add columns
- Decision - 0/1 for approved for funding
- Program - best outcome for project, one of "DSI" for DSI Scholars, "DFG" for Data For Good, "CC" for campus connections, "Stats" for statistics department referrals, or "None" for projects to include for bookkeeping but not emailing
- Email greeting - "Dear XXX,"
- Modify the sheet, adding any desired rows (for example, externally sourced Data For Good projects)
- Create basic project pages
- Download the sheet as a csv
- Do not check this file into the repository
- Run the page creation script
- Download the sheet as a csv
- Clone and update the student application form (previous term's)
- Because the language between spring/summer and fall changes, it can be useful to also refer to last spring/summer's
- See the step below
- Email faculty regarding decisions by running the email script
Once the emails have been sent, update the tags and clip art for projects.
- Clone and update the previous student application information page.
- Clone and update the previous application form.
- Once a new form has been created, update the
Apply Now
link on the website by editing config.toml
- Once a new form has been created, update the
- Clone and update the previous student FAQ.
- Schedule an online information session (previous slides)
- Update, execute, and send the student announcement to Jonathan and Tian
In sending responses to faculty who were not approved for matching funds and who did not have a student already selected, faculty have the option of having their projects posted as unpaid internships. By default, the project_page_skeleton.R script creates pages for these but they are lised as "Closed". To open them:
- Change the category lines to "Open" in the project's
content/post
markdown file, re-build the website withblogdown
, and add/commit/push the changes - Add the project title to the application form
- Contact faculty, sending them links to the project page and application form and letting them know of the student deadline
For now, unfortunately students need to be tracked in two places: one for payment info and one for program oversight. The payment sheet should be cloned each term. In each instance, add rows to record every student and all of the faculty who participate.
This section relies on a Google script. It has a number of areas in which it could be improved, and consequently requires some additional work and checking to make sure that everything is OK.
- Stop the student application form from accepting submissions.
- Edit the closed-survey response to point students to the current DSI project doc
- Make a copy of the faculty submission sheet from the current term and rename it something like "For Script".
- Modify the sheet to contain only the projects listed on the application form, in the same order that they appear there
- Make sure that the sheet has the following columns:
- Greeting - How to greet the person in email
- Funded - 1 if DSI will be offering a stipend to the students selected for this project, 0 otheriwse
- Program - DSI or DFG
- Make a blank sheet in the student applications folder and call it something like "Student Application Script Results"
- Make a copy of the student submission response script from a previous term and move it to the correct folder.
- Modify this script to point the above two sheets and the student form results; the IDs can be found as long character strings in the sheet URLs
studentsSheetID
should point to the student application formprojectsSheetID
should point to the faculty submission copy from step 2.resultsSheetID
should point to the blank sheet from step 3.
- Edit the rest of the script:
- Strings that refer to different terms/years all need to be updated; if they are folder/file names, make sure they match what is in the drive
- The constants defining column numbers in lines 47 to 52 should be the matching columns from the faculty submission copy
- The constant
LAST_QUESTION_COLUMN
is the number of the last column in the student application sheet before the project selection begins. It is currentlyi
, or 9. NUM_PROJECTS
should be the actual number of projects that are in the application form, not the nubmer of rows in the faculty submission sheet
- Modify this script to point the above two sheets and the student form results; the IDs can be found as long character strings in the sheet URLs
- Run the
create_documents
function in the Google script from step 4- You will likely have to use the drop-down to change the selected function from
add_trigger_to_student_sheet
.add_trigger_to_student_sheet
makes it such that every time a student submits the files get regenreated. We don't really use this, as it would delete any notes that faculty would have made. - Double check the result by manually scanning the student application form sheet for a few random selected students or projects
- There should be the correct number of projects and each faculty should get the correct material
- You will likely have to use the drop-down to change the selected function from
- Download a copy of the results sheet from step 3 in the previous section as a csv.
- Run the faculty application review script to create email drafts
application_results_file
in this script should point to the csv from the previous step.
- Edit the sharing options for the student resume folder on Google drive to make sure that all faculty have read access.
- The script should give them write access to their own project folders, however if they used a non-gmail email address the sharing settings may need to be set manually.
At the end of the faculty selection period, faculty who have not yet made a decision should be contacted directly and reminded about the deadline. For those that have made a selection, they should be contacted using the committment confirmation script:
- Download a copy of the payment sheet as a csv and put it in the data directory.
- Execute the committment confirmation script.
Note that this script is not currently able to handle multiple students working on the same project - these cases will have to be merged by hand. The easiest thing to do is possibly to combine the email drafts.