Перейти до основного вмісту

DOU Проектор: Як ми створили Hryvna Today — сайт про курс валют

від редакції:
В рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо прийняти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на editors@dou.ua.

Ідея

Всім привіт! Я веб-розробник із Києва, в основному займаюся проектуванням і програмуванням CRM, обожнюю все, що пов’язано із граберами, апі та юзабіліті. Минулого року започаткував невелику команду Don’tgiveafish, що наразі займається в основному пет-проектами. Пару місяців тому я презентував тут наш сервіс Smartdelivery, а сьогодні розкажу про свій найулюбленіший проект — це Гривня Тудей, сайт про курс валют.
Для мене цей проект характерний тим, що на ньому вдалося протестувати багато практик і технологій, які давно хотілося спробувати. Про це — далі.
Все почалося з того, що курс гривні штормило наприкінці 2015 року. Всі намагались зрозуміти, що буде далі, прослідкувати історію змін, мати змогу проводити більш глибоку або швидку аналітику валютних «гойдалок». Серед всіх був і я, до того ж, складність була у тому, що я ніколи раніше не витрачав свого часу на вивчення цієї теми. В прагненні зрозуміти, що ж відбувається з курсом, яка різниця між курсами НБУ, банків, міжбанку та такого іншого, я шукав простих аналітичних інструментів, але не міг знайти чогось подібного у нас.
Саме тоді я помітив два цікаві канали на твітері, що кожен день публікували курс російського рубля та ціну нафти, додаючи до них дельту, на яку змінювався курс та ціна кожен день. О, це ж воно! Нажаль, подібних популярних українських профілів не було, тому я зрозумів — треба брати справу в свої руки.

Реалізація

За пару ночей до Нового року був написаний грабер, що брав з сайту НБУ та кількох комерційних банків курс і зберігав до себе у базу даних. Залишивши грабер працювати на новорічні свята, я пішов вивчати Twitter API, щоб робити автоматичні пости до твітеру. Шостого січня, коли я впевнився, що передноворічний грабер працює, нарешті, запрацював і бот.
Десь в той же час я знайшов цікаву статтю про професії, в яких роботи замінять людей. В цій статті був один пункт, що мене зачепив — деякі спортивні і погодні сервіси та сайти новин відмовляються від журналістів для написання стандартних текстів, бо на базі типових даних програма може видавати текст швидше, ніж людина. До того ж, вона може запропонувати декілька варіантів текстів, а модератор сайту лише трохи підредагує текст або просто затвердить той варіант, що йому більше сподобається.
Окей, вирішено, з цього часу акаунт гривні буде генерувати тексти, подібні до текстів, що написала людина.

Ідеальний дизайн і мрія про Site of the day

За деякий час до мене прийшов працювати над наступним проектом дизайнер Юрій Бондаренко, якому я розповів про свого нового бота. Він подивився на мене і каже — що ж, тоді будемо робити сайт!
Так ми почали розробку сайту. Концепція залишалась старою — все має бути простим, доступним, рушій має бути автоматизованим, і сайт має працювати сам по собі. Якщо на сайті будуть тексти, вони мають автоматично генеруватися і спадати на текст, написаний людиною.
Коли дизайн нарешті був готовий, ми скинулись на маркап та публікацію дизайну на Awwwards, також виклавши роботу на Behance та Revision. В результаті дизайн потрапив на головну на revision та отримав Honorable Mention на Awwwards. Для нашої команди це був величезний успіх і щастю не було лімітів!

Вчимося спілкуватися з пабліками і пресою

Що ж, коли ми вже запустили сайт, треба про нього розповісти людству. Я почав вишукувати сайти групи у фейсбуку, які б опублікували про нас невеличку статтю. Певно, надіслав із сотню листів та повідомлень. Не сильно сподівався на відповідь, але матеріал про нас опублікували — і це був шалений трафік! Весь день я провів просто дивлячись у Google Analytics.
Після цього я вивів для себе декілька правил, якими хочу поділитися з тими, хто планує запускати свій проект і ніколи цього не робив:
— Ви маєте розповідати про свій прект, інакше про нього ніхто не дізнається — шукайте сайти і групи у соціальних мережах, що зацікавлені у вашій тематиці, і пробивайте всі стіни;
— Не нехтуйте прес-релізом — на кожну добу, що ви витратили на проект, витратьте півгодини, щоб відповісти на питання «Що робить продукт? Як ви прийшли до цього? Хто брав участь у проекті?» та таке інше. Чим більше і повніше буде ваш прес-реліз, тим більше вірогідність, що з вами вийдуть на контакт;
— Більшість контактів вам навіть на відповість, проте частина з них все ж таки, запостять новину про вас;
— Не лінуйтесь складати список контактів, яким ви надсилаєте листи, бо незабаром ви можете випустити або цікаве оновлення, або новий продукт;
— Розмістіть у себе на сервері теку з пресс-релізом декількома мовами, логотипами та фотографіями учасників проекту, щоб журналісти мали доступ до максимальної кількості інформації.

Пишемо бота для розкрутки у твітері

Для розкрутки акаунту у твітері я вирішив вдатися до декількох хитрощів. Бюджету на розкрутку у нас не було, проте бажання вивчати і досліджувати — вкрай.
По-перше, я помітив, що користувачі переглядають пост і роблять репост більш охоче, якщо попередньо його вже репостнули. Тож, після публікації скрипт заходив на сайт addmefast і ставив накрутку одного-двох репостів. Так, доречі, з’явився addmefastapi, бо addmefast не має свого API, і довелося написати обгортку, щоб додавати туди свої пости автоматизовано.
По-друге, виявилось, що найкращим безкоштовним способом розкрутки акаунту у твітері є масфоловінг. Проте, навіщо робити все самостійно? Був написаний бот, що шукав людей, що читають новини, додавав їх у друзі та видаляв, якщо вони не додавали у відповідь. За допомогою такого простого алгоритму і цих двох інструментів популярність каналу почала зростати.
Доречі, коли у каналу стало 4000 фоловерів, обидва інструменти я відключив і зараз спостерігаю, як канал зростає без сторонньої допомоги.
В певний час я виклад код на гітхаб.

Інтегруємось!

За деякий час мені написав адміністратор сайту Inforesist — великого сайту новин. В листі він казав, що хоче завантажувати на свій сайт інформацію про курси валют з гривні тудей. Так стало зрозуміло, що як природне продовження сайту вже час запускати API, щоб інтегруватися у сторонні сайти та сервіси.
В якості обгортки для API я обрав Mashape — сервіс, який раніше хотів спробувати. Це дало змогу зробити зручну документацію і підключити просту статистику.
Як тільки API був готовий, я взявся до інтеграції на сайт. В результаті ми зробили сторінку з історією курсів, панель у шаблоні сайту з курсом гривні, долару і ціною нафти. Також, було зроблено два види статті, що автоматично генерувались для публікації у новини. Так я втілив минулорічну мрію, у якій роботи почали писати новини за людей.
Нещодавно я зацікавився ідеєю ботів у месенджерах. Як на мене, це нове слово у взаємодії з сервісами і незабаром ми можемо побачити розвиток цього напрямку. Тож, в результаті з’явився @HryvnaTodayBot. Ви можете написати цьому боту запит із переліку доступних команд, щоб отримати поточний курс валют. Це набагато швидше і зручніше, якщо вам потрібна лише частина інформації.
Доречі, код боту також відкритий і є на гітхабі.

Результати


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

Коментарі

Популярні дописи з цього блогу

Назви класів HTML / CSS

блоки page  - кореневий елемент сторінки header  - шапка (сторінки або елементу) footer  - земельна ділянка (сторінки або елементу) section  - розділ контенту (один з декількох) body  - основна частина (сторінки або елементу) content  - вміст елемента sidebar  - бічна колонка (сторінки або елементу) aside  - блок з додатковою інформацією widget  - віджет, наприклад, в боковій колонці розкладка wrapper ,  wrap - обгортка, зазвичай зовнішня inner  - внутрішня обгортка container ,  holder ,  box - контейнер grid - розкладка (сторінки або елемента) у вигляді сітки (зазвичай містить в собі  row і  col ) row  - контейнер у вигляді рядка col ,  column - контейнер у вигляді стовпчика елементи управління button ,  btn - кнопка, наприклад, для відправки форми control  - елемент управління, наприклад, стрілки «Вперед / назад» в фотогалереї, кнопки управління слайдером dropdown  - випадаючий список текст title ,  subject ,  heading ,  headline ,  captio

100+ Найпоширеніших запитань API Testing, REST, SOAP, Web-services

Питання №1  Що таке  API? API (Application Programming Interface пер. з анг. інтерфейс прикладного програмування)  — це набір процедур, протоколів і інструментів взаємодії, для створення програмних додатків. Тобто API — це набір програмних функцій, які можуть бути виконані іншою програмою. API визначає, як одна програма повинна взаємодіяти з цією іншою, діє як інтерфейс між ними, дозволяє їм спілкуватися.  Ось, а тестування цих функцій якраз називається тестуванням API. Хороше API повинне мати чітко описану документацію як саме взаємодіяти з програмою до якої це API створене. На технічній співбеседі можуть попросити назвати деякі приклади API, як приклад — це API Google Карти, API Amazon Advertising, API Twitter, API YouTube тощо. Коротко Про API І Його Тестування — читайте допис також на нашому сайті тестувальників Питання №2 А що таке ІР ? IP-адреса  — це унікальна адреса користувача у мережі, мережевий вузол комп’ютерної мережі, побудований на стеку протоколів TCP /

Каталог газет, журналів, новинних порталів і публікацій з усього світу

Назва видання URL Країна Нью-Йорк Таймс https://www.nytimes.com/ Сполучені Штати Опікун https://www.theguardian.com/international Об'єднане Королівство The Daily Mail https://www.dailymail.co.uk/ Об'єднане Королівство Washington Post https://www.washingtonpost.com/ Сполучені Штати ChinaDaily http://www.chinadaily.com.cn/ Китай The Daily Telegraph https://www.telegraph.co.uk/ Об'єднане Королівство The Wall Street Journal https://www.wsj.com/ Сполучені Штати США сьогодні https://www.usatoday.com/ Сполучені Штати The Times of India https://timesofindia.indiatimes.com/ Індія The Independent https://www.independent.co.uk/ Об'єднане Королівство Los Angeles Times http://www.latimes.com/ Сполучені Штати Країна https://elpais.com/ Іспанія Financial Times https://www.ft.com/ Об'єднане Королівство Le Monde https://www.lemonde.fr/ Франція Щоденні новини http://www.nydailynews.com/ Сполучені Штати Республіка http://www.repubblica.it/ Італія The People's Daily http://www.peop