Introduction

What is OpenCatapult

OpenCatapult is the world's first digital developer. It helps developers to significantly decrease application development time through intelligent automation.

Catapult was originally created and used internally by folks in Polyrific, and it has proved to be an essential tool in the success of delivering many critical projects in record time. In late 2018, Team Polyrific decided to make Catapult open source so it is now OpenCatapult. We hope you find it as useful as we have!

Why OpenCatapult

With OpenCatapult, you can:

  • create a working application in record time

  • have highly customized application templates that are tailored to your specific development patterns

  • still use your existing tools to build and deploy the application

  • make changes to your application quickly and easily

  • contribute for any improvement you want to see in OpenCatapult because it is open source

The Circle of Magic

Circle of Magic

There is no magic, it's all just automation logics. But you will see what you believe, right?

The Components

Architecture

OpenCatapult consists of the following components:

API

API is the central of OpenCatapult logics. It is an HTTP REST API system which usually acts as the bridge between OpenCatapult components. In real life implementation, API can be hosted in a web server (e.g. IIS), cloud service (e.g. Azure App Service), or as container application (e.g. Azure Kubernetes Service). You can find more details of the API features in API References.

User Interface

This is the user-facing interface which is used to interact with OpenCatapult. User can choose to work with Command Line Interface (CLI), Web UI, or Mobile App (coming soon). User Interface doesn't contain any business logics. It just forwards the requests to certain API endpoints and waits for the response. CLI can be hosted in user's machine (either Windows, Mac, or Linux).

Engine

Engine runs as a stand-alone console application which waits for any queued jobs to be executed. It orchestrates the execution of job tasks, and reports back the result to the API asynchronously. It can be hosted in any machine (either Windows, Mac, or Linux) which has ability to reach the API endpoint. You can find more details about its capability in the Engine References.

Task Providers

OpenCatapult's Engine is a platform-agnostic system. It means that Engine actually knows nothing about the concrete work that the job tasks do. Task Provider is an OpenCatapult extension which provides specific implementation of a job task.

For example, Engine actually knows nothing about GitHub repository. All Engine knows is just it wants to push some code to a remote repository via Push task. So we need to provide a Task Provider, e.g. Polyrific.Catapult.TaskProviders.GitHub, which will handle the source code delivery in a specific way to GitHub. If you want to submit the code into another repository service, you can just plug in a new Task Provider, and reconfigure the Push task to use it.

OpenCatapult is packed with some built-in Task Providers. Please check them in the Task Provider References.