Challenge Overview

Welcome to the Version Control Management challenge. This challenge is the second among a series of challenges.

 

Project Overview

In this case, our project is a Version Control Management Project. The two top Version Control as a service platforms are Github and Gitlab. We are looking to build an application that allows our users to back up their repositories to their local systems and back up their existing applications to Github / Gitlab. In the process, we will also provide a Command Line Interface in addition to a web application interface to use the application and services to expose the features of the application to be reused elsewhere.

 

Challenge Overview

For this challenge, we will be building the module that allows users to backup their code in their local system to Gitlab and to backup their repository in Gitlab to their local system. This should utilize git’s “bundle” capability.

 

Challenge Details

As part of this challenge, you need to provide the following:

  1. A Nodejs based module that exposes services that allow the user to specify the location of their local code. This location will be a folder location that contains the entire code. The command will then proceed to commit the files and folders inside the specified folder to git (if not already done) and then proceed to upload the git repository to Gitlab.

  2. Another service needs to be provided that takes a gitlab repository and bundles its contents to a location specified.

  3. Initialize the service such that consumers of the service can specify their gitlab credentials or SSH keys before calling the service.

  4. Provide a deployment guide that describes in detail how to use your module. If there are any prerequisites, mention them in the deployment guide.

  5. You cannot use any existing scripts or modules that already does the above. Plagiarism will not be tolerated too so make sure that the code is yours. You can use modules and libraries that help you along the way but using a module that does fulfills most of the above requirements are not allowed

  6. Provided Unit Tests for your module.

 

Your submission should be an independent Nodejs module, something that can be published to the NPM registry and reused across projects. If you have any questions about the requirements, register for the challenge. Then, look for the challenge forums in the right sidebar. Here, you can ask questions about any requirements.

 

Additional Information

Some more information related to the current challenge:

  1. Use Nodejs 4+ (stable) for your application.

  2. Follow this style guide: Felix’s Nodejs Style Guide

  3. Some popular Nodejs modules are configbluebirdcommander that you may find handy for this project. You are not strictly required to use the same libraries though we prefer that you use promises over async.

  4. Your submission should be OS independent. Thus, take care about the locations specified as Windows and Mac / Linux OSes use different approaches when dealing with path names.

  5. You are not going to create a command line interface or a web application interface. However, you will provide a sample script that will make use of the services in your module to demonstrate how to call the services.



Final Submission Guidelines

See the Additional Information section above

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30052292