Challenge Overview
Note - The challenge will be reviewed jointly by the client and copilot
Welcome to the CAIL6530 iPad App - Bug Fixes + Application Front End 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 three challenges for this app to implement conversation mode and block mode
CAIL6530 iPad App - Conversational Mode POC Implementation
CAIL6530 iPad App - Block Mode Implementation + Bug Fixes
CAIL6530 iPad App - Block Mode Refinement + Bug Fixes
Challenge Requirements
A) Upgrade the application source code to be compatible with latest version of XCode (9+) and Swift.
B) We want to fix the following issues from the last challenge
-
The “Del” button on the toolbar appears to be doing a non-destructive backspace in block mode (i.e. like a left arrow). It should delete the character under the cursor and shift the line/field left by one. You can test this in tedit.
-
Cursor is barely visible when in a reverse video field. You can see this when you exit tedit (where you enter the “y” after pressing Shift-F16).
-
In conversational mode, after starting a long listing (fileinfo $system.*.*), pressing the “Break” button has no effect, while it should stop the listing.
-
Blinking and underline were working after challenge 2 but it no longer works with the latest codebase and must be fixed.
-
When in viewsys (which has no input fields), I can see the cursor flashing at the top left of the screen. In this situation the cursor should be hidden.
-
The long touch doesn’t always bring up the toolbar. Sometimes I get “Select | Select All” displayed, and sometimes I get a magnifier. Note we don’t need the select or magnifier support.
-
I’m getting an uppercase character after starting tedit (the first character I type after it comes up). If I then hit “Enter” the next character is uppercase again. Auto upper-case should be always disabled.
-
The grey line at the bottom of the display keeps coming back - I remove it with the button on the right side, but it comes back when I press a key on the Bluetooth keyboard - https://cl.ly/0F1Q1C1Z2i3j
-
The lower part of a line of characters that have scrolled off the screen - https://cl.ly/0C1U2h431J1m
-
The “Break” button on the toolbar works partially. In conversational mode, at a TACL prompt, if I hit “Break” I get a new prompt (as I should), but if I then press “Enter” on the empty line it gives me an error and shows a strange character.
-
Test 002 - Sub-Test 3 - Seems to work okay, but keyboard is left locked so can’t continue and must re-connect
-
Test 002 - Sub-Test 10 -Does not redefine the Enter key
-
Test 003- Sub-test 2 - Incorrect display, but completes
-
Test 024 -Sub-test 9 - Test passes but cursor displayed while keyboard locked
-
Test 035 -Incorrectly allows any type of data in any field -Cursor not in first field when screen appears
-
Test 029 - Get “Unexpected Data” message, probably from “Break” keypress
-
Test 039 - Unexpected response from terminal
-
Test 071 - Should not abort
-
If I do an even longer listing in conversational mode (fileinfo *.*.*), scrolling slows down to a crawl and the listing starts displaying incorrectly. The GUI also becomes unresponsive intermittently - this needs to be fixed
C) We think the reason scrolling is slowing down as more lines come in is probably because you are allowing unlimited scroll back. This is not normal for a 6530 terminal. It should scroll back the number of pages (lines x 24) defined in setup, which must be between 12 and 50 (default is 12).
We would suggest you use the textview as a viewport into screen memory, and have the textview be fixed at 24 lines. When a user scrolls or a new lines comes in from the host, move the new lines from memory into the textview. Note this is only a suggestion - as long as scrolling speed improves.
D) We want to implement the application user interface to have the same look and feel/ support same UI connection parameters as the Android application. All mentioned connection params as shown should be implemented. Note that for now the emulation only supports clear text, so the SSL and SSH settings aren’t required. SSL will never be supported, but SSH must be added in the future.
It should be possible for user to be able to connect to a server by directly specifying the connection parameters or by opening a .ini file that they built earlier (same as the way Android app works).
E) We want to implement the application user interface to have the same look and feel/ support same session parameters as the Android application. All mentioned session params as shown should be implemented. Note that the color items bring up a color picker.
Evaluation/ Review Criteria
- The application must connection to the sample 6530 server (details provided in forum) and be able to run the sample programs and provided tests must pass (details in forum).
- The conversational mode & block mode must also work correctly with the bug fixes mentioned above.
- All UI features must be implemented as in the Android app
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 ot raise a MR to the repo