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.
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.
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.
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.
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.
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.
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.
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.
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.
If we were given more time, we would be able to implement many more features such as: