Skip to content

CodeBot is a chatbot application created in NodeJS with predominately server-side functionalities. The database program chosen for CodeBot was MongoDB.

Notifications You must be signed in to change notification settings

AlbaHSultana/CodeBot-MyDissertation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

My dissertation project: CodeBot

CodeBot is a chatbot application utilized by two main types of users: computer science students and lecturers. CodeBot is hosted online http://www.doc.gold.ac.uk/usr/206/, in the homepage of the application, the chatbot is available, which responds to student’s queries related to SQL programming language.

In most cases the chatbot can perform language recognition and respond accordingly. It also has a rating feature and the data collected via the rating feature is stored into the database and used to create simple statistics. Lecturers can login with CodeBot to view chatbot statistics and edit chatbot’s bank of SQL related responses.

Motivation to develop CodeBot

Due to the COVID-19 pandemic, online education has become a current reality for students. As a result, the education system has changed drastically. Most learning institutions are now teaching remotely using various digital platforms. Furthermore, the ratio of students per lecturer is rising, affecting the amount of personalised learning each student is given. As a consequence of these circumstances, some students are having poor e-leaning experiences. One of the main issues is that students are lacking engagement and individualised support. Students are finding it difficult to ask lecturers questions remotely due to the limited times online, leading to student dissatisfaction and high dropout rates. In the best-case scenario, the solution would be to have one lecturer per student. Obviously, that is not possible due to financial restrictions.

Chatbots have the capability to solve this problem in an effective and cost-efficient manner. Therefore, with the motivation to enhance the e-learning experience, a platform independent educational chatbot has been developed, named CodeBot. It is aimed at computer science university students requiring immediate assistance with learning the programming language SQL.

CodeBot secondarily aims to take away part of the lecturer’s work load during the SQL programming sessions, as students can use CodeBot instead, to query about SQL’s theoretical aspects and syntax issues. CodeBot can upgrade the e-leaning experience of students as it provides increased interaction in learning at all times and regardless of the ratio of students per lecturer.

Additionally, many at times, browser searches provide irrelevant information and require university students to spend a long time searching through various websites. The chatbot provides convenience for students, as it produces fast, quality based, accurate filtered results. Lecturers will be granted access into the chatbot’s response bank, so they are able to view and modify the responses up to the satisfactory standards required to learn about SQL.

Main technologies used to develop CodeBot:

  • NodeJS
  • Express.js
  • MongoDB database program
  • HTML5
  • CSS3
  • Bcrypt.js
  • RESTful API and JSON format
  • Google Charts

CodeBot's accessability for students:

The chatbot responds to student’s queries related to SQL programming language. GUI index

CodeBot's accessability for lecturers:

Lecturers can login with CodeBot to view chatbot statistics and edit chatbot’s bank of SQL related responses. GUI login

GUI addtopics

GUI stats

CodeBot's MongoDB database

The database program used for the back-end of the application is MongoDB. The database’s name is “codebotdb”. The database is formed of three collections, which can be seen in the image below.

dbCollections

The records in the “users” collection, is the user registration details which are used to enable lecturers to log in. Every record in it has a field known as _id, which is the unique identifier for that record, in SQL that is known as the primary key. The next field is the username, then the “password” which is in the “main.js” file route data validation is applied to, to ensure the minimum length for the password is 5. Also, the password is never stored in it’s original format, but rather the hashed password is stored, this is for security reasons. The last field is the “email”, this field is validated too to ensure the email is valid, this is done in the “main.js” file under the route “/registered”.

dbUsers

The collection “topics” contains records of the chatbot’s responses related to SQL queries. Apart from the default _id field, each record has three more fields, the “name” which stores the keyword or statement name, this field has been validated in the “main.js” file to ensure the name has a minimum length of three. Another field is “description” which contains the explanation of the SQL statement. And the last field is “writtenBy” which contains the name of the individual who wrote this response.

dbTopics

The collection “ratings” is used to store the rating of a SQL chatbot response. The field “messageId” is the unique_id of that record from the collection “topics”, here on the “ratings” collection it has been used to reference the external record, this would have been the equivalent of a foreign key in SQL. The field “rating” stores the number of stars the response got.

dbRatings

All the data in the MongoBD database are in the format BJSON, which is the binary form of JSON format. This is ideal as BJSON can represent complex structures like arrays and custom objects.

About

CodeBot is a chatbot application created in NodeJS with predominately server-side functionalities. The database program chosen for CodeBot was MongoDB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published