Challenge Overview

 

Project Overview

Video surveillance cameras show what is happening in a scene from a remote location. Cameras are connected to digital video recorders (DVR) to allow for the recording of the scene.

Cameras and DVRs have many features available such as pan / tilt / zoom (PTZ), capturing images, and motion detection.

The project will be a cutting edge mobile application camera viewing system. The main goal of the project will be to view live video in H.264/MJPEG format from multiple cameras and recording devices. User will be able to view video from mobile devices like:

  • Smartphones
  • Tablets

The purpose of this project is to develop an interface library for the graphical front end.  The library will serve as layer of abstraction between the user interface and the underlying device logic for video.  

Application will initially support one Interlogix brand recording device (LNVR) and needs to be architected in a way to allow for addition of different brand DVRs.

Competition Task Overview

We have already integrated some backend functions (some live & playback functions), for this challenge, we want to get all other functions in the spec working properly.

Here's a list of items to check on but make sure you check the ones not listed here too:

3.2-Device List View (Tablet)
2.3-Device Management - Add Device
2.3.1-Add Device Activity
2.4-Device Management - Device List View
2.5-Device Management - Delete Device
2.5.1-Delete Device Activity
2.6-Device Management - Update Device
2.6.1-Update Device Activity
2.7-Device Types and Capabilities (Adding a device and setting the device information (what is enabled on the camera, camera name, etc)
3.14-Functional Menu Strip
3.14.1-Functional Menu Activity
3.15-Aspect Ratio
3.17-PTZ Controls
3.19-PTZ Iris Controls
3.18-Digital Zoom
3.18.1-Digital Zoom Activity
4.1.1 Time Line
4.1.2 Gap Map
4.1-Goto Playback Activity
4.2-Playback Controls
4.3-Playback Seek (Video)
4.4-Playback Functional Menu
4.5-Playback in Full Screen Mode
4.6-Live Video to Playback
8-View App Settings
Events

We need to do this for both iPhone and iPad, and iPad needs to work in both portrait and landscape modes.

Please refer to the provided application spec and base code for references, if you have any questions please ask early in the forum.

NOTE: we're still working on the backend functions for Auto Iris / Focus and Events, so in cases these are not ready in time, they will need to be done in final fixes.

Project Structure

The following structure must be followed (already setup in the base project).

  • Project #1:  Hal – This will be Library project in which all the API defined in this document will implement.
  • Project #2:  TextFixture – This will be single view application project which tests the entire API implemented in the document.  It will include a basic interface sufficient to test the features of the API.
  • Project #3:  Ui  - This will be an application project which host the final user interface (deliverable app), see section below for details.

App Info

Please use the following info for the app:

  • Project Name: Prism Mobile
  • App Name: Prism Mobile
  • AppId: com.utc.lenel.PrismMobile

Themes

The Ui project currently supports themes (i.e. different color themes), this must not be broken.

Error Handling

The app must handle errors gracefully, it MUST NOT crash in case of errors (such as cannot connect to device, network error, etc...).

We need to make sure the app also focus on failrue cases... camera can't load, lose internet connectivity, etc. We should focus on all the failure type cases and handle them gracefully.

Localization

Even though the app currently supports only English, we should design it to support multi-language, this means that we load all UI strings from resource and not hard code any strings.  Which will make adding the additional languages easier. Your submission must cover this properly. Note this means texts currently in the storyboard needs to be text based, instead of image based, so that we can localize them easily.

You should follow the iOS localization standards / best practices to implement this requriements, you should account for standard ways with dealing with issues like: if text if it is longer in different launguages.

You must use consistant / programatible naming standards for variables in localization, we don't want spaces in the variable name. For example: LBL_ASPECT_RATIO is good as a variable for text "Aspect Ratio" (i.e. no spaces, LBL is short for label).

The integration assembly must follow the same standards.

Technology Overview

  • Objective-C 2.0
  • Xcode 5.x
  • iOS 7

Documentation Provided

Please register to see documents in the contest forum.



Final Submission Guidelines

Submission Deliverables

A complete list of deliverables can be viewed in the TopCoder Assembly competition Tutorial at: http://apps.topcoder.com/wiki/display/tc/Assembly+Competition+Tutorials 

Below is an overview of the deliverables:

  • A complete xcode solution with all the mentioned requirements implemented.
  • A complete and detailed deployment documented explaining how to deploy the application including configuration information.
  • A simple changelog file including the changes made in this challenge

Final Submission

For each member, the final submission should be uploaded to the Online Review Tool.

ELIGIBLE EVENTS:

2014 TopCoder(R) Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30040705