MoSCoW Table
Below are our MoSCoW requirements. The requirements we have met are marked with "Finished" while those that we haven't are marked with an "X".
ID | Requirements | Priority | State | Contributors |
---|---|---|---|---|
1 | AR pet that can be overlayed on reality | Must | Finished | Ce, Toma |
2 | Automatic Speech Recognition and Speech-to-Text Input/Output | Must | Finished | Ce, Toma |
3 | Search for Bus Times and Tube Times | Must | Finished | Can |
4 | Search for daily news via keywords | Must | Finished | Can |
5 | Backend Web Server to store user information and provide cross-application support | Must | Finished | Alex |
6 | Cross-platform integration to transfer data | Must | Finished | Alex |
7 | Pet animations when interacted with | Must | Finished | Ce, Toma |
8 | Website / Development Blog | Must | Finished | Alex, Ce, Can |
9 | API Integration (for extendability) | Must | Finished | All |
10 | Widgets for the app (such as music scrollbar, alarm clock) | Should | Finished | Ce |
11 | Social media integration with the pet | Should | X | All |
12 | Personalized daily routines based on user interest and app usage | Should | X | Alex, Ce |
13 | Personalized media and news display based on user preferences | Could | X | Ce, Can |
14 | Notifications and reminders when the users haven't logged in in a while | Could | X | Alex, Ce, Can |
15 | Feeding schedule for pet, like Tamagotchi | Could | X | All |
16 | Sentient AI Pet connected to Robots | Won't | - | - |
17 | WebGL Version of the app | Won't | - | - |
18 | Pet integration with Virtual Reality | Won't | - | - |
19 | Multilanguage support | Won't | - | - |
Individual Contributions
Work Packages | Can | Ce | Alex | Toma |
---|---|---|---|---|
Client Liaison | 10% | 40% | 40% | 10% |
Requirement Analysis | 30% | 60% | 10% | 0% |
Research | 20% | 40% | 20% | 20% |
UI Design - Desktop | 45% | 55% | 0% | 0% |
UI Design - Mobile | 0% | 0% | 0% | 100% |
Programming | 20% | 30% | 25% | 25% |
Testing | 0% | 34% | 33% | 33% |
Development Blog | 80% | 10% | 10% | 0% |
Website Editing | 33% | 33% | 34% | 0% |
Video Editing | 0% | 10% | 90% | 0% |
Overall Contribution | 25% | 25% | 25% | 25% |
Roles | UI Designer, Programmer, Report Editor | Programmer, Researcher, Project Manager, UI Designer, Client Liaison | Programmer, Client Liaison, Website editor | UI Designer, Programmer, Tester |
Known Bugs
1. Speech recognition may sometimes be inaccurate due to Watson’s voice detection logic
2. Dragging the desktop pet to the edges of the screen can sometimes obscure the visibility of the speech bubble that pops up when the pet responds
3. When interacting with the desktop GUI, the input fields send an empty query if the user clicks on the input field, does not enter anything, then clicks away
Critical Evaluations
Functionality
Our group has always focused on our project’s main ambition: developing interactable pets for both mobile and desktop. With that main goal in mind, we have also added multiple API files to support things such as retrieving news, retrieving TFL times and displaying a real-time clock. In addition to our main goal, we have also added our client’s requests such as making the pets respond to user speech commands (sort of like a chatbot), having the pets respond to user questions and have added support for users to add their own commands through an Excel csv file. This way, users can add their own commands that the pet will respond to and execute.
Stability / Efficiency
Our project is quite stable: the pet responds in a predictable manner and its responses can be reproduced even when the app is closed and restarted. The same applies for the login and APIs – the requests to the web server and other websites are reproducible and stable but depend largely on the latency of the user’s internet. One problem with efficiency that does arise from time to time is that the pet takes some time to respond to the user’s voice commands – this is caused by the pet’s response interacting with IBM’s Watson framework. Due to this delay, it may seem as if the pet is not responding at times when it is in fact processing the user’s commands.
Compatibility
Our application is currently compatible with Windows on Desktop and Android on Mobile. The app is currently not available on MacOS and Linux as it interacts with the Windows API to display the application on top of already running applications to create the transparent app window effect. This is only possible with Windows API and is thus fit for running on Windows only. The users can download the executable file to run the application on their local machines.
Maintainability
The project is modular in nature, with each new functionality being added as a separate API both for readability and extendibility purposes. This also brings with it the added benefit of making bugs in our code easier to locate and debug. The code is also heavily commented on to make sure that our client has a good understanding of what each method does and how the code itself is structured.
Project Management
Our project followed a weekly schedule in which we held meetings with our TA and among ourselves to make sure everyone was on the same page. We followed a Gantt chart that we had created and tried to make up for times we might have been busy by creating alternate plans whenever necessary. Each group member was allocated a specific task and focused solely on that task which allowed for a more concentrated effort on all parts of the project. We also held meetings with our client whenever necessary to inform them of our progress and any developments.
Future Work
1. Adding different kinds of pets in the future, each with their own accessories, foods and interactions in order to ensure that users have a wider range of pets to interact with thus providing more engagement with the app.
2. Integrating a Map API so that the pet can go out and play by itself and come back when the user opens the app, simulating real-life pet behavior thus making the app more engaging for users. This itself can be expanded on by adding a level/friendship system to the pet, thus allowing for more realistic feedback from the pets when the user interacts with them.
3. Adding fully functional cross-platform support between the applications so that users can transfer their pets between mobile and desktop whenever they want to. This will allow for a lot more dynamic interaction opportunities while allowing users to carry their pet wherever they go. Adding on top of this, fully implementing pet customization will enable users to switch over their pets from one platform to another whilst having their pets retain the same customizations.
4. Adding more Settings to the menu: things like customizing which widgets are visible on the screen, manually selecting which microphone the user would like to use etc.
5. Deploying a larger server: with all the above-mentioned functionality, we might need a more complex server in the future to store the data and preferences of users, which will also prevent the app from crashing due to an overload of requests if the app receives enough attention from a wide userbase.