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

For this challenge, we need to implement all the following screens from the storyboard:

1-Create User
2-View Login
2.1.1-Login Activity
2.2-Password Recovery
2.2.1-Password Recovery Activity
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
3.2-PTZ Presets Controls
3.12-Pinch Gesture (Video Tile)
3.12.1-Video Pinch Gesture Activity
3.17-PTZ Controls
3.19-PTZ Iris Controls
3.22-Full Screen Layout
4.1.1 Time Line
4.1.2 Gap Map
5-Viewing Events
6-Favorites Management
6.1-View Favorites
6.2-Select Favorite Camera
7-View Gallery (Manage Snapshots)

Note: we're still making some changes to wireframes and storyboard and some of them may affect the screens we're building in this challenge. You'll need to incoporate these chanes in final fixes.

Project Structure

The output of this assembly will be to create a solution with 3 main projects.

  • Project #1:  Hal – This will be Library project in which all the API defined in this document will implement. This already exists in the solution.
  • Project #2:  TestFixture – 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. This already exists in the solution.
  • Project #3:  Ui  - This will be an application project which host the final user interface (deliverable app), see section below for details.

Note: the previous project should already have the project structure setup, you shoud use that as base and implement the new screens. But since the previous project has both iphone and ipad screens, we need you to make sure the ipad screens added in this challenge are properly organized / seprated from iphone screens so we can easily merge later.

App Info

Please use the following info for the app:

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

Wireframes

We provided two wireframes in the forum, we want to use most of the pages from the winning wireframes but wee like the “Add device or Camera” list layout of the 2nd place winner. We like the fact that the Device List pushes the video to the right (this is a very good effect for iPhone).  So for this part we want to use effects from the 2nd place submissions.

Themes

We provided two themes for this challenge: blue and green. We need the blue theme to be correctly implemented in this assembly, but we should build the app so it can be changed down the road. Which means we should code in the colors or use a pixel image for color and streatch it so we can swap out color without having to redo every screen. The logo might change so we can replace that using different images, but the individaual button icons would be the same with just different color.

This can be as simple as this: make the icons transparent and the background colors to be based on codes vs. static images.

Note: the previous project should already have this handled, you should make sure you follow the same approach and do not break anything. If you see an issue with the previous implementation, please bring that up and fix it.

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).

Note: the previous project should already have this handled, you should make sure you follow the same approach and do not break anything. If you see an issue with the previous implementation, please bring that up and fix it.

To Reviewers

This is a 24h review, make sure you meet the timeline, if you miss it you'll not get "good" reviewer rating.

Also this is a UI related contest and as part of the review you must provide screenshots for all issues you find. If you don't provide screenshots you'll also not get "good" reviewer rating.

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 screens implemented, it should also cover the themes and localization requriements.
  • A complete and detailed deployment documented explaining how to deploy the application including configuration information. You must include some simple instructions on how we can replace the logo and change the colors if we are going to switch to a different theme (example: blue -> green).
  • 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: 30040700