• 4. Create Your Own Missions

Back to the Table Of Contents

1. Resources

Find the repository with the task template and tests on GitHub:

Some Examples

Some examples of tasks you could create:

Follow the next steps:

  1. Create your task repository
  2. Add your task in the catalog
  3. Debug it with Checkio Task Tester server
  4. Update to the new version of your task
  5. Send us the links of your task and git repository

2. How to create your repository

You will need to clone the repository.

Clone the original repo to your local machine: ```bash cd ~/checkio-tasks git clone https://github.com/CheckiO/checkio-task-template checkio-task-slug-name ```

Create a new empty repo in your GitHub account:

Go to the GitHub home page and click New repository. Your repository must be named as checkio-task-slug-name. checkio-task- prefix is necessary.

Manually create the necessary remote links:

git remote rename origin upstream git remote add origin git@github.com:yourname/checkio-task-slug-name.git

Push from your local repo to your new remote one:

git push -u origin master

Write your task based on the template:

Description of Task Template Format

3. How to add your task in the catalog:

Go to http://www.checkio.org/mission/add/

Fill out all fields:

Title -- the full name of your task.

Slug -- short name of your task (one word with dashes)

Is author debug - Check it if you want to debug your task with local repository

API version -- At this moment it's only once

Repository url -- the link to your repository for git (Ex:https://github.com/Bryukh-Checkio-Tasks/checkio-task-triangle-angles.git)

After that, you will see the Edit page for your task. Here you need CENTER_FOLDER, TESTER_KEY and Direct link for debugging your task.

4. How to debug your task

Clone or download this repository

To run it your need to install Twisted >= 11.0.0.

Now you should add some settings for your tester. Go to _YOUR_LOCAL_PATH/checkio-task-tester/src_ directory.

Create the file with name _settings_local.py_ and add to it some constants:

PYTHON_3 = 'The full path for your python 3 interpretator' TESTER_KEY = 'From your edit page' CENTER_FOLDER = 'From your edit page' REPO_FOLDER = 'The full local path at your task repository'

After it you can run your debugger with the command (from _YOUR_LOCAL_PATH/checkio-task-tester/src_ directory):

python runner.py

Now go to your task with the Direct link from the Edit Page.

If you see the task's description -- you in the Debug mode -- don't shutdown your checkio-task-tester runner. You can change your task's description and refresh page to see how it will look like. You can also check your referee function, tests and animation -- just click to "SolveIt".

Here you can change the animation/init.css, animation/init.js and templates.html for your animation. Refresh the page to see your changes. You can also change your referee and tests, it's not necessary to refresh the page for it.

5. How to update to the new version of your task

Commit and push all the changes in your task after debugging. Go to to your tasks with Direct link and click "Edit". On the Edit Page, just submit the form and your task will be updated.

(!!IMPORTANT!!) You will need to run your Checkio-Task-Tester while you're submitting the form.

6. How to publish your task

Just send to us email with a Direct link to the task. You can use admin@checkio.org or bryukh@checkio.org for this.

Requirements for the task

If you are going to use a string for the user function input (checkio), you should use unicode (u"") instead of str. Do not change the folder and files structure, the folder hierarchy is important.

7. How to add translation for mission

Each mission has its own git repository. At the very end of the mission you can find a link to this repository.

Mission Median http://www.checkio.org/mission/median/ is using repository https://github.com/Bryukh-Checkio-Tasks/checkio-task-median.git

In the translation folder of this repository you can find the translation for this mission For example: Here is a link to original description of the mission https://github.com/Bryukh-Checkio-Tasks/checkio-task-median/blob/master/info/task_description.html and this is a translation to Russian https://github.com/Bryukh-Checkio-Tasks/checkio-task-median/blob/master/translations/ru/info/task_description.html

In the same way you can add folder pt to folder translation and make a pull request with translation to Portuguese.

8. Having some troubles?

Write your question at admin@checkio.org and bryukh@checkio.org