We have provided a summary of our achievements and a critcal evalutation of our project along with future
ID | Requirement | Priority | State | Contributors |
---|---|---|---|---|
1 | Testing the API in Postman | MUST | Complete | Oscar, Zakariya, Satbir |
2 | Connector Submission, Validation and Deployment | MUST | Complete | Oscar, Zakariya |
3 | Create a Flow | SHOULD | Complete | Oscar, Zakariya, Satbir |
4 | Create a Sample Power App | SHOULD | Complete | Oscar, Zakariya, Satbir |
5 | Create Samples and Templates | SHOULD | Complete | Oscar, Zakariya, Satbir |
6 | Send images alongside text messages | COULD | Complete | Zakariya |
7 | Phone Numbers to send WhatsApp messages to the Power App | COULD | Incomplete | Zakariya, Satbir |
8 | Integrate the connectors | COULD | Complete | Oscar, Zakariya |
9 | Custom message templates | WOULD | Complete | Zakariya, Satbir |
10 | Integration with N365 | WOULD | Complete | Zakariya, Oscar |
ID | Requirement | Priority | State | Contributors |
---|---|---|---|---|
1 | Get Paconn Verification | MUST | Complete | Oscar, Zakariya |
2 | Comprehensive Documentation for Connectors | MUST | Complete | Oscar, Zakariya, Satbir |
We do not have any known bugs as Power Platform manages to limit errors in development (As they try to ensure anyone can use the platform to make a solution). Any bugs that the connectors or power app endures is based on bugs of Power Platform which are constantly being patched. We would frequently update our clients on these bugs to ensure they would be noted and eventually patched. In fact, while developing the WhatsApp connector, we have managed to identify and report a significant bug on Power Apps, while handling nested JSON arrays in the body of the API call. We recorded an in-depth video which shows this bug, and the engineering team in Seattle is currently working on a patch for this.
Bug | Description | Patched |
---|---|---|
Calendar UI | The calendar of the canvas app would have the date of the day overlap with the day selected | False |
Calendar Refresh | The calendar of the canvas app would need to manually refresh after an appointment date was generated so that the webex link and appointment name could be seen | False |
Flow Refresh | There would be instances during development of the canvas using flows which used our connectors would result in the "failed to refresh flow" error with no discernable cause. Eventually, enough retries the flows would work. | False |
Paconn Bug | We constantly recieved a 401 client error when using Paconn to verify our connector for no discernible reason toward the end of our development, claiming we were unauthorized for our power app environment URL |
True |
Power Apps successful test | We would recieve a message the flow had failed on occasion even when out flow had successfully worked | False |
Nested Array Bug | When developing the connector using variables in the message templates for the whatsapp connector, we realised the text would not replace variables. We repeated the test of the API call with the chosen message template in Postman and we recieved a successful test. We recieved the WhatsApp message of the template with the variables replaced with the values we assigned. After several weeks of further investigation, we and Microsoft concluded it was a Power Platform issue. | False |
Work Package | Satbir Virdi | Zakariya Fakira | Oscar Hui | Chaohui Wang |
---|---|---|---|---|
Project Partner Liason | 30% | 30% | 30% | 10% |
Requirement Analysis | 40% | 25% | 25% | 10% |
Research | 30% | 30% | 30% | 10% |
HCI | 30% | 30% | 30% | 10% |
Connector and Flow Development | 30% | 40% | 30% | 0% |
Testing | 20% | 50% | 30% | 0% |
Power App Development | 20% | 40% | 40% | 0% |
Website | 50% | 25% | 25% | 0% |
Video Editing | 0% | 100% | 0% | 0% |
Overall Contribution | 30% | 30% | 30% | 10% |
MAIN ROLES | WhatsApp connector, Website, Researcher | WhatsApp Connector, Canvas App, Researcher, Tester | WebEx Connector, Website, Tester | WebEx Connector |
Upon Completion of the Canvas Apps, we utilised several methods to analyse the User Experience
when using the App and the Connectors such as expert evaluation and user testing
The expert evaluation was particularly useful during iterative development of the power app. The main feedback
was to ensure everything was as clear as possible for the user, eventhough it was a sample test app.
We ensured all components were clearly labelled to their function. This combined with the Dropdown lists as the input fields for the appointment date and time. This would ensure busy nurses and doctors
are less likely to make a mistake on input. The colour-scheme was the same as used by the NHS and compliant with
our E2E scenario.
The power app combining both connectors helps the user recieving the messages for they are able to recieve WebEx meeting links via email and
via whatsapp, alongside other additional messages (with approved templates).
This was the priority of our project as we were learning new technologies from scratch. As per the functional testing
we were able to make a solution which met our functional requirements. We were able to send messages from the platfrom to a phone number,
send webex meeting links and created a power app which managed to use the connectors for their intended purpose. Furthermore,
we also were able to create Flows which could utilise the connectors, linking the connector and power app together.
Documentation is vital to other developers understanding functionality; our connectors' documentation was heavily detailed, meeting the
standards of Microsoft's development team which was further supplemented by the Template and Sample. There was some functionality missing from
Power Apps which did not support webhooks. This made it very difficult to set up two-way communication (WhatsApp to Power Platform)
The solution was built on Microsofts Power Platform utilising Power Apps and Power Automate. The platform itself is
very stable and has been used for a variety of business appliations by mulitple organisations. There can be occasional
issues regarding the platform or server outages. As such, Microsoft provides service-level agreements that guarantee a
certain level of performance for the platform. They also offer diagnostic tools
to troubleshoot issues quickly. This is also in part because our solution endured meticulous and
intense deployment stages with frequent feedback from the platform development team. As such, it can be argued our
application's stability relies on the reliability of power platform which itself is relatively reliable.
The metrics to measure the efficiency of the solution are rather limited. We did minmise the number of API calls and there are no
real storage of any variables or intermediate results which maximise the speed of the call within the flow. Furthermore, the UI
is kept simple, has clear labelling and uses input methods to minimise errors which speed up the use.
Our solution is deployed on Power Platforms connector market which in turn means it will work on any flow and any power app which uses it, as shown by it working with the Outlook connector (thus, also showing its compatibility with the NHS N365 ecosystem). Furthermore, the connectors themselves are very compatible with the APIs they work with such as the authentication method they use. This opens the opportunity for expanding functionality of the connectors.
The documentation that comes with the connectors upon submission is vital for the maintainability of the
connectors. It contains things like: API references, Connctor description, best practices when using the conector and the
Samples and Templates as examples of how the connectors can be used.
The power platform custom connector environment is also very usable and so any changes that need to be implemented
can be done relatively easily
The change of connector from WeChat to WebEx several weeks into the project was a major setback regarding our initial gantt chart. This combined with blockers which we could not find the solution to (e.g. the nested arrays issues, as mentioned in the blog post, was an issue with power platform without us realising). Weekly meetings with our client to discuss blockers did aid us in finding and implementing solutions for other blockers however. Recording the meetings and making notion notes made it easier for us to understand our position regarding development and the deadline. Delegating tasks and tightening informal deadlines did allow us to get back on track with both connects in time for the submission.
With further time, we would build upon the direct versatility of the connector. This is because, while we have functionality , stability and efficiency, versatility would make our solution more impactful for business solutions. Our solution, like all other connectors is open-source, thus any legitimate developer is welcome to work on the connector, which indirectly aids the versatility of the connector. if we were to directly work on the connector, we would add the following features:
Feature | Description |
---|---|
Obtain meeting transcripts - WebEx | This would make the WebEx connector more useful as the transcripts for the meeting can be used by the patient if they forget any of the doctor's advice; it can be used by the doctor who can analyse anything the patient has said and rectify any mistakes or give futher advice. It could also be useful for deaf users and patients who can read the transcript rather than hear the doctor, enhancing the usability |
Join a meeting using the connector instead of link - WebEx | This would enhance the usability of the connector for both end users as generated links are verbose and can create confusion for people who are not aware of what the characters in the links mean. |
Getting templates for the reminders approved - WhatsApp | This would benefit our E2E scenario as we can show that an appointment reminder can be set and sent to the pateint. As of now, if such a template was needed by the NHS, they would need to get the template approved by Meta. It would also expand the use cases of the WhatsApp connector for other organisations as more templates can be used for each organisation's |