Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to the myCall - Fast 72h Native iOS Challenge!

myCall is a native iOS mobile app that lets the user call into conference calls with one click. It eliminates the need for searching and entering passcodes for meetings as the phone numbers and passcodes are pulled from your native calendar and are dialed with one click. The storyboard is provided in the challenge forum (available on registration).

High-level Requirements

  • Enable the user to authorize iOS native calendar access

  • Fetch calendar events

  • Extract and parse the data into MyCall application

  • Function without network access (only for saved/synced events)

  • Determine if a meeting or event has both a dial-in and conference code or one or the other.

  • Convert the phone number to a device consumable string. Ex. Dial-in: 1-800-400-5123, Conf Code: 12345 to 18004005123,12345#. Which will allow for one-click dial-in access (where supported by teleconference providers).

Tech Stack

You are free to choose between Swift and Objective-C.

Detailed Requirements

00_1_splash

Use native splash screen for this.

00_2_approval

Right after the splash screen, the app should request access to the iOS native calendar.

Access to the calendar is required for the app to function.

01_1_main

This is the main page of our application. Looks pretty simple, right? Well, it is ;)

Every time myCall accesses the iOS calendar (when this screen shows up and with a down-swipe gesture), it should check against the host information entered in the myCall app. Wherever the dial-in number is the same (meaning it's the same number entered as a host number in the app), then the host code takes priority over the attendee code. The myCall app should then use the host code.

  • Show the current date at the top.

  • The active event should have the phone icon and clicking this should trigger a standard phone call.

  • The warning icon means that the event is either missing 1) the conference number or 2) the conference code. In which case, if they click on that icon or left swipe on that row, they can see more info or email the host (clicking the email icon will launch the user's native email app).

  • For dial-in, a checkmark if there is a dial-in number, or an X if there is not. Same for the passcode. Notify, when clicked will open the default email app and auto-populate the to: field with the host's email address from the meeting.

03_1_settings

Clicking the gear icon from the top-right of the main page will show the setting page.

  • Originally, there shouldn’t be any meeting host.

  • Clicking “Add Meeting Host” will show the “Add Meeting Host” page.

  • If there are available Meeting Hosts, clicking on any Meeting Host should show the “Meeting Host Details” page.

03_3_add_meeting_host_details

  • All fields are required.

  • The name should accept max 20 alphanumeric characters.

  • All other fields should accept numeric characters only.

  • Clicking Save should save the meeting host in devices memory (should be available the next time the user opens the app).

03_2_view_meeting_host_details

  • Should format the numbers as shown in the storyboard.

  • Clicking edit should allow editing the meeting host entry (same page as 03_3_add_meeting_host_details but with a different title).

04_1_info

This is the Terms and Conditions page. You can use a dummy “lorem ipsum” text to populate the content.

04_2_info

This is the Privacy Policy page. You can use a dummy “lorem ipsum” text to populate the content.

Code requirements

Follow the latest best practices for native iOS applications.

You are free to use any open source libraries as needed but feel free to confirm on the challenge forum if you have any doubt.

Targeted Devices

  • iOS v9+

  • iPhone only. iPad is out of scope.

  • Portrait mode only. Landscape is out of scope.

Do not hesitate to ask on the challenge forum if you have any question.

 


Final Submission Guidelines

  • Source code in a zip folder.

  • A demo video showing your submission in action.

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30062811