• How to improve CheckiO missions?

CheckiO missions

Hi guys!

In this article want to emphasize your ability to take part in CheckiO missions improvement. If you are an active CheckiO user who wants to be involved and has some suggestions on how to make some of the missions better, you can absolutely do that. We highly appreciate and welcome your input. And you don't have to worry that you might do more harm than good. First of all, it's all part of the process of learning and contributing to the resource, and secondly, all of the proposed changes to any mission will be considered and checked before applied.

What's important to mention here is that each mission has a GitHub repository, link to which you can see at the bottom of the mission description. Here is the GitHub-link to the mission "Non Unique Elements":


So, when you decide to help improve the mission you'll be working with its repository. To add any changes you just need to use the GitHub's web interface and nothing more.

Let's see how all of this works and what kinds of improvements you can add.

Improving the mission description

Every mission has a certain description to it, so everybody knows what it's about. This description is presented in a form of an HTML file info/task_description.html in the mission repository. Sometimes there might be a misspelling or you can come up with some kind of an additional story. If you are faced with any of these you should feel free to propose your ideas or make your corrections by simply selecting the wrong text, clicking report, and filling out the form.

This is the example of task description for the mission "Non unique elements":


To propose any changes to the file info/task_description.html you need to sent a Pull request with your suggestions.

In the video below you can check out how it can be easily done through the GitHub's interface.

Improving tests

A list of tests is created for almost every mission to make sure that everything in it is working correctly and responds in an appropriate way to the right and wrong solutions entered in the code editor. The tests themselves are very intuitive in their nature, so sometimes one can be missed. If that happened and you've come across a mission where the wrong solution passed as a correct one, you can absolutely add a test that will provide that from happening ever again.

This is the example of tests for the "Non unique elements" mission:


In order to add a new test you just have to add a new element to the file "verification/tests.py", propose the changes and create a Pull request.

Improving hints

Everyone needs a helping hand from time to time or a little push to continue moving forward. This same logic is applied to our missions in a form of small hints. Not every mission has them, but there is place for endless variations and amounts of hints which can be added or improved.

We want highlight that the hints are given as a dialogue between the hint provider (you) and the user requesting them. When creating a hint try not to disclose too much information right away. The hints should be small and given one by one, like suggestions which help the user to proceed in a right direction. Not everyone is looking for a complete solution from the start, some just need a little nudge to help them figure out the next steps. If you see a mistake, make a report by simply selecting the wrong text, clicking popup, and filling out the form.

To create a new set of hints you just need to create a new file in the "hints" folder. Here is an example of such a file:


Note: In the "hints" folder stored the hints primarily for Python. If you need to create hints for JavaScript you have to create a separate "js" folder. Here is an example of those hints:


Here is the video to better demonstrate the process of creating and editing the hints for a specific task.

Improving translation

CheckiO is an international resource and is available for people from all over the world. As much as we want to, we can't always provide the translations to all of the languages. Sometimes our users translate CheckiO missions themselves to make them more understandable and easier to read for others in their country. We highly appreciate their input and encourage our members to help us make CheckiO even more available.

Adding a translation is very easy. All of the available translations are placed in the folder "translations" as a subfolders with the language code. For example, the Russian translation for the task is placed in the folder "translations/ru" (language codes can be found here.):


Here is the link to the Russian translation of the task description for the mission:


The structure of the "translations" folder repeats the structure of the mail folder only in the target language. To add a new translation you'll just have to create a new file in the this folder. The name of your file has to correspond with what you are translating (the task description, the task short description, hints, etc).

In the same way the hints or the task short description can be translated:


You can follow the step-by-step instructions of adding a translation in the video below.

Wrapping up

Me and my team are constantly trying to make CkeckiO better, more interesting and useful to our users. Unfortunately, there are a lot of small things we can't always keep track of. That's why we are so grateful to those who are willing to give their time and effort helping us. We are always open for your ideas and suggestions. When reached a certain level you can create your own missions how you see fit. You can find out about this in more detail in our previous article. Not to forget, the author of the mission that was improved by another user has to accept the Pull request and then synchronise the task in the mission's manager if he considers the proposed changes approved.

PS: If you have any questions or any kind of a feedback on the mater, please, write a comment at the end of this post.

CheckiO missions

Привіт, друзі!

У цій статті ми хочемо підкреслити вашу можливість взяти участь у покращенні місій CheckiO. Якщо ви активний користувач CheckiO, який хоче брати участь у роботі і маєте пропозиції щодо того, як зробити деякі місії кращими, ви можете це зробити. Ми високо цінуємо і вітаємо ваш внесок. І вам не потрібно турбуватися про те, що ви можете завдати більше шкоди, ніж користі. По-перше, це все частина процесу навчання і створення ресурсу, а по-друге, всі запропоновані зміни до будь-якої місії будуть розглянуті і перевірені, перш ніж будуть застосовані.

Важливо зазначити, що кожна місія має свій репозиторій на GitHub, посилання на який ви можете побачити внизу опису місії. Ось GitHub-посилання на місію "Non Unique Elements":


Отже, коли ви вирішите допомогти покращити місію, ви будете працювати з її репозиторієм. Щоб додати будь-які зміни, вам достатньо скористатися веб-інтерфейсом GitHub, і нічого більше.

Давайте подивимось, як це все працює і які покращення ви можете додати.

Покращення опису місії

Кожна місія має певний опис, щоб усі знали, про що вона. Цей опис представлений у вигляді HTML-файлу info/task_description.html в репозиторії місії. Іноді в ньому можуть бути помилки або ви можете придумати якусь додаткову історію. Якщо ви зіткнулися з чимось подібним, не соромтеся пропонувати свої ідеї або вносити свої виправлення, просто виділивши неправильний текст, натиснувши кнопку "Report" і заповнивши форму.

Ось приклад опису завдання для місії "Non Unique Elements":


Щоб запропонувати будь-які зміни до файлу info/task_description.html, вам потрібно надіслати Pull-реквест з вашими пропозиціями.

У відео нижче ви можете перевірити, як це можна легко зробити через інтерфейс GitHub.

Покращення тестів

Майже для кожної місії створюється список тестів, щоб переконатися, що все в ній працює правильно і належним чином реагує на правильні і неправильні рішення, введені в редакторі коду. Самі тести дуже інтуїтивні за своєю природою, тому іноді один з них можна пропустити. Якщо це сталося, і ви зіткнулися з місією, де неправильне рішення було прийнято за правильне, ви можете абсолютно точно додати тест, який унеможливить таке в майбутньому.

Ось приклад тестів для місії "Non Unique Elements":


Для того, щоб додати новий тест, вам просто потрібно додати новий елемент до файлу "verification/tests.py", запропонувати зміни і створити Pull-реквест.

Покращення підказок

Кожному час від часу потрібна рука допомоги або невеликий поштовх, щоб продовжувати рухатися вперед. Ця ж логіка застосовується до наших місій у вигляді невеликих підказок. Не в кожній місії вони є, але є місце для нескінченних варіацій і кількості підказок, які можна додавати або покращувати.

Ми хочемо підкреслити, що підказки надаються у вигляді діалогу між постачальником підказок (вами) і користувачем, який їх запитує. При створенні підказки намагайтеся не розкривати відразу занадто багато інформації. Підказки повинні бути невеликими і даватися одна за одною, як пропозиції, що допомагають користувачеві рухатися в правильному напрямку. Не всі шукають повне рішення з самого початку, деяким потрібен лише невеликий поштовх, який допоможе їм зрозуміти наступні кроки. Якщо ви помітили помилку, створіть звіт, просто вибравши неправильний текст, натиснувши спливаюче вікно і заповнивши форму.

Щоб створити новий набір підказок, просто створіть новий файл у папці "hints". Ось приклад такого файлу:


Примітка: У папці "hints" зберігаються підказки в першу чергу для Python. Якщо вам потрібно створити підказки для JavaScript, вам потрібно створити окрему папку "js". Ось приклад таких підказок:


Ось відео, яке наочно демонструє процес створення та редагування підказок для конкретного завдання.

Вдосконалення перекладу

CheckiO є міжнародним ресурсом і доступний для людей з усього світу. Як би ми не хотіли, ми не завжди можемо надати переклади на всі мови. Іноді наші користувачі самі перекладають місії CheckiO, щоб зробити їх більш зрозумілими і легшими для читання для інших людей у своїй країні. Ми високо цінуємо їх внесок і заохочуємо наших членів допомогти нам зробити CheckiO ще більш доступним.

Додати переклад дуже просто. Всі доступні переклади розміщені в папці "translations" у вигляді підпапок з кодом мови. Наприклад, німецький переклад завдання знаходиться в папці "translations/de"(коди мов можна знайти тут):


Ось посилання на німецький переклад опису завдання до місії:


Структура папки "translations" повторює структуру поштової папки, тільки цільовою мовою. Щоб додати новий переклад, просто створіть новий файл у цій папці. Ім'я вашого файлу має відповідати тому, що ви перекладаєте (опис завдання, короткий опис завдання, підказки тощо).

Таким же чином можна перекласти підказки або короткий опис завдання:


Ви можете переглянути покрокову інструкцію додавання перекладу у відео нижче.

Підбиваємо підсумки

Я і моя команда постійно намагаємося зробити CkeckiO кращим, цікавішим і кориснішим для наших користувачів. На жаль, є багато дрібниць, за якими ми не завжди можемо встежити. Тому ми дуже вдячні тим, хто готовий приділяти свій час і зусилля, допомагаючи нам. Ми завжди відкриті для ваших ідей та пропозицій. Досягнувши певного рівня, ви зможете створювати власні місії на власний розсуд. Більш детально про це ви можете дізнатися з нашої попередньої статті. Не забувайте, що автор місії, яку покращив інший користувач, повинен прийняти Pull-запит, а потім синхронізувати завдання в менеджері місії, якщо він вважає запропоновані зміни схваленими.

PS: Якщо у вас виникли питання або ви хочете висловити свої зауваження, будь ласка, напишіть коментар в кінці цього посту.

Welcome to CheckiO - games for coders where you can improve your codings skills.

The main idea behind these games is to give you the opportunity to learn by exchanging experience with the rest of the community. Every day we are trying to find interesting solutions for you to help you become a better coder.

Join the Game