Inspiration
I was inspired by noticing that I, along with most McGill students I know, frequently redownload files from MyCourses whenever we need them. This leads to countless duplicate files, wasted storage space, and difficulty keeping track of important materials. I realized this often happens because students are too busy or forget to organize their downloads into appropriate class folders. Creating an automatic extension to handle this task seemed like a simple yet highly impactful solution.
What it does
CourseSort is a browser extension that automatically organizes files downloaded from MyCourses. It detects the type of file and places it into the correct folder for the corresponding class, keeping everything tidy and preventing duplicates. If a file is downloaded from a specific content page, the extension generates a precise file path based on its context, allowing for seamless organization and accessibility.
How I built it
We built CourseSort as a Chrome extension using JavaScript for the logic, with HTML and CSS for the user interface. The extension relies on the Document Object Model (DOM) to track file downloads and generate file paths based on MyCourses' structure. We implemented file handling logic to sort downloads into appropriate folders, despite Chrome extensions having limited access to the user’s file system.
Challenges I ran into
One of the biggest challenges was learning how to navigate and manipulate the DOM effectively. Generating a precise path for downloaded files required a deep understanding of the MyCourses website structure. Another huge hurdle to overcome was managing file organization without full access to the user’s file system in Chrome extensions presented technical hurdles. Overcoming these challenges involved significant research, testing, and perseverance.
Accomplishments that I'm proud of
I’m proud of persevering through the challenges and successfully building a working solution. Specifically, I’m most proud of the way CourseSort generates a complete and accurate file path for each download by observing and understanding the DOM of MyCourses. This feature ensures files are precisely organized, saving time and effort for users.
What I learned
Through this project, I learned a lot about building Chrome extensions, working with file systems, and effectively navigating and manipulating the DOM. Additionally, I gained valuable experience working as a team, dividing tasks, and tackling complex problems collaboratively.
What's next for CourseSort
The next step for CourseSort is to expand its functionality to work with schools other than McGill that also use Brightspace (the platform behind MyCourses). Since Brightspace follows similar structures, this lightweight extension can be adapted to help students worldwide boost their productivity and eliminate the hassle of organizing files manually.
Log in or sign up for Devpost to join the conversation.