Click here to view the project in GitHub

Original Problem Statement

Currently, there exists no easy and customizable way for students to have instant access to the knowledge that they require for a given class. There remains a disconnect between students and professors when professors are not available outside of class. Our team proposes a solution to this problem being a chatbot that students can interact with giving them real-time feedback on their questions and inquiries when the professor is not readily available and the students need an immediate answer.

Our Solution

We created a fully connected web application with the capabilities to:

  • Create student and professor user profiles
  • Execute chats with the neural network through the student client
  • Add question/answer pairs from the professor side and automatically train the neural network
  • Bring missed questions up for the professor to review and add to the known question base
  • Create public question/answer pairs that can be viewed by any professor teaching another section of that class

Tools and Technologies Used

To implement the project we used many different tools including PyTorch, NLTK, Django, Bootstrap, Pivotal Tracker, and Github. PyTorch, NLTK, and Django are all Python libraries that we used to develop the neural network and backend server. We used Bootstrap CSS to create styling for our HTML pages. Pivotal Tracker was used to track our user stories and current sprint progress. Github was used for our source code management hosting all source code as well as managing branching.

Languages

  • Python
  • HTML
  • CSS
  • JavaScript

Challenges Encountered

Throughout the development of the Satbot TA, the team faced many unique challenges. The first challenge we needed to overcome was connecting the AWS database to our Django app. This is still an ongoing process as the perfect solution has not been found. Another challenge we faced was fine-tuning the neural network to give the best responses to user input. This is a challenge that will never be overcome, but that is by design. The Satbot TA should always be adapting and continuously becoming more accurate and confident in its responses. Understanding how much time development actually takes was another big problem that also forced us to limit feature creep and keep our sponsor's expectations realistic on the product that we can provide in the given time constraints. Finally, revamping the entire frontend code with Bootstrap CSS was a big learning curve for the entire team.

Personal Reflection

Embarking on this semester's project presented an opportunity for personal and professional growth, as I navigated new challenges and broadened my skillset. Assuming the leadership role, I honed my communication skills with clients and advisors, effectively delegated tasks, and took ownership of team mistakes, learning invaluable lessons along the way. This project marked my first foray into full-stack development and working with Django, a venture that was both daunting and ultimately rewarding. I discovered the significance of aligning client expectations to prevent over-promising and the critical need for maintaining current documentation throughout the development process to avoid end-of-project complications. Moreover, this project enabled me to delve deeper into the realm of natural language processing, further enhancing my understanding of its capabilities and potential applications.

Client Preview