
I created all the elements with classes and id's so that the popup.js script is able to make changes to it. Within it, the script, popup.js, and stylesheet, popup.css, are linked, as well as a stylesheet for Font-Awesome 4.7.0 icons.

The file, popup.html, contains the HTML content of the extension popup window after the extension is clicked on. The service worker is background.js and the default popup is popup.html, and the extension requires permission for chrome storage, notifications, and alarms. I have chosen to use Manifest 3 because of its use of service workers instead of background workers, which run when an event occurs rather than constantly running in the background.

Here, I set the extension icon to an image of a checklist. The file, manifest.json, contains the information necessary for chrome to determine the extension details., from the version of Manifest, to the extension's name and icon, to the roles of the other files, to the permissions the user must allow the extension to have in order for it to function properly. I have implemented many useful features, such as the ability to rank/prioritize certain tasks, set a task date, sort tasks by chronological order, check off completed tasks, toggle between the dark/light themes, mute the sound effects for checking of tasks and deleting tasks, and setting the notification options.

The goal was to create a convenient place to record the tasks that I need to complete, so that I can be more productive through more effective planning. My final project for CS50x is a to-do list in the form of a chrome extension. To-Due List Video Demo: Description: Introduction
