Develop

Introduction

Develop is where you will create, store and manage the code that will bring your projects to life. If you’ve already followed the ‘create topic’ process then you’ll have already found it - congrats!

Build data-driven products

We’re building this area to make it really easy to develop code for:

  • Connecting to external data sources; such as live products, websites, apps or machines, and historic data sources such as existing databases
  • Data collection services like recorders for existing hardware endpoints, scraping data from documents, or crawlers to scrape digital information
  • Services to clean and prepare data for down stream processing
  • Data models whether they be simple mathematical functions, statistics or more complex machine learning and AI models.
  • Data-driven services which act on model output to send events and notifications to other models, services or product frontends.

The develop sub menu consists of Write, Read, Library and My Projects tabs.

Features

SDK

Our SDK makes it really quick and easy to develop streaming applications.

Our goal is to get you streaming and processing data within a few minutes; to achieve this goal we created Python and C# code samples for simple and complex Read and Write projects that are:

  • Dynamically pre-configured to your workspace
  • Pre-populated with security certificates, credentials and connection settings
  • Complete working examples

All you need to do to stream and process data is create and select a topic, choose your sample and either run it from your command line or save it as a project in Quix and deploy it to production.

You can then explore the advance samples and documentation to begin building your solution.

Write Samples

Write contains our configurable SDK for ingesting data into your selected workspace and topic.

Use them as a starting point for connecting to external data sources and building data collection services.

Read Samples

Read contains our configurable SDK for consuming data from your selected topic.

Use them as a starting point for consuming data into services.

Model samples

Model samples contain code for reading from an input topic, transforming the data then writing to an output topic.

Use them as a starting point for creating models.

Library

These samples are generally more advanced, not only because they use an extended set of SDK features but because they're providing a complete solution for a specific task.

IDE

We’ve included a simple IDE where you can start writing code to develop models and data services using Python or C#. We provide the My Projects repo from where you can access our IDE with integrated GIT version control.

You can start a project from scratch or from one of our write, read or library samples. Once inside the project IDE, you can edit code, create and delete files and folders, commit changes and tag versions ready for deployment.

We expect most of you will want more features so you can also use your favourite IDE by linking Quix to your external GIT client.

GIT Version Control

Version control is critical to rigorous product and data engineering practice so we built a native GIT implementation for tracking changes in your model and software source code.

Our GIT follows conventional features so you can:

  • Start with a master
  • Edit the master with a commit log
  • Create a branch, clone, duplicate or download your project
  • Tag versions
  • Connect to external GIT clients using Quix authorisation

Simple but powerful!

Library

We've created a Library to store production ready code.

Currently we include two advanced UDP ‘bridges’ for consuming streamed data from the popular racing games F1 2019 (developed by Codemasters) and Assetto Corsa. These samples are great for use as a demo, or for showing how to build efficient data recorders from UDP compatible devices.

We’re going to add many features to the Library in the coming months. In the near future, you will be able to save projects from My Projects to the library for access by other users in the workspace. We’ll then use it as a way to share code across workspaces so that models and services can be easily reused across an organisation

We also intend to build a public marketplace where the community can share code to help each other go faster. You’ll be cable to mark projects as public to share code with the wider community or private to keep code within your organisation.

One-click Deployment

A key goal from the very beginning of Quix has been to allow users to deploy models and services to production with the click of a button.

We have achieved that goal.

Gone is the need for custom infrastructure; for large software teams; for DevOps specialists; for rewriting prototype Python code in Scala or C; for deploying and managing clusters when all you care about is your model or service.

With Quix you simply click Deploy from inside your project. We give you control over your compute resources, and your model or service is built into a production environment where it will execute your code.

She shoots… she scores 🙌 We hope you like it..

How-to

Create a project

There are two ways to start a new project.

Empty Template

On Workspace > Develop > My Projects; click ‘Create Project.’ Give it a name and chose the language; click create. This will give you an empty template from which you can start to develop a project from scratch

Use Samples

You can start new projects from the code samples we provide in the Read, Write, and Library tabs. Navigate to Workspace > Develop; select the tab for the activity you want (Read, Write or Library for more complex examples); Configure the topic, project sample type (language and complexity); click ‘Save as Project’ and give the project a name. This will save-as a duplicate of the project into ‘My Projects’

Add a file

You can add files to folders in any project. Open the project and click the + icon in the IDE toolbar. Give the file a name and a location, then click create. The new file and folder will appear in the explorer.

Delete a file

Select the file in the explorer and click the Delete bin.

Note: This is a permanent action that we cannot undo at this time.

Delete a project

On Workspace > Develop > My Projects; select the project you want to delete and confirm the delete action.

Note: This is a permanent action that we cannot undo at this time.

Edit a project

On Workspace > Develop > My Projects; click the name of the project you want to edit. Our IDE will open where you can use the explorer to navigate the project files. Click in the code to edit it.

Save changes

In GIT terminology a ‘Save’ is called a 'Commit.' After editing your code, click the save icon to commit your edits to GIT. This will add a row to the commit log at the bottom right of the IDE.

Release a project

In GIT terminology a ‘Release’ is called a ‘Tag.’ When you are ready to mark a project as a release version (like V1.3.1); simply click the ‘Create Tag’ button at the top right of the IDE; give the tag a unique name (V1.3.1); and click ‘Create’ to add a row to the tag log at the top right of the IDE.

You will now be able to deploy this version of your code as a distinct deployment to other versions of the code. This will be very useful for A/B testing code performance.

Delete a release

From inside the project IDE; select the Tag and click ‘Delete.’

Note: This is a permanent action that we cannot undo at this time.

Branch a project

GIT allows you to edit any historical commit by creating a new branch to edit it. You can branch any commit in any project by opening the project; then select the commit; click the blue icon with three dots in the toolbar; select ‘Create Branch.’

The new branch will become active in the ‘project active’ dropdown box (Project Name / Branch). It will retain the previous commit log up to the commit which you selected to branch. You can now edit the project, save changes and release versions as normal.

Delete a branch

From inside a project; select the branch you want to delete from the branch dropdown; click the blue icon with three dots in the toolbar; select ‘Delete Branch.’

Note: This is a permanent action that we cannot undo at this time.

Duplicate a project

Git allows you to duplicate an entire project. From inside a project; click the green icon with three dots in the toolbar; select ‘Duplicate;’ provide a name and click ‘Create.’ You will land in the new project which will contain all the code, files, folders, commits and tags from the previous project.

Download a project

Click the green icon with three dots in the toolbar; select ‘Download zip.’

Use external GIT/IDE

You can get the URL username and password for any project by clicking the green ‘Clone’ icon. Follow the instructions in your source control client to open the project locally (typically it’s file>open from URL or file>new from URL).

Deploy a project

The exciting bit! From inside a project click the green ‘Deploy’ icon in the toolbar; choose the version you’d like to deploy; select whether it’s a service or a job; set the CPU and RAM requirements, and define the number of replicas, then click ‘Deploy.’

You’ll be taken to the Deploy page where your project will be added to the table and marked as 'Deploying' or ‘Queued for Build.’

You can also deploy projects directly from the Deploy page.