Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Overview

Our partner is developing a state-of-the-art tablet based sales and order processing tool. Their sales team will be managing client visits, tasks, calendars, notifications, and order processing all through this tool. The platform is the Apple iPad. Want to learn Swift? Great - why not get paid for it, we need your help! There will be a long series of challenges over the coming weeks leading to the final product, so get involved now!

 

Challenge Summary

The purpose of this challenge is to extend our existing Swift application to polish existing features and expand functionality. Specifically this will involve some changes to the Account Screen, the Leads Screen, the Modal View Controller, and some design elements used throughout the application.

 

Swipeable Cell Changes

Throughout the app

  • All Swipeable Cells should be modified such that they have a visual indicator “|||” (see mockup) that they can be swiped on the right edge of the cell.

Home Page

  • To-Do List and Calendar Swipeable cells currently do not align properly

    • When swiped, only the header/non-expanded portion should move from the swipe.

    • The hidden buttons should be aligned under this header, not at the vertical center.

Account Screen Changes

Create Quote

  • This button should be re-enabled.

  • When tapped the user should be presented two options with our standard Popover Submenu

    • DP

      • When tapped open a webview to a specified URL (this url will be populated later)

    • Rental

Show Content

  • When a Content item from the Show Panel is opened in a Modal

    • The Modal window should have an “Email” button displayed to the left of the Print Button.

    • When tapped, Create an MFMailComposeViewController and automatically attach that Content File to the email, and allow them to edit the details of the email.

    • The initializer for Modal Windows should have a new boolean flag that can be passed in for “isExternal” to indicate whether this button should show or not.

Leads Screen Changes

Call-In Leads

  • Fields for this cell should be shown in the following columns:

    • Column 1

      • Name

      • Title

      • Email

      • Address

    • Column 2

      • Existing Program (yes/no)

      • Industry

      • # of Employees

      • Interests Field

    • Column 3

      • Description

      • Comments

  • Need to modify the Call-In-Leads cell such that the following fields are editable Text Areas (following the design mockup):

    • Phone Number

    • Email Address

    • Desc

    • Comments

  • If any of the editable fields are changed on the Call-In-Leads cell, the Action Dropdown should be changed to have “Update Lead” selected, with “Undo Changes” as the only other option. The Done Button should be put in the active state as if the user had selected an action manually.

    • If user selects “Update Lead”

      • Update changed fields on the local Lead object

      • Make a POST request to “/2.0/Notifications/Leads” passing:

        • “action” : “update”

        • “lead” : Dictionary with values -

          • “id” : lead.id

          • “Phone” : lead.phone

          • “Email” : lead.email

          • “Description” : lead.description

          • “Comments__c” : lead.comments

      • Re-set the Action Dropdown to the actions available from configuration

      • Set the Done button to its inactive, non-red state.

    • If user selects “Undo Changes”

      • Re-populate all changed fields with the original value from the Lead

      • Re-set the Action Dropdown to the actions available from configuration

      • Set the Done button to its inactive, non-red state.

 

Configure New Cells For Panels and Format Them

  • All Panels retain Company, Phone, Location, Added, and Action on the un-expanded view.

  • Web Leads

    • Column 1

      • Name

      • Title

      • Email

      • Email Sign-Up

      • Address

    • Column 2

      • Existing Program

      • Bid Package

      • Industry

      • # of Employees

      • Interests Block (current solution for cell.additionalLabel)

        • Uniform Rental Program

        • Purchase Program

        • Facility Services Program

        • Flame Resistant Apparel

        • National Program

        • Currently Seeking National Program

        • Other

    • Column 3

      • Description

      • Comments

  • RSR/Field Lead

    • Column 1

      • Name

      • Title

      • Email

      • Address

    • Column 2

      • Lead Source

      • Submitted By (new field)

      • Submitter’s Phone (new field)

      • Industry

    • Column 3

      • Description

      • Comments

  • New Business Lead

    • Column 1

      • Name

      • Title

      • Email

    • Column 2

      • Address

    • Column 3

      • Line of Business

  • Marketing Lead

    • Marketing leads should NOT have any Actions or Done button.

    • Company Name should be a button, which when tapped takes the user to the Account Screen for an account of Contact.AccountId

    • Column 1

      • Name

        • Should be a button, which when tapped takes the user to the Account Screen for an account of Contact.AccountId, and automatically drilling into the Contact TableView to the Contact.Id cell.

    • Column 2

      • Title

      • Role

    • Column 3

    • Email    

Environment Setup

GIT: The project will use a code repository at Github, please see additional details and participant responsibilities under Submission Guidelines.

Xcode: All code development should be done in Xcode 6.2 and tested in the simulator.

Framework: Code should be developed with the Cocoa Touch framework using Swift and must compile against iOS SDK 8.2 with a deployment target of iOS 8.0.

Get Started

- Request access to the project in the challenge forums

- Fork this project: git@github.com:cloudspokes/UNI-mobile.git

- Checkout this branch: https://github.com/cloudspokes/UNI-mobile/tree/uni-r2-1

- Write and submit your code as a zip file

 

** Note: You need to set the login location to "Sandbox" in the iPad (or simulator settings). This is under regular IOS settings (in the Compass app section).

 



Final Submission Guidelines

Submission Guidelines

- Cocoa Touch framework Xcode 6.2 project with well commented code

- Code must compile against iOS SDK 8.2 with a deployment target of iOS 8.0

- Upload all source projects as a zip

- After submission phase has completed, make a pull request targeting the 'uni-r2-1' branch.

- Provide documentation of any special configuration required to run your code.

 

GIT Guidelines and Requirements

All code for this project will be maintained at Github. Challenge participants will have to request read-only access to the repository during the challenge and are expected to fork and do their coding on the challenge branch. Once contest submission closes, the project owner will update the code in the challenge branch to reflect the current state of development. The winner of the challenge will then be required to update their fork to the current state of the development repository and will be responsible for handling merge conflicts when updating their fork. They will then create a pull request.

ELIGIBLE EVENTS:

2015 topcoder Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30049857