Though undergraduate students stand to gain a plethora of knowledge and assistance from their TAs, sometimes office hours do not facilitate these benefits. In particular, in the introductory engineering computer science, students may find themselves in a room of 30+ others, waiting for a TA to come help them with their code. Likewise, TAs may find they are spending too much time with an individual student who does not have a clear, immediate grasp of their problem. Our current solution to organize office hours is to have students add their name to a list and have TAs check their names off as they go around. To replace this system, we wanted to have a way to force students to write their own question so to save time on both the student and TA's end.

What it does

The first thing our program does is pull all of the student IDs, section number, and their name and store them into a database of students. We then use a web application to allow a TA or professor with admin permissions to start a new session and create a session password. The web app also has a student interface which allows students to enter their student ID, the session password, and a specific question. We use this session password to ensure that students are only able to join the queue if they are physically in office hours. From there, the TA can display the public queue which will show each student in the order of question submission. The TA can choose to start a 'help session' with the student, which will add a party parrot to the student's name on the public queue. When the TA finishes with the student, they will end the 'help session', thus recording data about the length of the interaction and the question associated with the student. We only allow a student to have one question on the queue at one time, making sure the rotation is fair for all who come. At the end of office hours, the TA will be able to close the session, which will save the questions and student information along with the session ID.

How we built it

We began in python, writing a small script to pull data from a .csv file containing the student information. This information is then stored into our django models. There are several other models to contain and keep track of how many times a student submits a question in a given session and how much time is associated with their question.The views to implement the rendering of each page were also created in django, and we were able to wrap the code in html and css, formatting and adding flair to the website itself. We used the built in capability to launch and host our own server.

Challenges we ran into

One of the biggest challenges we faced was deployment. We started trying to use Amazon Elastic Beanstalk, then tried Heroku, then tried Amazon EC2. Since this wasn't something any of our group had experience with, it took us a long time to figure out the process and we weren't able to finished it before demoing. Implementing Javascript to automatically refresh the public queue and the TA dashboard was also a challenge.

What we learned

Going into the project, only one of our team members had experience in django. We all had some experience in python but we definitely were challenged to think about how to create a valid model-view-controller program. We utilized djangos features to add functionality to our webpage. We also learned javascript and html to improve the look and feel of our website.

What's next for 404TAsNotFound

We plan to make the application more secure and stable, and actually deploy it, so it can be used for the introductory engineering programming course at Iowa and perhaps more courses in the future.

Who are we?

Jason Ryan

Senior, CSE - the grumpy uncle

Olivia Sandvold

Sophomore, BME - the cool dad

Madeline Silva

Sophomore, CS - mom

Share this project: