Пет-проєкти українських розробників. Які корисні продукти айтівці створюють для себе - друга частина
А ви колись розробляли для себе пет-проєкт, який урешті перетворився на непоганий і зручний продукт? Наші герої — так. Українські розробники розповіли, як і для чого створювали читацький трекер з прогрес-баром, бот для завантаження контенту з Instagram, довідник на держпідприємстві та власну систему обліку.
Це друга частина матеріалу про пет-проєкти, його перша частина — за посиланням.
Rork — читацький трекер зі спільнотою читачів
Роман Грядунов, Senior Front-end Engineer
Як виникла ідея проєкту
Засиджуючись вечорами на роботі, я іноді переводив погляд з лептопа на те, що відбувалося навколо в офісі. Ну знаєте, кажуть, корисно час від часу відводити очі від моніторів :) У поле зору найперше потрапляли книжки на робочому столі, подаровані або куплені імпульсивно, — здебільшого нон-фікшн і біографії. Згадував, який великий профіт принесли кілька прочитаних професійних книжок про JavaScript, будування карʼєри тощо, — й міркував, як чудово було б привчитися читати більше.
Проте кожна спроба закінчувалася кількома прочитаними розділами, або ж посеред книжки ставало нецікаво — і я її закидав. Виправдовував це тим, що мене приваблює багато тем.
Одного вечора я заливав код у Bitbucket і щиро радів, яку фантастичну роботу вдалося виконати за тиждень. Окрім класного оновлення, я побачив, що 155 файлів було додано, приблизно 40 зазнали змін, 13 видалено — і весь цей перелік PULL-реквесту було виділено різними кольорами. Така візуалізація надавала додаткової мотивації та слугувала візуальним підтвердженням проробленої праці.
І я подумав: а що якби аналогічна візуалізація прогресу була і для паперових книжок? Було б цікаво побачити прогрес у вигляді логів, кількості прочитаних сторінок і часу, який на це пішов. Книжковий GIT.
Особливості реалізації
Оскільки моя основна спеціалізація — Front-end, я захотів побачити в динаміці те, що уявив собі в голові. Для цього створив файли: .html, .js, щоб накидати UI, як усе виглядатиме — книжка з прогрес-баром, список книжок. Дані записав у константи в .js-файл.
Вийшло ось що:
Ось так усе виглядало в жовтні
Позаповнював усе вручну, подивився, як їздить туди-сюди прогрес-бар. Для мене це була радше забавка, яких я вигадував чи не щотижня, тож не плекав надій, що чергова спроба читати більше таки спрацює.
Десь за пів року я змінив роботу. Приблизно тоді ж моя дівчина написала рукопис книжки в електронному вигляді, і я мав з ним ознайомитися. Почав читати на обідніх перервах, але десь на половині трохи знудився і став перемикатися на електронну «Продається все. Джефф Безос та ера Amazon» або брав до рук паперову «iWoz. Від комп’ютерного ґіка до культу».
Одного вечора виявилося, що друзі дівчини дочитали книжку, а я — ні, і мені стало соромно. Як зазвичай, віджартувався, але відчуття, що зі мною не все гаразд, залишилося.
Збентежений думкою про те, що мені мало що вдається довести до завершення, узявся за книжку Девіда Аллена «Getting Things Done», яку колись подарував колега. Починав її читати ще раніше, тож іронічно, що книжку про те, як завершувати справи, я закинув десь на 40%.
Вирішив поставити на-гора все і дочитати її до кінця. Щовечора я їхав у коворкінг, аби читати поради Девіда Аллена. Повернувшись до паперових книжок, зауважив, що мені не вистачає відмітки 30%—40%—50%: час на читання ніби витрачаю, а прогресу не видно. У книжці дівчини в iBooks було видно, скільки відсотків я прочитав. Це робило все зрозумілішим, як на мене.
Згадав про свій скрипт і уявив: як натискаю старт, вводжу сторінку початку, натискаю стоп, вводжу сторінку, на якій завершив читання, а вся брудна робота робиться автоматично. Вирішив зробити прототип: бекенд (у минулому був досвід PHP/MySql) і UI на Angular4+, щоб «Getting Things Done» уже дочитувати з відстежуванням прогресу. Так зʼявилися перші дві таблиці: books та progress.
Я зробив десктоп-прототип з простеньким бекендом і щовечора їздив у коворкінг «Часопис» у Києві читати книгу. Натрапив в інтернеті на пораду: щоб доробити муторну справу, потрібно щодня приділяти їй час і мати простір, де тебе не потурбують. До речі, прочитання «Getting Things Done» змінило моє життя, й решту рукопису дівчини я дочитав за два вечори.
Функції продукту
По-перше, тут є трекер для паперових книжок: скільки відсотків/хвилин/сторінок читаєте щодня — та розрахунок ETA: скільки годин треба читати, аби завершити поточну книжку.
По-друге, є фото цитат — їх можна завантажувати всередину книжки, щоб вони не загубилися в галереї смартфона. Не знаю, як я жив без цього раніше? :)
По-третє — календар, який обожнюють усі користувачі, в ньому видно дні народження друзів (якщо ви, як і я, пропускаєте читання в їхній день народження).
В окремому розділі спільноти можна підглянути, що просто зараз читають інші, і зберегти вподобану книгу собі, знайти друга й підписатися на нього — аби стежити, що він читає, та підтримувати його лайком чи іншим емодзі. Також можна створювати колекції, щось на кшталт книжкових плейлистів