We were inspired by our systems programming professor Bob Dondero's dedication to providing his students with the best possible education. In particular, Professor Dondero answers every single student question on Piazza, the course discussion board, with an average response time of 15 minutes. We were inspired to allow other students to experience learning on a similarly personalized level by providing a more effective interface for teachers to interact with their students.

What it does

Dondero provides a real-time discussion platform for teachers to answer student questions on a particular video, perhaps a lecture. Students can ask questions at any point during the video, with the instructors having the ability to pause the video at any point to address particularly salient questions. Both the instructors and the students are free to answer questions, and the instructors also have the ability to archive questions that have been sufficiently resolved. A general chatroom is also provided to facilitate general discussion that is not directly tied to specific questions.

One of the key ideas behind Dondero is the ability for students to maintain anonymity relative to each other, allowing the more shy and reserved students to engage more effectively. At the same time, students log in through a database using their student emails, allowing instructors to hold potentially disruptive students accountable for their actions.

How we built it

For the login system, we utilized a combination of PHP and MySQL to retrieve user information, store it using Amazon's Relational Database Service (RDS), and authenticate users. An HTML page was constructed for each of the two user types: Teacher (for instructors, TAs, professors, etc.) and Student. The majority of website features, including the ability for teachers to embed videos via Youtube link, mark questions as answered, and pose new questions, were implemented through Javascript. Features that required real time monitoring, such as synchronizing student and teacher embedded videos and maintaining synchronized answered/unanswered question columns, also required constant communication with a Python server. Webpage elements were styled with CSS to enhance aesthetics, and the websites themselves were hosted by Amazon's Elastic Compute Cloud (EC2).

Challenges we ran into

One of the primary challenges we ran into was the inability for two separate connections to access the same port. Because of this, we needed to use two ports: one to query our login database and one to execute the Python commands. Luckily, none of the pages required the use of both ports at once, so we were able to allocate separate ports for login authentication and Python commands. This caused other complications, such as difficulty in storing variable values between pages hosted by different servers, though these were ultimately resolved as well.

Accomplishments that we're proud of

We're extremely proud of the completeness and coherency of the project, especially considering the state of our first hack-a-thon project. It was the first time for many of our team members using some of these languages and technologies, and we each feel that we have improved tremendously both in terms of code quality and techniques.

What we learned

Our understanding of the interplay between various languages and technologies in a single project has improved greatly. Our comfort with each of the languages and technologies used has increased significantly as well, particularly in Javascript, CSS, PHP, and AWS.

What's next for Dondero

In terms of basic improvements, a number of secondary features are missing, including basic security precautions and animated graphic design within the website. On a larger scale, there is potential for Dondero to utilize the same principles to expand into other areas, such as a Dondero-equivalent for conference calls. Of course, the first thing on our plates is to let Professor Bob Dondero know that he has a program named after him now!

Share this project: