Inspiration: We have friends who ULA for CSE 220: Introduction to Programming with C. To grade the assignments students submit, they have to download the C files from D2L, and then open the file into an IDE. They then need to compile the file and run the test cases. Only then would they delete the file for the student and move on to the next one. This process is a very tedious exercise, since they have to deal with downloading the files, running the compile command (which can different for each student as they do not always properly name the c file), and deleting the file for every student. This is a problem that all CSE 220 ULA's and TA's face. To streamline the process, we decided to develop a browser extension that allows you to preview C files in D2L instead of having to downloading them. We also accounted for the student experience by adding a calendar button just to improve ease of use, allowing students to stay on track much easier than before.

What it does: It's a D2L Browser Extension that allows you to preview C files instead of having to downloading them, and also provides a calendar feature that displays all of the assignments due in a single calendar, making it easy for students to keep up with their classes.

How we built it: We built it using mainly TypeScript and some HTML.

Challenges we ran into: Query selector for consistent elements always selected, opening a new tab for a preview with an extension, ensuring information downloaded from web request was accurate having to migrate JavaScript libraries to inside the source code to avoid violating content security policy.

Accomplishments that we're proud of: Successfully navigating issues with query selectors, handling dynamic web content, and managing the extensions' functionality gave us a significant understanding of complex web technologies. The knowledge is invaluable in web development.

What we learned: The importance of understanding the DOM structure and how dynamic content can affect element selection. Improved skills in CSS selectors and XPath, enabling more precise targeting of elements. The realization that web pages can be unpredictable, and selectors might need regular updates or checks for consistency. Understood the limitations and capabilities of browser extensions in interacting with the browser and web content. Enhanced understanding of network requests, HTTP protocols, and data formats (like JSON, XML). Learned about the trade-offs and challenges in maintaining security while ensuring functionality.

What's next for D2L+: Expanding the scope of D2L+ from being able to preview just C files to being able to preview all types of files, as right now the only files that can be previewed on D2L are pdfs.

Demo link: https://www.youtube.com/playlist?list=PLBuPkOvOHF89jf-i5ZMRKSp0FU3yvURKw

Share this project:

Updates