cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
matiasferrari
Community Member

Attendance (Parameters)

Jump to solution

Hello, 

I've built a web scrapper with Python to scan student's attendance for all courses within a school. For this, I have an index of all courses with their course_id, and weekly one by one, the scrapper goes and stores the values for present, absent, late for each student in student within the Canvas Attendance list. With this tool we get valuable information to keep track of students behavior throughout the semester and it feeds an alert system to track students that may need support in their learning, connectivity (if on pandemic lockdown) and/or counseling. 

However, the only parameter that Canvas seems to pass to Attendance is de username which in itself is hard to link to the user's email, student_id and furthermore, to connect the attendance data to institutional data like grades that lives outside of Canvas. I've tried some different routes that requiere the scrapper to go into other Canvas pages (People) and collect that data, however the process time gets longer. 

Scanning around 220 courses takes the scrapper about 1 hour and a half  to do the job (going only through attendance, which is the slowest page to load within the Canvas menu). If I add that extra layer, the scrapper does a wonderful job and provides the whole information I need, but it takes about 2 hours and a half of three.

Is there a way to pass extra data form Canvas to Attendance (like student_id or email) in order to reduce the process time for this web scrapper? I have no direct access to admin privileges, but if this is something that an admin-level-user can do, I might be able to ask for such a modification to the IT people in the University.

Thanks in advance, 

Matias

Design School, Universidad del Desarrollo

Chile

 

0 Kudos
1 Solution

Accepted Solutions
nwilson7
Community Champion

@matiasferrari Not sure if this is everything you are looking for but your Canvas Admin does have an Attendance report that they can run that looks like it will provide you most if not all of the information you are looking for without the need for custom scripting/scrapers.

https://community.canvaslms.com/t5/Admin-Guide/How-do-I-run-Roll-Call-Attendance-reports-for-an-acco...

Hope this helps!

-Nick

View solution in original post

2 Replies
nwilson7
Community Champion

@matiasferrari Not sure if this is everything you are looking for but your Canvas Admin does have an Attendance report that they can run that looks like it will provide you most if not all of the information you are looking for without the need for custom scripting/scrapers.

https://community.canvaslms.com/t5/Admin-Guide/How-do-I-run-Roll-Call-Attendance-reports-for-an-acco...

Hope this helps!

-Nick

View solution in original post

Thank you @nwilson7,

It is a good strategy, and I've also used those reports and also built a scrapper to autofill the text field width the data I need for each course in order to get the report (this, because I need to process about 270 courses weekly) and I have no admin-user-privileges.

What I haven't been able to solve yet, is to automatically download those .csv files from an email account to a specific organized folder to, then, clean and process that data to feed the alert system. That is why i kept working with the initial method.

Best