Generate Student Cards - shiftsayan/gradecard GitHub Wiki
Student Cards are the student-facing view of Gradecard in which they can see their performance in the class and other information. In this step we will generate Student Cards for each student in the course, share it with them, and store its details in the Gradecard Sheet.
-
Student Cards comprise of the data sheet and one or more view sheets as you can see in the base Card.
-
Student data is synced by Gradecard from the Gradecard Sheet to the Data sheet each Student Card as a key-value mapping. Only data you wish to share and only data belonging to a particular student is synced to a student's Student Card. Familiarize yourself with the Data sheet. This sheet should be blank and you do not need to make any modifications.
-
The Dashboard, Scores, and Badges in the base Card are the view sheets. This is also defined in code here). These sheets display the data from the key-value mappings in the Data sheet along with other information. These sheets VLOOKUP keys from the Data sheet and display their values in their cells. For instance, the formula
=IFERROR(VLOOKUP("section",Data!$A$1:$B,2,FALSE))
searches for an entry in the Data sheet with the key "section" and displays the corresponding value (the student's section) in the cell. Unsurprisingly, since you have control over the data you sync to the Student Cards, there is no restriction on the keys you can use as long as they are no duplicates. View sheets can also contain other Google Sheets formulas for calculations and charts for visualizations. -
TA Cards, like Student Cards, contain data belonging to a particular student and views to display that information. However, these are not shared with students so they can contain additional information that you might not want to share with the student, such as aggregate statistics. By default, Gradecard does not generate TA Cards for each student.
-
Configure the view sheets in your copy of the base Card with the data, calculations, and visualizations of your choice. These view sheets will be copied to the Student Card for each student. Do not worry if you are unsure if you have everything since you can update the views later.
-
(optional) If you wish to also create TA Cards for each student, replace this line with a call to
prompt_agents
. -
Run
python main.py
. -
In the CLI select the "Create cards" option. This will automatically create blank Student Cards for each student in the roster and shares it with them. The
export
sheet within the Gradecard Sheet will also be updated with the Andrew ID and email for each student and the student spreadsheet ID (ssid
) as well as the TA spreadsheet ID (_ssid
), if any. -
We have only created empty sheets so far but not added any views to them. Run
python main.py
again. -
In the CLI select the "Update views" option.
-
Now, in the CLI choose the sheets whose views you want to update. This will likely be all of them.
-
Now, in the CLI when asked which cards you want to update, press the "Return" or "Enter" key. This will update the views for all students.
-
Whenever you update the views in the Student Cards, repeat the last three steps. Note that this will override any local changes made to a Student Card.
-
In all cases, students might not get a Google Sheet invitation for their Student Card even though it was shared with them. It is a good idea to send each student an email with a link to their Student Card asking them to bookmark it. This is easy to do with mail merge.