Inspiration

As college students, we find that time management is essential to our academic success. We decided to create this project to help ourselves with time management. We have all been in a moment where we had an assignment due much earlier than expected, and we wanted a program to solve that issue.

What it does

Task Master organizes all our tasks from four main sources: Canvas, Autolab, Gradescope, and Piazza. Each class instructor has a different style for assignments, but our code combines all the sites so that all that information is given together to the user. This data allows the user to figure out exactly when the next task is due by searching by class.

How we built it

Our program was built on selenium and webdriver. We needed a way to make sure that the user can access the four sites above together, so all sites and data are automatically stored in a json file for the user to see. Privacy is at the core of our program, so we made sure that no information is stored unsecurlely online. After the user inputs their username and password into the program, it is removed. Once the program has access to each website, it goes through different links to retrieve different pieces of information. For example, a lot of assignments and assignment deadlines are stored in gradescope, so our program gets the assignment name, deadline, and even grade if it has already been graded by the instructors.

Challenges we ran into

We ran into many challenges when finding the specific links for sites. Inially, each HTML file had a username and password with an "ID" but later on, we realized that Gradescope did not. We were able to get around this by using xpath with webdriver, and we were able to find out a pattern so that we could get through this process smoothly. A lot of the data was stored at the same level in HTML, so we figured out how to loop through to get all that data. Our final issue was creating the terminal interface for the user. We had some issues combining all the different programs that we wrote for each site. We solved this issue by commenting out all the test parts and any unnecessary code.

Built With

Share this project:

Updates