Challenge Overview
Project Overview
The objective of this project is to extend the current Mobile GetHelp webapp that will be used by 3 types of Users (An Exec, Support Admin, Support Specialist). The GetHelp App is designed to manage the collaboration between these 3 types of Users on IT support requests that need to be fulfilled. Think of a hi-touch support application for Exec users, where it offers instant feedback and communication between these users for speedy resolution of support requests and upto the minute status on the requests, thereby eliminating any delays or disruptions into the users normal business.
Competition Task Overview
Over the past challenges we have built the GetHelp Mobile webapp that will be used as an Asset for this challenge to implement additional feature capabilities :
- The Asset App will be made available to you in the forums for registered members.
- The GetHelp App is designed to cater Executive users who need IT help. They can initiate their requests through this app in either of the 3 ways (Onsite Support, Call me OR SMS). The current Asset already has the “Onsite” Request flow covered. We will focus on the other 2 aspects of the application.
The objective of this contest will be to deliver the following key requirements:
-
Modify the “Request” object on Mongodb to have the following 2 additional attributes:
-
QRCode {* For every new request that is created, a unique QR code needs to be generated for this request and be available in this field.}.
-
Reference: For generating QR Codes :: node-qrcode module (https://www.npmjs.org/package/qrcode-npm)
-
To Scan QR Code from JS:: https://github.com/LazarSoft/jsqrcode
-
-
Attachment {Picture - Image file}.
-
-
Implement the SMS and Call me/Phone Flow.
-
Activity flow for the Exec User when selecting SMS OR Call Me as the Request option:
-
* When a Exec User selects the SMS / Call Me option to request a Tech Support user have reach them by SMS / Phone, the SMS/Phone number that appears on the next interface should be pulled from the Users record from the backend db. Every User will have a Phone number defined on their records. This is the number that the interface should display here along with the appropriate message (i.e. Have a tech Text me at XXXXX OR Have a tech Call me at XXXXX). On Clicking “Yes” the process should Create a new Request on the back end with the appropriate RequestType = “SMS” OR “Call Me”.
Activity flow for the Tech Support User when responding to a Request type = Call Me Or SMS will be as follows:
-
Implement the QR Code Scan functionality to complete the “Onsite Request” flow.
-
As you realize, every request on the backend will have its own distinct QRCode generated. This generated QR Code will be displayed on the Exec Users interface rt after they select the option “Visit Completed”.
-
Validate all the Onsite activity flow interactions after the above implementation to ensure we have no dead spots (i.e. buttons with no events/actions or redirects that lead nowhere.).
-
-
Implement ”Request Context Flow” :
-
Given the nature of this Application (i.e. a mobile web App), its important we manage the User experience to be always in Context of the most recent activity. Basically, we should assume, that the User will leave the app once a request is created. Whenever an Exec User Opens the app (i.e. gets to the landing page), we need to have the page check if theres an Open request, if Yes, redirect to the Status page. If No, they stay on the landing page, where they can initiate a new request.
-
Whenever a Tech User leaves the app, and comes back, on the landing page (i.e. the Request Queue page), we need to have the page check if they already have an Open request they are already working on, and If Yes, they should be redirected to the Status Page. (SMS and Call Me) type Requests should be marked completed as soon as the redirects to the native app happen from the Tech Users App. This will only be important for the Onsite Tech Request flow.
-
-
We would like the Backend App Code base to be refined to incorporate appropriate naming conventions and follow Code development best practices:
-
The Backend db URI should be configurable to easily deploy the app to a Cloud instance, and update the setting in a configuration parameter in one place.
-
In the “Request Object”, the values in the Request Type should be either “Onsite, SMS or Call” but never blank, currently they are blank and is allowed. This field should be always either of these 3 values.
-
Development Guidelines
We need the same development guidelines from the previous challenge to be followed, and enrich the new code with comments. Please add appropriate comments around all the API’s that have been built on the backend.
Documentation Provided
Register to download the source code of previous challenge and UI prototype from challenge forum.
Final Submission Guidelines
Submission Deliverables
-
This Solution needs to be a Production quality asset.
-
Your Submission should include all the Code elements, and a folder that has instructions for Build/deploy/configure.
-
An Overview video of the application code blocks (i.e. Code overview) highlighting the discipline of separation of concerns(SoC) applied.
-
Organized Code Walkthrough
-
Demonstrate Test Execution of your Code simulating all the implemented scenarios
-
-
A Demo video that presents all the Request Activity flows (end to end) that were provided in the form of design mockups.
-
Feature the Build/Deploy/Install and Config Steps
-
Feature all the Functionality
-
-
A Documentation that covers all aspects of the solution (Requirements / Build / Deploy / Install / Configure)
Final Submission
For each member, the final submission should be uploaded to the Online Review Tool.