Skip to content
Sergey Krivtsov edited this page Jan 18, 2018 · 13 revisions

Проект CodeBattle


16 января 2018 года - 19 - 23 недели

Выполнено 128 коммитов, 44 пуллреквеста.

31 декабря, в преддверие Встречи нового 2018 года, прошла тестовая игра CodeBattle. Для этого сделано следующее.

  • В работу чата внесены изменения:
    • добавлен список пользователей
    • реализована/исправлена логика работы чата
    • добавлены/исправлены тесты
    • отображение автора сообщения
  • Доработка страницы рейтинга игроков и отображения игр.
  • Настроено логирование ошибок
  • Добавлена возможность изменения синтаксиса языка в редакторе.
  • Внесены изменения команд в makefile
  • Добавлен конфиг для credo
  • Добавлены/исправлены тесты livereload, hotswapping
  • Добавлен вывод alert при проверке кода

Проведя анализ выявленных проблем и недоработок, а также новых идей для реализации в игре, Новогодние каникулы не остались без новой порции хорошего кода!

Январский код содержит следующие изменения.

Доработка игровой страницы

  • Показ имени игрока
  • Добавлено окно вывода результатов проверки кода и показом задания в разных табах
  • Добавлена возможность выбора языка
  • Внесены изменения в работу редактора кода
  • Удалена возможность копирования кода из окна редактора
  • Возможность сдаться в игре и соответствующая кнопка в интерфейсе
  • Добавлены всплывающие сообщения о результате проверки и выигрыше игрока
  • Добавлены версии используемых языков

Доработка списка игр

  • Реализация на react
  • Обновление при создании новой игры
  • Добавлен статус игры

В целом изменения которые коснулись проекта.

  • Обновлен webpack
  • Использование Gon интерфейса
  • Рефакторинг fsm, начало реализации функционала "бота"
  • Внесены изменения в работу докера, докер композ, доработка работы докера для rybu, javascript
  • Добавлен Vim в докер файл
  • Появилась возможность добавления других языков в редактор кода
  • Улучшена установка окружений с помощью Ansible
  • Добавлена поддержка языков программирования: ruby, elixir,python
  • Исправления в докер javascript
  • Изменения окна чата, направления скролла сообщений
  • Исправления в проверке кода
  • Добавлен Эло расчет рейтинга
  • Проверка кода js используя node9
  • Добавлена страница ожидания игрока.
  • Большой рефакторинг кода, необходимых тестов. как фронта так и бэкенда,
  • Добавлен список в игр в модуль ETS
  • Актуализированы версии используемых зависимостей в проекте

Дальнейшие планы и список существующих задач для разработки находится в issues.

С новым годом !!!

04 декабря 2017 года - 11 - 18 недели

Выполнено 57 коммитов, 18 пуллреквестов.

По прошествии 2 месяцев наиболее активными и результативными являлись две последние недели:

  • реализован игровой процесс (находится в стадии альфа тестирования),
    • настроена работа через sockets,
    • отображение статуса игры,
    • возможность игры с ботом.
    • проверка решения с использованием docker
  • проект переехал с хероку на vps, теперь игра доступна по адресу Codebattle.hexlet.io
  • добавлена возможность выбора уровня сложности задачи, доступны 4 сложности: elementary, easy, medium, hard.

На этапе разработки и в дальнейших планах добавление нескольких языков программирования (elixir, ruby, python, php).


02 октября 2017 года - 10 неделя

Выполнено 9 коммитов, 6 пуллреквестов.

Реализовано создание игрового канала и синхронизации клиентов. Поставлены задачи для 4 этапа.

Выполнена задача - реализация отображения состояния игры. К проекту, частично, подключен сервис мониторинга ошибок - rollbar.


25 сентября 2017 года - 7, 8, 9 недели

Выполнено 5 коммитов, 3 пуллреквеста.

Реализовано:

  • внесены изменения в тесты контроллеров
  • обновлен gettext
  • подключен i18next для javascript

Практикуя парное программирование, активно выполняется реализация создания игрового канала и синхронизации клиентов (используются платформы Hangouts, Appear).


4 сентября 2017 года - 6 неделя

Выполнено 3 коммита, 2 пуллреквеста.

Добавлены тесты контроллеров, исправлена проверка пользователей.


28 Августа 2017 года - 5 неделя

Выполнено 25 коммитов. Слито 9 пулл реквестов.

Реализовано:

  • в проект добавлен redux
  • исправление логики игры
  • дополнены тесты игрового процесса
  • выведен рейтинг пользователей
  • установлен редактор Ace

Внесены мелкие поправки в код проекта. Закрыто 4 проблемы.

Для завершения 3 этапа остаются 3 задачи:

  • настроить работу Sockets
  • добавить тесты контроллеров.
  • подключить и настроить работу редактора Ace

Запланирована часть задач следующего этапа:

  • API для chrome extension (со страницы списка игр)
  • реализация chrome extension
  • переезд на AWS (или другой хостинг для опенсурс проекта)

21 Августа 2017 года - 4 неделя

За четвертую неделю 6 разработчиков выполнили 23 коммита, сделано 18 пулл реквестов.

Выполнены задачи 2 этапа.

Реализовано:

  • отдельный чат для каждой игры,
  • подключения спектаторов к игровому процессу,
  • завершение игры.

Добавлен рейтинг пользователей, который можно увидеть по ссылке. Настроена проверка покрытием тестами.

Исправлено:

  • сборка webpack,
  • ошибки после обновления bootstrap.

Поставлены цели 3 этапа:

  • Дополнить тесты игрового процесса,
  • Настроить работу Sockets,
  • Исправление логики игры,
  • Добавить тесты контроллеров,
  • Подключить редактор Ace.

14 Августа 2017 года - 3 неделя

Всего 4 разработчиками сделан 21 коммит, 11 пулл реквестов.

В проекте реализован процесс создания игры, и возможность присоединения второго игрока.

Также перенастроен webpack, обновлен Node.js.

Следующие задачи для реализации:

  • Подключение спектаторов к игровому процессу,
  • Реализация чата для каждой игры.

07 августа 2017 года - 2 неделя проекта

За прошедшую неделю 9 разработчиков выполнили 38 коммитов, реализовано 27 пулл реквестов, закрыто 8 задач.

Реализовано:

  • оформлена главная страница
  • реализована авторизация через github
  • исправлен процесс локального развертывания проекта
  • добавлен общий чат, который стал доступен после авторизации
  • подключен Eslint
  • оформлены демонстрационные видео процессов компиляции, запуска, тестирования проекта на локальной машине
  • удалены css custom style

Добавлено 5 новых задач.

  • добавить тесты контроллеров
  • подключение спектаторов к игровому процессу
  • реализовать чат для каждой игры
  • создать страницу со списком игр
  • дополнить процесс создания игры

Остается не выполненными часть задач включенных во второй этап реализации проекта “Code Battle”.


31 Июля 2017 года - 1 неделя проекта

1 Этап

Во время реализации первого этапа разработки выполнена подготовка необходимой инфраструктуры рабочего окружения:

  • подключен сервис Travis CI, необходимый для непрерывной интеграции кода
  • используя Docker - compose настроена автоматизация среды разработки
  • сборщик модулей Webpack 2 заменил brunch
  • в качестве шаблонизатора настроен phoenix_slime
  • используя ansible написан playbook для настройки окружения и управления конфигурациями
  • в качестве инструмента проверки кода подключен linter credo
  • начата разработка модуля авторизации через Github
  • добавлена возможность интернационализации ( i18n)
  • проект развернут на облачной платформе Heroku
  • подключен bootstrap
  • выполнен апгрейд фреймворка Phoenix до версии 1.3.0
  • начата разработка игрового процесса
  • выполнено обновление Elixir с версии 1.45 до 1.5

Для реализации 1 этапа за 7 дней 14-ю разработчиками выполнено 103 коммита, а мейнтейнерами принято 29 пуллреквестов, закрыто 13 проблем. Всего в команде разработчиков 27 человек

2 Этап

Следующей целью является написание упрощенного, но работоспособного прототипа игрового процесса. Можно выделить наиболее главные текущие задачи проекта:

  • завершить реализацию автризации через гитхаб
  • упростить развертывания проекта на локальной машине (Ubuntu, Mac)
  • создать предыгровую страницу и страницу со списком игр
  • реализовать роутинг между предыгровой страницей и игрой с созданием Pid'а
  • создать общий чат, а затем уникальный чат для каждой игры
  • создать возможность для спектаторов подключаться к игровому процессу

Старт 24 июля 2017 года.

Разработчиками являются активные участники Slack сообщества образовательной платформы Hexlet.
Для реализации проекта в качестве основы взят стандартный проект на фреймворке Phoenix, который в свою очередь написан на функциональном языке Elixir. Для фронтэнда задействован ReactJs, для стилей - фреймворк Bootstrap, а для тестов используется язык программирования Clojure.