Challenge Overview
CHALLENGE OBJECTIVES
-
Rewrite a java-based command-line tool in node.js.
PROJECT BACKGROUND
-
Our client has a command-line tool used to push resources to their web portal, and they would like to rewrite it using node.js.
TECHNOLOGY STACK
-
Node.js v12
-
Java
-
Docker
CHALLENGE REQUIREMENTS
The purpose of this challenge is to implement all functionalities available in the java-based command-line tool using node.js:
-
All commands available in the java tool need to be implemented in the new tool
-
sp - Print usage help to the console.
-
sp help - Print detailed help to the console.
-
sp list projects [OPTIONS] - List WCM projects present in the Portal server.
-
sp list vportals [OPTIONS] - List virtual portals hosted by the Portal server.
-
sp push [OPTIONS] - Create or update the content of a Script Application.
-
-
All command-line options in the java tool need to be supported in the new tool. Please refer to usage.txt provided in the forum more details but here’s a quick overview:
-
COMMON GENERAL OPTIONS
-
contentRoot <value>
-
Absolute or relative path to the Script Application's content.
-
-
scriptPortletServer <value>
-
The URL of the Portal server hosting the Script Application environment.
-
-
contenthandlerPath <value>
-
The path to the contenthandler servlet on the Script Application server.
-
-
portalUser <value>
-
The name of the Portal user for authentication.
-
-
portalPassword <value>
-
The password of the Portal user for authentication.
-
-
-
COMMON PUSH OPTIONS
-
mainHtmlFile <value>
-
Path to the main HTML file of the Script Application.
-
-
prebuiltZIP <value>
-
Absolute or relative path to the Script Application's content as a ZIP file.
-
-
wcmContentID <value>
-
WCM content ID of the Script Application instance.
-
-
wcmContentName <value>
-
Name of the Script Application instance to be created or updated.
-
-
wcmContentPath <value>
-
Full WCM path of the Script Application instance to be created or updated.
-
-
wcmContentTitle <value>
-
Sets or updates the title of the Script Application instance.
-
-
-
-
All configuration parameters in the java tool need to be supported in the new tool. Please refer to sp-config.json provided in the forum more details but here’s a quick overview:
-
scriptPortletServer
-
laxSSL
-
performAuth
-
portalUser
-
portalPassword
-
socketTimeout
-
virtualPortalContext
-
mainHtmlFile
-
wcmSiteArea
-
excludes
-
-
We also expect the new node.js-based tool to have exactly the same behavior as the java tool. You can check this page to see how it can be used, this youtube video could be useful too. But supporting multiple languages is NOT in scope of this challenge, you only need to support English in this version.
-
We’ll provide the source code of the java tool for your reference in the challenge forum.
-
You’ll need Docker to run the WebSphere Portal image for testing, follow the instructions on the page to pull the image and run it, you can login with the credentials mentioned on the docker image page.
Final Submission Guidelines
-
Full code that covers all the requirements.
-
A detailed README file including information on how to configure, run, and verify your application. Make sure there’s a verification section that covers the usage of each command that’s currently available in the java tool.