Inspiration

Our team was inspired by Liam's experiences with his mother, a teacher. She has been tasked with creating a Google Classroom containing a large amount of assignments to help a student catch up with his peers academically when unable to attend school in-person. As such, automating creation of Google Classroom assignments from a list would be a user-friendly way of saving time, while utilizing a resource that most teachers have created already.

What it does

The Flask web application prompts the user for their Google Classroom credentials and guides them in either selecting an existing course or creating a new one from their syllabus, calling the Google Classroom API. Next, the Python back end scans in PDF or DOCX files using the Python libraries pdfminer.six and docx2text, respectively. The data from the text is then reformatted and interpreted using regular expression parsing. This data is used to create assignments within the Google Classroom containing a title and due date.

How we built it

We began by creating a system design with a flowchart, along with deciding upon the template of the input files. The stages of this flowchart included API authorization, creation or selection of a Google Classroom course, uploading the syllabus, parsing of the syllabus (differing based on the file format: PDF, TXT, or DOCX), and calls to the API. We then created three files for each of these broader stages: selection/creation of the course data, parsing of the syllabus, and calls to the API. These were eventually merged as the front end came into focus.

Challenges we ran into

As many of us were new to Github, figuring out push and pull requests and how to avoid causing conflicts was difficult at first, but we quickly became used to the workflow. As well, we faced several limitations from the API that required us to lower the scope of our project, but in turn this allowed us to focus on delivering a high quality and focused end result.

Accomplishments that we're proud of

We are proud of having a complete working back end and front end, as for all but one member, Liam, it is our first hackathon.

What we learned

We learned how to use Flask from the ground up and contribute to a project using Github. As well, we gained valuable experience with string manipulation, data APIs, and organization of data.

What's next for Sillybus

It is possible that this project could be expanded into an online server-based product. This would enable the project to be used across several different time zones. As well, the Google Classroom API could possibly be used in combination with the Google Drive API to upload accompanying files for the assignment when creating them. If the Google Classroom API is ever updated, we would like to allow the user to modify grading weights, create assignment categories, and assign reading materials from the syllabus through this application, as it is not currently possible due to the limitations of the API.

Built With

Share this project:

Updates

Submission history