Project Description #
Sillybus is a web-based tool designed to automate the creation of Google Classroom courses and assignments from a syllabus file (PDF, TXT, or DOCX). Built with Python, Flask, HTML, CSS, JavaScript, and the Google Cloud API, the application streamlines a traditionally tedious and manual process for educators.
The application guides users through a multi-step workflow: first authenticating with their Google Classroom credentials, then either selecting an existing course or creating a new one. Users then upload their syllabus file, which the Python back end processes using libraries such as pdfminer.six (for PDFs) and docx2text (for DOCX files). The extracted text is interpreted using regular expression parsing to identify assignment titles and due dates, which are then used to programmatically create assignments within the Google Classroom via API calls.
The system was designed around a clear flowchart encompassing API authorization, course selection/creation, syllabus upload, format-specific parsing, and API-driven assignment generation. The codebase was organized into three primary modules corresponding to these stages - course data management, syllabus parsing, and API interaction - which were later integrated as the front end was developed.
The project was conceived at a hackathon and delivered as a fully functional product with both a working back end and front end. Future directions include deploying the application as a server-based product to support multiple time zones, integrating the Google Drive API to attach files to assignments, and expanding functionality to support grading weights, assignment categories, and reading material assignment as the Google Classroom API evolves.
My Role #
I was the driving force behind the initial concept for Sillybus, drawing inspiration from my mother’s experience as a teacher. She had been tasked with manually creating a large volume of Google Classroom assignments to help a student who couldn’t attend school in person catch up academically - a time-consuming process that I knew could be automated. This personal connection to the problem shaped the project’s core mission: saving teachers time by leveraging a resource they already have - their syllabus.
As the most experienced member of the team, as this was the first hackathon for all but myself, I took on a leadership and mentorship role throughout development. I helped guide the team through our GitHub workflow, assisting teammates who were new to version control with push/pull requests and conflict resolution. I contributed across the full stack, working on both the Flask back end and the front end integration, and played a key role in navigating the limitations of the Google Classroom API, which required us to thoughtfully scope the project to deliver a polished and focused result. This experience reinforced my skills in rapid prototyping, API integration, team leadership, and building practical tools that solve real-world problems.
Code #
Sillybus is open source and available in this GitHub repository.