Achievements - MoSCoW List

Requirement Priority Completed Contribution
Must be able to detect trigger words based on user’s input – response will be given once intent has been detected. Must have YES Nishan, Arif
Must provide an activity for the user to do when trigger word is detected – activity will be created in Voiceflow by NHS clinician. Must have YES Nishan, Arif, Ruochen
Clinicians must have a way to edit the system to tailor towards whatever requirements they may have – edit conversations in Voiceflow plus list of intents in Google Sheets. Must have YES Arif, Ruochen
The system must be able to work fast. Must have YES Nishan
Information must be kept secure and in a readable format. Must have YES Arif, Nishan, Ruochen
Player should be rewarded for completing an activity with in-game items such as diamonds, iron, gold etc. Should have YES Nishan
Key functionalities (must have and should have) 100%
Optional functionalities (could have) 100%

We are very happy to say that we have been able to implement all requirements into our project. Our project did not involve any "Could have" requirements, therefore none were listed. We have, however, implemented all key functionalities.

Bugs and errors

Currently, we have not found any bugs in our system. This does not necessarily mean the system is perfect, however, bugs may arise as newer parts are added to the code.

Individual contribution

Work packages Arifuzzaman Nishan Ruochen
Client liaison 33% 33% 33%
Requirement analysis 33% 33% 33%
Research 35% 30% 35%
Programming 10% 85% 5%
Testing 5% 85% 10%
Development blog 45% 10% 45%
Website Editing 50% 10% 40%
Video Editing 35% 35% 30%
Overall contribution 30% 40% 30%
Roles Team Lead, Researcher, Report Editor, Front-end Developer Back-end Developer, Tester Researcher, Report Editor, Front-end Developer

We have each been able to contribute much to the overall project and are happy with individual additions to it.

Critical evaluation of the project

Functionality

As shown by our MoSCoW table above, we have been able to achieve all goals. All required functions as of now work correctly with no errors. We have been able to successfully implement NoCodeAPI into our system which will be connected to a Google Sheet project so that the NHS clinicians are able to add and edit the intents. Furthermore, the parser we have created successfully parses most of the Voiceflow functions. There are some Voiceflow functions which cannot be parsed, but these are not relevant to the MineACT system.

Stability

Through our rigorous process of in-house testing, we have been able to conclude that our project has no present errors. The user is able to successfully use the MineACT system without facing any bugs or errors. In the future, more extensive testing may be required, but the project works in its current state without any problems.

Efficiency

Initially, the efficiency of our project was quite poor. This is because we made a GET request to the linked Google Sheet at every instance of a user entering a string into the in-game chat. However, to improve efficiency, we had ensured that the GET request was made at the startup of the Spigot server. This ensured that we only had to make one single call to the API without having to continuously do so. All intents will be stored in a list. We will access this list to compare the user's input and the intents. The response of the bot is very fast.

Compatability

Currently, our project is only compatible with Minecraft 1.16.3. We had used this particular release since there were some Java libraries which were not updated for the latest version of Minecraft at the time of development. However, given more time, we would be able to update the plugin for usage in the latest versions of the game. The Python script that we have created is compatible with Python versions 3.6 to 3.9. We primarily worked with Python 3.9, but have been able to see it work with older versions. We believe most versions will work so long as the requests library is compatible. Our project also works on Windows 10 and Linux systems (we have tested on Ubuntu and CentOS too). Java 8 (or OpenJDK 8) is also required to run the plugins.

Maintainability

Our project has been well-documented and can certainly be modified for any other uses required. We have used Javadocs to be able to document aspects of functions. Future developers will be able to follow along with these comments in our source code so they are able to change, add, or remove parts of the code. Furthermore, each function has a clear name and variables are given appropriate and clear labels too. We believe with the state of our documentation, future developers will be able to take it on board easily.

Project management

We have 3 people in our team. This means that we have been able to effectively distribute work amongst ourselves. To communicate, we had used Discord, a free service primarily for gaming which can be used for communication. This is where we primarily spoke and had updated each other on progress. Alongside this, we also created a project board on GitHub. This project board worked as a kanban board. We were able to delegate work to each member. This is a form of agile development. We also had weekly meetings amongst ourselves and with our TA/supervisor to help us keep track of the overall project.

Future works

If we were given more time, we would be able to implement many more features such as:

  1. Natural Language Processing (NLP) - This would ensure that users are able to enter sentences which are semantically similar to other intents within the Google Sheet. The NHS clinicians will have to enter less into the Sheet if some form of NLP was implemented.
  2. Only give reward when reaching actual ending of conversation - This would ensure that the user had to go through a certain length of the conversation to be able to receive a reward rather than getting it regardless of where it ends.
  3. Keep track of intents from users - Perhaps a separate Google Sheet can be created to make POST requests to a separate Google Sheet to analyse user's inputs and their troubles. Clinicians would be able to use this information to analyse someone's responses.
  4. Allow clinicians to upload multiple conversations and trigger a different one depending on the cognitive distortion which has been detected.