Key Information

Register
Submit
The challenge is finished.

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 contest, we need to implement integrate the backend and UI and make sure all the following requirements work properly:

  • 3.22 Full Screen Layout
  • 4.1.1 Time Line
  • 4.2 Playback Controls
  • 4.3 Playback Seek
  • 4.4 Playback Functional Menu
  • 4.5 Playback in Full Screen Mode
  • 4.6 Live Video to Playback
  • DnD (drag and drop) to re-arrange tiles

NOTE: all these must be done for both phones and tablets! And some screens need to work in both portrait and landscape modes!

Deliverable

The output of this assembly will be:

  1. A component library (HAL) that interacts with the devices listed above
  2. A Test Fixture that interacts with the HAL to test all the functions defined in the interface (note that some interfaces might not be testable because device does not support the defined capabilities)
  3. A Ui project that contains the Ui code, this should be the only project you need to update in this challenge unless there are bugs that need to be fixed in the backend.

Please refer to the provided document for details, you should also follow the solution structure mentioned in the application spec (we have provided a base project with folder structure setup)

We've also provided the iOS code base so you can check that for reference. 

Make sure you read the application spec carefully as it clearly defines the behavior of the screens, etc...

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 stretch 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 individual button icons would be the same with just different color.

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 failure 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 Android localization standards / best practices to implement this requirements, you should account for standard ways with dealing with issues like: if text if it is longer in different languages.

You must use consistent / programmable 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).

24h Review

This is a 24h review challenge, reviewers please don't miss the deadline.

Technology Overview

  • Java
  • Eclipse with ADT
  • Minimum target: Android 4 (ICS) / API 15

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:

  • Android solution with the required projects (library and tests)
  • A complete and detailed deployment documented explaining how to deploy the application including configuration information.

Final Submission

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

ELIGIBLE EVENTS:

2015 topcoder Open

REVIEW STYLE:

Final Review:

Community Review Board

Approval:

User Sign-Off

SHARE:

ID: 30045454