Challenge Overview
Project Overview
The client has a large HP Business Service Management (BSM) implementation with many Business Process Monitor (BPM) scripts that as used to monitor various applications using ODBC, Oracle, SQL Server, HTTP, Web ClicknScript, Ajax, etc. They need an application developed to inventory the types of BPM scripts by technology. The application should process a directory containing compressed ZIP files containing the BPM scripts files and produce a report detailing specific data found within the files.
Competition Task Overview
Build a command line application to inventory the contents of a directory of compressed BPM ZIP files. The application must generate a report in CSV format that can easily be imported into Microsoft Excel. The application must produce a log file to report success and error messages when processing the files.
For the CSV report file specification, please check the documents attached to challenge.
Assumptions
- A temporary working directory must be used when processing the compressed files to avoid file creation in the source directory. Temporary files should be deleted after the task is done.
- Any parameters needed by the application should be passed using command line arguments.
- All string searches are case insensitive.
- The solution can be built using any of the technologies specified.
- The script needs to support reading all text file encoding types (ASCII, UTF-8, etc)
Technology Overview
C# 4.5
Java - 1.8
Perl - 5.16+
Materials Provided
- Sample BPM ZIP files
- Sample CSV reports.
- Requirements Document with report details.
Final Submission Guidelines
Aesthetics - Code must be clean (no commented code fragments, unused variables, etc.), tidy (4-space indents, ideally 80-char margins), and well-commented. Use clear and purposeful names for variables, classes, etc.
- Unit Tests (including failure and accuracy tests) - You should target 90% code coverage for classes you develop, and all tests should pass.
- Please include meaningful assertions.
- Please also include one or more Systems tests. These should cover end-to-end usage, mimicking an end user’s steps. Include comments
Demo – The submission should demo application functionality.
Demo the Submission with:
- Featuring the Install and Configuration steps
- Demonstrating all functionality
- Organized Code walkthrough
- Demonstrating the Test execution (positive and negative tests)
Scalability - For this challenge the directory of BPM ZIP files will be over 1000.
Submission Deliverables
- Source Code - Zip of source files (including all metadata files).
- Video - Video demonstrating component functionality, and overview of code.
- Documentation - Provide documentation of setup and steps for using the application.