Challenge Overview

Note - The challenge will be reviewed jointly by the client and copilot

Welcome to the CAIL6530 iPad App - Block Mode POC Refinement  + Bug Fixes challenge.

The client wants to develop an iPad app that emulates a text based terminal called "Tandem 6530" on iOS tablets. The App will allow users to access legacy, text based applications running on HP NonStop (formerly Tandem) mainframe systems. The app will be used by financial and manufacturing companies to connect to these mainframe systems.

 

The client has already built an Android app (source code for the same is provided in forums). We also have a Objective-C proof of concept which isn’t stable and not the highest code quality but can be used as a reference to see how it works.

There’s also the T-Term Pro app on the App Store which closely describes what we’re trying to build.

So far, we’ve run two challenges for this app

CAIL6530 iPad App - Conversational Mode POC Implementation

CAIL6530 iPad App - Block Mode Implementation + Bug Fixes

 

Challenge Requirements

 

A) We want to fix the following issues from the last challenge

  • Tedit partially works, but am unable to exit if I don’t use “Enter” before exiting. This is probably occurring because “Enter” sends any changed data to the host and clears all modified data tags, so when I exit, it doesn’t need to send the whole screen.

  • The arrow key should move the cursor around the screen in block mode. It must wrap in all locations (i.e. go left at first column, move cursor to previous line, column 80 – go left at 1,1 the cursor should go to 24,80 etc…). Moving the cursor using the arrow keys in block mode never sends anything to the host.

  • In block mode, the cursor can’t go into protected areas of the screen, including field markers. When a user cursors out of a field, it should jump to the next field (i.e. cursor left while in the first character of a field, go to the previous field – cursor down while in a field, go to the field below and if there is none, keep searching display memory until you find the next field.

  • In conversational mode, if a user overwrites an attribute marker, that attribute is removed and characters from there on should take on the previous attribute, until the end of memory or until another attribute marker is found.

  • The screen should not respond to swipes while in Block mode

  • When testing with a bluetooth keyboard, function keys don't work, this is the equivalent mapping - https://cl.ly/2Q1Q1n130G1D - this is a MAJOR requirement

  • Field markers (placed with the GS (Start Field) command) at the beginning of each row should never be written to, nor should the cursor be able to enter that location. So, in Tedit a user really only has 79 columns, since the first character location on every row is an attribute/field marker.

  • In conversational mode, an attribute (Esc 6) marker should be propagated to the next attribute marker, or to the end of screen memory. This is not occurring.

  • Stopping long listings must be supported by adding a “Break” button to the toolbar. Must also be supported on a real keyboard, using Control-b.

  • A user must be able to move the cursor using a tap on the screen

  • Expand the current toolbar to do all function and special keys.

B) We want to refine the implementation of block mode that was done in previous challenge

  • In block mode, a field/attribute (GS) marker or attribute (Esc 6) marker should be propagated to the next field/attribute marker, or to the end of the page. This is not occurring.

C) By the end of this challenge we need all Conversational and Block mode escape sequences supported (except for the ones that aren’t required, as per the original specification).

D) All screens must show up the same as when any test is done with the Android version. This includes line 25, which is not like the Android version in the codebase that we currently have. Please always refer to the Android version to verify screens appear correctly, and if you are not sure, please ask talesforce or Andy in the forums.

E) We must support sending of Control-y, either from a real keyboard (which does have a control key), or from a button bar if the user is using the virtual keyboard. This is an absolute must, as Control-y is used a lot on the Tandem.
F) By the end of this challenge the majority of the tests on the Tandem host must complete correctly. We will provide a new list of test in the “CAIL6530” sub-volume, indicating which should be run, and if any tests have parts that are allowed to fail.

G) By the end of this challenge “tedit”, “seeview”, and “viewsys” must run correctly. For example, in seeview, currently it comes up, but the display is incorrect, and the cursor isn’t in an input field as it should be. I can also move the cursor all around the screen, even though it’s mostly protected except for 6, single character fields to the left of each menu item at the top.

Evaluation/ Review Criteria

- The application must connection to the sample 6530 server (details provided in forum) and be able to run the tedit program in block mode (details in forum). The conversational mode & block mode must also work correctly with the bug fixes mentioned above. Reviewers will be expected to ensure that the app is able to connect the server using the submission and run the sample programs provided in forums.

 

Challenge Assets

 
  • Existing app source code

  • Android App source code

  • XPrize Objective C Proof of Concept

  • Connection information to sample HP server including VPN connectivity

  • 6530 Manual

 

General Notes

 

NOTES

  • Only iPad device is in scope.

  • All source code changes must be well commented and MUST follow existing coding conventions

  • If you face any API issues or have doubts related to request response for any API, please raise it in the forums so it can be clarified by client.

  • The app works in both portrait and landscape modes

  • App must support 2x and 3x assets and retina devices

  • App must support iOS 10.x

  • All code must be written in the latest version Swift and the project must use latest XCode version. Do not use Objective-C or Bridging approach

  • Please ask in the forums if you wish to use any open-source third-party libs to ensure there are no license violations



Final Submission Guidelines

- Updated XCode Project with all source code that addresses the requirements

- Deployment guide with configuration & verification steps. Describe all config params and include steps to run

- Demo video (Mandatory and will be scored down if not provided)

- Winner will be asked to raise a PR to the repo

ELIGIBLE EVENTS:

2018 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30058967