Google Classroom Management System - Import and Export Data | Apps Script

Опубликовано: 04 Октябрь 2024
на канале: Google Workspace Tutorial
1,962
30

We’re going to create a Google Classroom management system using the magic Apps Script. The great advantage of this project is to import Google Classroom data to Google Sheets, and export data from it to Google Classroom.
Let’s see what we can do using the system:
1. We can import all our students’ names and email addresses with one click. We can do that for all the classes or a specific one.
2. We can send a personalized email to each of our students with one click.
3. We can check if we have a new student who has joined our
class, or if one of our students has left it.
The new student will be added automatically to the list, and at the same time, an announcement will appear to welcome our student.
4. We can create any number of classes with one click.
5. We can create any type of classwork programmatically.
The advantage of creating classwork programmatically is the possibility to import and export grades and other data even though the student isn't in our organization.
6. The possibility to check the attendees during a video lesson. We can get the names, email addresses, presence duration, and device type of each one who has joined our video lesson.
7. The Autoresponder Email feature during the holidays and out of office hours.
8. As a bonus, we’ll add a share icon that appears on all our Blogger articles to share any of them to the user Classroom directly.

Feel free to make your copy of the template that contains the complete code:
https://docs.google.com/spreadsheets/...


What we learn during this project:
0:00 Getting Started.
11:23 How to get a list of students in a class in the Google Classroom API query?
15:19 How to get a list of more than 30 students in a class in the Google Classroom API query?
18:35 How to insert the classroom data into a spreadsheet?
How to check if the sheet already exists?
21:28 How to import a specific class from Google Classroom?
24:38 How to send a personal email to each of our students in one click?
28:19 How to check if a new student has joined our class or a student has left it?
How to add a welcome announcement automatically?
33:48 How to create a classroom using the Apps Script?
37:40 How to get the topics’ names and IDs using the Apps Script?
39:30 How to create an assignment programmatically and attach a Drive file to it?
42:30 How to keep track of the assignment programmatically?
47:20 How to archive the assignments and prepare the template for a new one?
How to prevent archiving an assignment when it is already archived?
51:18 How to create a quiz assignment programmatically?
54:07 How to import the marks from the form destination spreadsheet to the master spreadsheet?
How to export the marks from Sheets to Google Classroom programmatically?
58:25 How to add a link or Youtube video/playlist link to an assignment programmatically?
01:01:20 How to create a short answer and multiple choice answer programmatically?
How to remove the empty elements from an array?
01:05:25 How to check the attendance in a video lesson, the duration of presence, and the device type?
01:11:57 How to auto reply to a received email out of work hours?
How to create a dynamic time-based trigger?
01:17:25 How to hide/show all sheets?
Could we take advantage of the Caller Property to show a specific sheet?
01:21:04 How to add a Classroom Share Button to the G Blogger and get the post URL dynamically?
The async and defer attributes.
How to add Non-breaking space to G Blogger?


Google Classroom API - Provision and manage your Classroom courses.
https://developers.google.com/classroom

Admin Report
Data retention and lag times:
https://apps.google.com/supportwidget...

Reports API: Prerequisites:
https://developers.google.com/admin-s....


The part of the Blog1 section that we need to add the Classroom sharing button after it:
P.s/replace the ANGLEBRACKETS word with the angle brackets symbol
ANGLEBRACKETS b:include data='{ shareButtonClass: "post-share-buttons-bottom invisible", overridden: true }' name='maybeAddShareButtons'/ANGLEBRACKETS

The code that we need to add to get the sharing icon and a dynamic post URL.
ANGLEBRACKETS script src="https://apis.google.com/js/platform.js" async deferANGLEBRACKETS ANGLEBRACKETS/script ANGLEBRACKETS
ANGLEBRACKETS g:sharetoclassroom url="data:post.url.escaped" size="32" ANGLEBRACKETS