Challenge Overview
Note - This challenge has shorter review and appeals timelines & a fixed reviewer fee
Welcome to the Insurance Native iPad App Sketching Tool & Appointment Scheduling Features Challenge.
Overview
We're building an insurance application for a client to help inspectors to collect sensitive loss data (FNOL) customers suffer on their properties. The app captures incident information, such as photos and causes of losses through a predefined template document, in a very easy way.
In the last challenge, we built a prototype for a native iPad app based on the provided UI Design. We now want to enhance it with appointment scheduling and sketching tool capabilities.
Challenge Requirements
In this challenge, you need to work off the existing prototype native iPad app code base to implement the required screens. Note the following:
- We have provided the Sketch source files in the forums for the screens to be implemented
- All design assets, fonts are provided in the forums
- If there is anything not clear in the designs, please post questions in forums.
Screen Requirements
All screens mentioned below and all elements in the design are in scope, refer to them and and let us know in the forums if you have any questions. The notes below are to help understand some screens/ elements better but aren’t exhaustive. Any other screens in design which are NOT mentioned or mentioned as Out of scope need not be implemented.
19_InsuredDetails_1
- This screen is already implemented in the existing codebase. You need to add the ‘Scheduled’ section’ for this screen. This includes
- Showing the current date and a calendar icon next to it
- Add a ‘Reschedule button’ - clicking this will navigate user to 19_InsuredDetails_reschedule screen
- Another change needed on this screen is the ‘Cancel Trip’ is currently stubbed. Clicking this button should navigate the user to 19_InsuredDetails_popup screen
19_InsuredDetails_popup
- Clicking ‘No’ should dismiss the popup
- Clicking ‘Yes’ should mark the row as ‘Cancelled’ and dismiss the popup
19_InsuredDetails_reschedule
- Default the current Scheduled value to current date & time. ‘New date’ will be blank until the user chooses a new date & time
- Clicking Calendar should allow the user to pick a new date & time
- The design shows only a date picker but we need the ability to pick a time as well
- The chosen date & time should show up in ‘New date’ section
- Clicking ‘Reschedule Trip’ should set the newly chosen date and time as scheduled time and dismiss the modal
50_SketchTool-1
- Shows the Canvas and the toolbar which contains the various patterns that can be placed on the canvas
- The user can only select only one pattern a time. Clicking the pattern on the toolbar will show it highlighted as in 50_SketchTool_2
50_SketchTool-2
- Once a pattern is selected in toolbar, user should be able to draw it on the canvas by using the drag gesture
- You can show the square and fill footer bar but they are not expected to be functional for the scope of this challenge
50_SketchTool-3
- Shows how to use the cut tool to break walls
50_SketchTool-4 & 50_SketchTool-5
- Shows how to use the move tool to change the position of a wall
50_SketchTool-6
- Shows how to use the line tool to draw a line. The user should be able to tap at any point to start the line and tap another point to end the line
50_SketchTool-7
- Shows how to use the rectangle tool to draw an inner rectangle. You can use a default color (light blue) for filling in the inner rectangle
50_SketchTool-8
- Shows how to add a label for a specific pattern
- The lower toolbar should be shown but it not expected to be functional
- You can use a default font and size for placing a text label on any pattern
- We’ve some flexibility in terms of how the label is placed - you can either show a modal dialog where the user can enter text and then it can be dragged to appropriate position on the canvas. Alternatively, once the text pattern is highlighted on toolbar and the user then clicks anywhere on canvas, a textview can be presented where the user can enter any text and hit Enter to set it.
50_SketchTool-9
- Shows another example of how to add text label
50_SketchTool-10
- Shows how to use the circle pattern. Use a default fill color (green)
- You can show the square and fill footer bar but they are not expected to be functional for the scope of this challenge
50_SketchTool-11
- Shows an example of circle tool with label
50_SketchTool-13
- Shows an example of cut tool to break a wall
50_SketchTool-14
- This is OUT OF SCOPE
50_SketchTool-16
- Shows how to add a window break
50_SketchTool-17
- Shows how to add a label for a window break
50_SketchTool-18
- Shows how to add an inner line
- All other buttons in toolbar should be shown as in design but there’ll be no action on tapping these
- The sketch tool will be triggered by tapping the ‘Create sketch’ (Don’t name it as ‘Create the sketch’) button on this screen.
- Clicking Cancel should navigate the user back to this screen
- ���Clicking ‘Save’ should show a modal ‘Your sketch has been saved’. We will implement the save functionality in the next challenge. Please make sure that you chose a library/ framework that allows saving the sketch in an image format.
General Notes
Note the following :
- The app will be locked to Portrait mode
- Show a progress indicator (spinner) when transitioning between screens
- Only iPad is in scope. Phone is not in scope. App should support all devices above from iOS11 and above
- The implementation must be a native application, native controls must be used wherever possible
- All code must be written in Swift 4 and run in the latest version of XCode
- Do not hardcode any data directly into the app. All data must be read from JSON files so it can later be replaced directly with appropriate API calls.
- Please ask in the forums if you wish to use any open-source third-party libs to ensure there are no license violations. For sketching tool, we’re open to using both free and paid libraries - please discuss in the forums before you decide to use a particular library.
Final Submission Guidelines
- XCode project with all source code that addresses the requirements
- Deployment guide with configuration & verification steps. Describe all config params and include steps to run
- Demo video (Mandatory and will be scored down if not provided)