Від редакції:
В рубриці DOU Проекторвсі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо прийняти участь. Якщо ні — можливо, серія надихне на створення власного made in Ukraine продукту. Питання і заявки на участь надсилайте на valentina@dou.ua.
Ідея
Вітаю всіх! Я засновник невеликої IT компанії 7WebPages. Ми займаємося розробкою складних вебсайтів, найбільше фанатіємо від агрегації даних та бережливих стартапів. Відповідно, у нас у команді постійно рояться ідеї для нових проектів. Ті, що проходять усі «кола критики» в компанії, ми втілюємо в життя. Один із таких щасливців — Dede.com.ua.
А надихнула на його створення ось така картина. Приходить п’ятниця, ти вимикаєш екран і конектишся з навколишнім світом, і виникає питання: а де ж розвіятися сьогодні та й на вихідних. Починаєш лопатити Фейсбук (а пошук на ньому ох який недолугий!), запитувати друзів, гуглити... Дуже дратує відсутність чесних рейтингів для подій на звичайних каталогах, куди події додають усі кому не лінь. Це займає багато часу. І доволі часто закінчується м’яким диваном. А насправді доволі часто зовсім поруч проходить багато цікавих подій. От я і вирішив цю справу автоматизувати.
Як наслідок, маємо сайт, де можна швидко переглянути відсортовані за популярністю події на потрібні дати, переглянути їхні деталі та анонсувати свою власну подію.
Реалізація
Ми використали Python, Django, PostgreSQL для самого сайту й невеликий Python скрипт для імпорту подій.
Єдине джерело подій, поки що — це Facebook. Для імпорту ми скористалися Facebook Graph API. На жаль, Facebook API має обмеження, які нам довелося обходити хитрими способами. Справа в тому, що Facebook не дає простого способу витягнути події, які цікавлять. Раніше було зручне API, зараз прикрили потрохи. Не можна так просто сказати «дай мені всі івенти на відстані 20 км від точки». Також не можна вказати «дай мені івенти, у яких локейшн — це Київ». Доводиться шукати спочатку всі місця в Києві, це можна зробити через API. А потім перевіряти, чи є в місці подія.
Більше деталей і приклад роботи такої схеми є на Github, включно з прикладом отримання списків подій, де дуже вдало описані ці хитрощі. Ми використали загальний підхід звідси.
Органічно вирішилось питання сортування подій — за кількістю бажаючих відвідати події. Це відразу показує топові події, на які варто звернути увагу. Ще цікаво було організувати оновлення подій, адже часто події переносяться або змінюються місця проведення, ну й кількість бажаючих відвідати треба регулярно оновлювати. Це вирішилось доволі просто за рахунок того, що зберігаємо окремо ID кожної події, які Facebook проставляє всередині.
Результати
Зараз Dede — це сайт, який стягує всі події Facebook, які мають в описі «Київ». Їх можна фільтрувати за часом, можна додати свої.
У планах:
— імпортувати події з інших джерел;
— підтягувати коменти про події із соцмереж;
— групувати події за категоріями.
Фактично я можу налаштувати його на будь-яке інше місто, чим і збираюся зайнятися після того, як потестую на киянах і втілю їхні побажання щодо вдосконалення сайту. Тож з нетерпінням чекаю на ваші відгуки :)