Evaluation

Evaluating our achievments and individual contribution.

Achievement Summary

Overall, we are delighted with the product we had the opportunity to build. It is an honour for the team that our project has been demonstrated to porters at Northumbria Healthcare NHS Foundation Trust and will hopefully be the foundation for a new system of pharmaceutical transportation.

MoSCoW List

ID Description Priority State Contributor(s)
1 Accurately track the live locations of porters MUST Ioakim
2 Display the live locations of all porters to doctors on PC. MUST Ioakim & Modestas
3 Display the delivery details/history of a porter. MUST Modestas
4 Communicate where and when to pick up. MUST Ariel & Michael
5 Allow porters to decline/accept tasks. MUST Ioakim
6 Communicate to porters without the use of a smartphone necessarily. SHOULD Ariel
7 Automate the assignments based on a priority list SHOULD Modestas
8 Consider a range of factors about porters when assigning them a delivery SHOULD Michael
9 See the live locations of all crash calls/integrate into Crash 2222 calls. COULD N/A
10 Emergency handling features i.e. deal with deliveries that must be completed ASAP such as a blood transfusion delivery. COULD N/A

Individual Contribution

After all our deliverables were finalised, the four of us had a very lengthy group call where we extensively evaluated each team member's contribution for the 9 categories outlined below, and in the end, we all agreed that our individual contributions are best outlined as follows:

ID Work Packages Ariel Ioakim Modestas Michael
1 Partners Liaison 25% 25% 25% 25%
2 Requirement Analysis 20% 30% 30% 20%
3 User Interface 27% 45% 25% 3%
4 Coding 5% 45% 45% 5%
5 Testing 0% 50% 50% 0%
6 Report Website 20% 32% 23% 25%
7 Weekly Blogs 0% 0% 0% 100%
8 Monthly Videos 22% 22% 22% 34%
9 Video Editing 40% 45% 7.5% 7.5%
10 Overall Contribution 15% 35% 30% 20%

Bug List

ID Bug Description Priority
1 Highly accurate porter tracking, which could not be achieved due to privacy laws preventing us from keeping track of the specific real-time location of porters. As a team, we were prepared to implement exact position triangulation via the signal strength detected from a range of beacons:

However, our client informed us that we should focus on other aspects of the project since this task, legally speaking, could not be achieved.
Medium
2 On some devices, the Android App stops running in the background once the phone's screen is turned off. This is due to specific device manufacturers' attempts to reduce battery consumption at all costs, even if it means force stopping foreground services, like the one we implemented, that are meant to be running at all times. From a programming point of view, there is no way we could overcome this, as a phone may overwrite the command of a foreground service and put it to sleep. For more info on Android manufacturers who stricly restrict app services to save battery, click here. Medium

Evaluation

User Interface

It's important to mention that our project consists of two parts, an Android Application that scans for BLE devices and a Web Application. Throughout the development of our project, we made sure to keep in mind that our users are medical staff. This means that the UI/UX and workflow of the overall system must be clear and straightforward so that we do not slow down their workflow. In order to achieve this, we kept close contact with our client and ask them for feedback after every design iteration. The client even helped us out by providing direct feedback with their respective UI/UX employee. Some key UI/UX design we've evaluated:

  • The main page of the web app is the Live Monitoring Page. This is where medical staff dispatchers would most likely spend a lot of the time seeing. We made sure to color code the porters on the map based on their availability. Moreover, on the table to the right of the map, we clearly show the availability status of porters by color coding the cell.
  • The delivery request function is also located on the Live Monitoring Page since it would make sense for users to see who are available or not and making a request based on that.
  • With regards to navigating to other pages, it doesn't get simpler as using a classic navigation bar and highlighting the page the user is seeing at present. If users want to see delivery history made in the past by porters they may navigate to the 'Deliveries' section where they can observe the status of ongoing deliveries as well as view details about completed deliveries.
  • With respect to our Android Application, the app is meant to be used by porters walking around the hospitals in order for medical staff to track them with the use of beacons placed around hospitals. Hence, the app is really intuitive to use with clear design and instruction for porters. Porters can either accept or decline a request made by the medical staff on the app. The option to accept or decline is really clear due to the color and the sizing of the buttons, which are only clickable when a relevant request has come through.

Functionalities

We've always prioritised the client's requirement of this project. All the "Must Have" that are required, we've succesfully finished and implemented. here are some of them:

  • Create a Bluetooth scanning Anroid app that scans for beacons and regularly transmits information about detected beacons to our web application.
  • Allow porters to respond to requests, declare their availability and log-in securely via the mobile app.
  • Live monitor porters through the use of the Android App and beacons placed around the hospital.
  • Create a working web app which has the following functionalities: Live Monitoring, Delivery Logs, Sending Requests to porters.
In terms of tracking porters, we ran into a bit of trouble due to the beacon's signal strength. Tracking porters with 100% accuracy would most likely need multiple beacons surrounding the area at all times for the app to scan it successfully and sends the MAC Address back to our web app. This is called triangluation where we use the distance and signal strength provided by the three closest beacons to the porter in order to accurately locate where the porter is. We wrote the algorithm for this and proposed it to our client. Due to privacy reasons, said by the client, we had to scratch it and proposed a much simple solution. The current solution is to place more beacons around the pick-up/delivery area that act as 'checkpoints', so we are still able to keep track of which porters are closest and available for a delivery.

Stability-Efficiency

Our delivery request system works perfectly. Once a medical staff disptacher sends a request to a porter through our web app, the porter receives it instantly with the option for them to accept or decline. The Android App which acts as the backbone of our solution is also stable and runs without any issue in the background which we are very pleased about. The only inefficiency we have in our system would probably be the live monitoring in which we aren't able to track with 100% accuracy where the porters are at all times. We went with a solution which our client is satisfied with and would work fine.

Compatibility

Our Android App is available for download using the APK's link. You may download the file through our public website : https://porterble-ui-c29ff.web.app/appInstructions . There, you will also find in-depth instructions on how to install it and set-up the necessary permissions for it to work Moreover, our web app is hosted publicly and everyone is able to access it through the link above.

Maintainability

With careful design and planning before actually writing code, we were able to avoid "dead code", bugs, and other vulnerabilities. Our code is well documented and every step of the way we would do code reviews with the team so everyone will know what's going on. Our project is easily enhanced and it doesn't require massive changes on all parts in order to update a feature. For example, we created an initial floor plan before receiving the final hospital floor plan and we placed markers and beacons on it. Once we've received the final floor plan from our client we were able to change the floorplan with all the functionalities working perfectly fine.

Project Management

At the start of this project, our project management wasn't exactly the best. After a couple of meetings between the client and our team, we finally were able to get a grasp and created a GANTT chart with all the requirements. We also initialized a GitHub organisation for the client to see our progress. We then divide and conquered all the tasks we needed to do every month and tried to distribute them equally amongst ourselves. With weekly code reviews and client meeting, we were always on top of this project and always continued making improvments.

Future Work

  1. Completely automate delivery request system without the need of a staff to manually create a request.
  2. Emergency request. Be able to override current request so porters can now prioritise emergency request.
  3. More accurate live monitoring of porters. This may only be achieved if and only if privacy measures have been considerend.