Довідка

Як тут усе влаштовано

Оберіть, хто ви — і залишиться тільки те, що стосується вас. Або просто шукайте словом: пошук дивиться і в заголовки, і в тексти.

З чого почати

Що це за сайт і для кого Мандрівник Власник місця Модератор і контент Тестувальник

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

Головна відмінність від збірок посилань — усе можна відфільтрувати під себе (з дітьми, з собакою, безкоштовно, поруч зі мною), скласти з відібраного план поїздки й порахувати бюджет.

Чи потрібен акаунт Мандрівник Тестувальник

Дивитися каталог, карту, картки місць, події, добірки й статті можна без входу. Акаунт потрібен для того, що прив’язане особисто до вас: обране, плани поїздок, відгуки, пропозиції нових місць.

Окремий випадок — план, яким з вами поділилися посиланням: його видно без акаунта взагалі.

Куди натискати: коротка мапа сайту Мандрівник

Каталог — усі місця з фільтрами й картою. Добірки — готові списки на тему («з дітьми до 3 років», «замки»). Події — те, що відбувається в конкретні дати.

«Кабінет» у шапці — усе ваше: обране, плани, відгуки, профіль, налаштування приватності, а для власників закладів — розділ «Моє місце».

Сторінка місця

Що показує картка місця Мандрівник Власник місця Модератор і контент

Фото, опис, точка на карті, зручності, години роботи, ціни, контакти, оцінка з відгуками й блок «схоже поруч». Порожні поля просто не показуються — картка не має «дірок» із прочерками.

Унизу картки — атрибуція джерел: OpenStreetMap, Вікіпедія, Wikimedia Commons, якщо опис, координати чи фото прийшли звідти, плюс приписка редактора. Це не формальність, а вимога ліцензій, під якими ці дані віддаються.

Години роботи: «зараз відчинено» Мандрівник Власник місця Тестувальник

Години задаються по днях тижня, у дні може бути кілька інтервалів (наприклад, обідня перерва). Картка сама рахує, відчинено зараз чи ні, і показує, коли зачиняється або коли відчиниться.

У каталозі є фільтр «відчинено зараз» — він працює з тих самих даних. Якщо години не заповнені, місце в цей фільтр не потрапляє: краще не показати, ніж збрехати.

Кнопки на картці: маршрут, дзвінок, сайт, бронювання Мандрівник Власник місця

Маршрут відкривається в Google Maps або Waze, телефон — у застосунку дзвінків, сайт і бронювання — за посиланням закладу. Кнопки з’являються лише тоді, коли відповідні дані в картці заповнені.

Натискання рахуються знеособлено — власник місця бачить у себе в кабінеті, скільки разів будували маршрут чи телефонували, але не хто саме.

Поділитися місцем Мандрівник

Під карткою є три способи: системне меню «поділитися» (з’являється лише там, де браузер його підтримує — переважно на телефоні), готові посилання в Telegram і Viber, і кнопка «Копіювати посилання».

Якщо браузер не дає доступу до буфера обміну, кнопка копіювання просто покаже посилання текстом — щоб було що виділити вручну.

Звідки на картці оцінка Google Мандрівник Власник місця Модератор і контент

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

Джерелом правди лишається наш рейтинг: він рахується з відгуків цього сайту й враховує їхню кількість, а не лише середнє.

Оцінки й відгуки

Як залишити відгук Мандрівник Тестувальник

Потрібен вхід. Оцінка зірками обов’язкова, текст і фото — за бажанням; є окремі критерії (наприклад, чистота чи зручність для дітей), вони теж не обов’язкові.

Відгук зазвичай з’являється одразу. Якщо він виглядає підозріло для автоматичних перевірок, то піде на перевірку модератором — про рішення прийде лист.

На одне місце — один відгук від людини. Свій відгук можна відредагувати або видалити в кабінеті.

Фото у відгуках Мандрівник Тестувальник

До відгуку можна додати кілька фотографій. Ліміт розміру показується прямо у формі — він залежить від налаштувань сервера, тому це не вигадана цифра, а реальна стеля.

З кожного фото знімаються EXIF-дані, зокрема координати зйомки й модель камери. Це робиться на сервері, тому не залежить від того, чим ви знімали.

Як рахується рейтинг місця Мандрівник Власник місця Модератор і контент

Не просто середнє. Місце з однією п’ятіркою не має обходити місце з сотнею оцінок 4,8 — тому рейтинг зважений: чим менше відгуків, тим сильніше оцінка тягнеться до середньої по сайту.

Через це рейтинг місця може змінитися й тоді, коли нових відгуків у нього не було: змістилося загальне середнє. Перерахунок відбувається періодично у фоні.

Скарга на відгук Мандрівник Власник місця Модератор і контент

Під кожним відгуком є скарга. Вона не видаляє відгук — вона кладе його в чергу до модератора з вашою причиною.

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

Обране й плани поїздок

Обране й списки Мандрівник

Сердечко на картці зберігає місце в обране. Обране можна розкладати по власних списках («Карпати влітку», «на вихідні») і перекладати між ними.

Обране — це просто закладки. Коли з’являються дати й порядок — це вже план поїздки.

План поїздки: кроки, дати, нотатки Мандрівник Тестувальник

План — це впорядкований список місць. Додати місце можна кнопкою «В план поїздки» на його сторінці, звідти ж створюється новий план.

Кожен крок має дату й нотатку; вони зберігаються самі, за секунду після того, як ви перестали друкувати — крок підсвічується зеленим. Порядок міняється стрілками ↑ ↓ (вони працюють і з клавіатури).

Якщо в кроках є координати, над списком з’являється карта плану з лінією маршруту.

Калькулятор бюджету поїздки Мандрівник

Під планом рахується орієнтовна вартість: житло за ночі, їжа на людину в день, вхідні квитки з карток місць і пальне за довжиною маршруту. Ви задаєте кількість людей, ночей і свої ціни — підсумок перераховується одразу.

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

Бюджет бачать лише ті, хто має доступ до плану в кабінеті. У план, відкритий публічним посиланням, він не потрапляє.

Road-trip: довжина маршруту, порядок, «по дорозі» Мандрівник Тестувальник

Над списком кроків показано приблизну довжину маршруту, а біля кожного кроку — відстань від попереднього. Відстані рахуються по прямій із поправкою на дороги, тому всюди стоїть «≈»: для питання «це одноденна поїздка чи ні» цього досить.

«Впорядкувати за маршрутом» переставляє кроки так, щоб дорога вийшла коротшою. Перше місце лишається першим — його ви обрали не випадково, це зазвичай виїзд із дому.

«Що подивитися по дорозі» шукає місця біля лінії маршруту, а не біля самих точок, і показує, на скільки кілометрів кожне з них подовжить дорогу.

Спільний доступ до плану Мандрівник Тестувальник

Два різні способи, бо це два різні наміри. Посилання «лише перегляд» — щоб показати план тим, хто нічого не змінюватиме: акаунт не потрібен, достатньо відкрити посилання. Співредактор — щоб планувати разом: він додає місця, дати й нотатки нарівні з вами.

Посилання вмикається перемикачем у панелі «Спільний доступ» унизу сторінки плану. Кнопка «Нове посилання» видає інше й одразу вбиває старе — саме на випадок «надіслав не в той чат».

Сторінка за посиланням показує місця, дати, нотатки й довжину маршруту. Бюджету й списку учасників там немає.

Співредактора додають за поштою, з якою він зареєстрований на сайті; йому приходить лист. Він не може роздавати доступ далі, видаляти план чи прибирати інших — тільки вийти сам.

Події, добірки, статті

Добірки Мандрівник Модератор і контент

Добірка — готовий список місць на тему. Частина зібрана руками, частина складається сама за умовою (наприклад, «безкоштовні місця Карпат») і оновлюється, коли в каталозі щось змінюється.

Події Мандрівник Модератор і контент

Події — це те, що прив’язане до дат: фестивалі, ярмарки, екскурсії. Подію можна прив’язати до місця з каталогу — тоді на сторінці події видно, де вона відбувається, а на сторінці місця з’являється блок «Події тут» із найближчими трьома.

Події, які вже минули, зі списку зникають самі.

Статті й зв’язок «стаття ↔ місце» Мандрівник Модератор і контент

У статті можна вказати місця, про які вона розповідає. Зв’язок працює в обидва боки: у статті з’являється блок із картками місць, а на картці місця — блок «почитати перед поїздкою».

Акаунт, профіль, приватність

Вхід, реєстрація, забутий пароль Мандрівник Тестувальник

Вхід, реєстрація й відновлення пароля відбуваються на сторінках самого сайту, а не в адмінці WordPress.

Повідомлення про невдалий вхід свідомо не уточнює, що саме не збіглося — логін чи пароль. Так само однаково виглядає відповідь на відновлення пароля незалежно від того, чи є така пошта в базі: інакше форму можна було б використати для перевірки, хто тут зареєстрований.

Чому реєстрація може бути закрита Мандрівник Модератор і контент Тестувальник

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

Поки реєстрація закрита, співредактором плану можна зробити лише того, у кого акаунт уже є. Для решти лишається посилання «лише перегляд» — воно акаунта не потребує.

Розділи кабінету Мандрівник Власник місця

Обране · Плани поїздок · Мої відгуки · Запропонувати місце · Моє місце · Профіль · Приватність. Розділ «Моє місце» має сенс лише для тих, чиї права на заклад підтверджені.

Профіль і «підібрати під мене» Мандрівник

У профілі можна описати склад родини (скільки дорослих, вік дітей), тварин, потреби доступності, домашній регіон і звичний радіус поїздок.

Далі каталог уміє підставити це у фільтри однією дією — не треба щоразу вручну вибирати «з дітьми 3–6 років» і «з собакою».

Приватність: що зберігається і як це забрати Мандрівник Модератор і контент Тестувальник

У розділі «Приватність» видно згоди, які ви давали, і є дві дії: вивантажити свої дані файлом і видалити акаунт.

Видалення акаунта незворотне: зникають профіль, обране й плани. Відгуки за замовчуванням лишаються без імені — вони вже вплинули на рейтинг місць і потрібні іншим людям.

Перегляди й натискання на картках рахуються знеособлено, добовими сумами. Ані власник місця, ані ми не бачимо, хто конкретно дивився картку.

Листи: які приходять і як вимкнути Мандрівник Власник місця

Сервісні листи стосуються ваших власних дій: долі відгуку, підтвердження прав на заклад, запрошення в спільний план. Вони ввімкнені за замовчуванням.

Листи про новини й добірки — навпаки, лише за явною згодою. Обидва канали вимикаються в розділі «Приватність», і кожен лист має посилання туди.

Запропонувати місце, якого немає Мандрівник Модератор і контент

У кабінеті є форма «Запропонувати місце»: назва, тип, координати або адреса, опис. Пропозиція потрапляє на модерацію й після схвалення стає звичайною карткою.

Вхід до форми є і в кінці каталогу, і в порожніх результатах пошуку — саме там, де стає зрозуміло, що місця бракує.

Кабінет власника місця

Як заявити права на своє місце Власник місця Модератор і контент

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

Після підтвердження в кабінеті з’являється розділ «Моє місце», а ваші відповіді на відгуки позначаються бейджем власника. Бейдж рахується від чинного стану прав: якщо права відкликати, він зникне й зі старих відповідей.

Правки картки: чому вони не застосовуються одразу Власник місця Модератор і контент

Власник не редагує картку напряму, а пропонує зміни: контакти, години, ціни, короткий опис. Модератор приймає їх вибірково — може погодити нові години й не погодити опис.

Так зроблено тому, що картка — це спільні дані каталогу, а не рекламна сторінка: інакше опис поступово перетворився б на рекламний текст, а фактичні поля почали б розходитися з реальністю.

Поки правка в черзі, вона показана в кабінеті; її можна відкликати. Про рішення приходить лист.

Відповіді на відгуки Власник місця

На кожен відгук про ваше місце можна відповісти один раз; відповідь показується під відгуком із позначкою власника. Її можна змінити або прибрати.

Відповідь не змінює оцінку й не ховає відгук. Якщо відгук порушує правила — це скарга, а не відповідь.

Статистика картки: що означають цифри Власник місця Модератор і контент

Показані перегляди картки й натискання дій — маршрут, телефон, сайт, бронювання — за обраний період, зі стовпчиками по днях.

Рахунок знеособлений: повторний перегляд тією ж людиною протягом півгодини не рахується двічі, боти й ваші власні заходи не рахуються взагалі. Тому цифри тут завжди трохи менші, ніж у зовнішніх лічильниках — вони ближчі до реальних людей.

Відсоток зміни показується лише тоді, коли в попередньому періоді було досить переглядів, щоб він щось означав. «+400%» від одного перегляду до п’яти — це шум, а не зростання.

Модерація, дані, наповнення

Черги модерації Модератор і контент

В адмінці, у розділі «Об’єкти», окремими сторінками живуть: «Заявки власників», «Правки карток», «Відгуки» (разом зі скаргами), «Дублікати», «Імпорт» і «Рейтинг Google».

Пропозиції місць від користувачів окремої сторінки не мають: вони приходять як звичайні об’єкти у статусі «На розгляді» й чекають у списку об’єктів.

Правки карток приймаються по полях, а не цілою пачкою: у черзі видно «було → стало» для кожного поля окремо, і позначаються лише ті, з якими ви згодні.

Звідки беруться місця в каталозі Модератор і контент Тестувальник

Три джерела: імпорт з OpenStreetMap і відкритих держреєстрів, пропозиції користувачів і ручне введення. Кожна картка пам’ятає своє джерело й ідентифікатор у ньому, тому повторний імпорт не створює дублів, а оновлює те, що вже є.

Місця без координат геокодуються за назвою й областю. Атрибуція джерел обов’язкова й показується у футері картки.

Дублі та злиття Модератор і контент

Одне й те саме місце може приїхати з двох джерел під різними назвами. В адмінці є пошук схожих і злиття: одна картка лишається основною, друга віддає їй дані, відгуки й обране, а сама йде в кошик. Її стара адреса після цього віддає постійне перенаправлення (301) на основну картку — щоб посилання, які вже десь опубліковані, не привели в нікуди.

Злиття незворотне — перед ним варто відкрити обидві картки й переконатися, що це справді те саме місце, а не дві сусідні садиби з однаковою назвою.

Добірки, події та головна Модератор і контент

Добірки бувають ручні (список місць) і динамічні (умова фільтра). Динамічну достатньо описати один раз — далі вона оновлюється сама.

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

Рейтинг Google: налаштування Модератор і контент Тестувальник

Сторінка «Об’єкти → Рейтинг Google» показує стан інтеграції, дозволяє перевірити будь-який ідентифікатор місця й задати, скільки тримати відповідь у кеші. Без ключа блок на сайті просто не показується — помилок користувач не бачить.

Кеш за замовчуванням — доба: оцінка місця за день практично не змінюється, а кожен запит до Google оплачується окремо.

Фонові задачі: імпорт, перерахунки Модератор і контент Тестувальник

Довгі роботи — імпорт, геокодинг, перерахунок рейтингів, прибирання старої статистики — виконуються порціями у фоні, а не одним запитом.

Черга рухається на відвідуваннях сайту, тому на порожньому dev-сайті вона може стояти. Щоб зрушити її, достатньо кілька разів відкрити будь-яку сторінку.

Технічне: API й перевірки

API: усе, що робить сайт, робиться через нього Тестувальник

Веб-інтерфейс не має «свого» бекенду: він звертається до того самого API /wp-json/travel/v1, що й майбутній мобільний застосунок. Тому будь-який сценарій можна перевірити запитом, не клікаючи.

Швидка перевірка, що сайт живий і якої він версії: /wp-json/travel/v1/ping.

Як автентифікуватися для перевірок Тестувальник

Браузер працює через cookie й одноразовий ключ, який тема сама кладе на сторінку. Для перевірок ззовні зручніші «Паролі додатків» WordPress — вони створюються в профілі користувача й підходять до HTTP Basic.

Особисті ендпоінти починаються з /me/ і без входу віддають 401. Виняток — запис натискань на картці: він відкритий, бо дію робить і гість, але нічого про людину не приймає.

Коди відповідей, які тут щось означають Тестувальник

401 — не увійшли. 403 — увійшли, але це не ваше. 404 — немає або доступ закрито. 429 — забагато спроб поспіль. 501 — можливість не налаштована (наприклад, немає ключа Google).

Різниця між 403 і 404 навмисна: чужий план віддає 404, а не 403, щоб за кодами не можна було перебирати, які записи існують.

Що перевіряти в першу чергу Тестувальник Модератор і контент

Найкорисніші перевірки — не «чи відкривається», а межі: чужий доступ (403/404), повторна дія (чи не дублює), порожній стан (чи є що показати замість білого екрана), дуже довгий текст і дуже велике фото.

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

Частина логіки покрита офлайн-перевірками в теці tests/ репозиторію — вони не потребують ані сайту, ані бази.