Опубликовано через кнопку

This commit is contained in:
Zhanna 2026-08-21 10:54:12 +00:00
parent 6602ff82d1
commit 108e017a51
3 changed files with 863 additions and 1211 deletions

615
data.json
View File

@ -1,615 +0,0 @@
{
"cities": [
{
"id": "prague",
"name": "Прага",
"country": "Чехия",
"flag": "🇨🇿",
"nights": 4,
"priceRange": "€70–120",
"district": "Praha 1",
"description": "Столица Чехии — один из красивейших городов Европы с потрясающей архитектурой, вкуснейшим пивом и уютными улочками.",
"image": "https://loremflickr.com/1200/800/prague"
},
{
"id": "vienna",
"name": "Вена",
"country": "Австрия",
"flag": "🇦🇹",
"nights": 4,
"priceRange": "€80–140",
"district": "Внутренний город (Innere Stadt)",
"description": "Имперская столица Австрии с роскошными дворцами, богатой культурной программой и изысканными кофейнями.",
"image": "https://loremflickr.com/1200/800/vienna"
},
{
"id": "bratislava",
"name": "Братислава",
"country": "Словакия",
"flag": "🇸🇰",
"nights": 2,
"priceRange": "€60–100",
"district": "Старый город (Staré Mesto)",
"description": "Столица Словакии — компактный уютный город с красивым старым центром и дружелюбной атмосферой.",
"image": "https://loremflickr.com/1200/800/bratislava"
},
{
"id": "budapest",
"name": "Будапешт",
"country": "Венгрия",
"flag": "🇭🇺",
"nights": 4,
"priceRange": "€55–100",
"district": "Пешт (центр)",
"description": "Великолепная столица Венгрии с термальными источниками, впечатляющим парламентом и богатой историей.",
"image": "https://loremflickr.com/1200/800/budapest"
}
],
"attractions": {
"prague": [
{
"name": "Карлов мост",
"description": "Один из символов Праги, старинный каменный мост через Влтаву с 30 статуями святых.",
"price": "Бесплатно",
"rating": 5,
"image": "https://loremflickr.com/800/600/charles+bridge+prague"
},
{
"name": "Пражский град",
"description": "Крупнейший замок в мире по площади, резиденция чешских королей и президента.",
"price": "от €10",
"rating": 5,
"image": "https://loremflickr.com/800/600/prague+castle"
},
{
"name": "Собор Святого Вита",
"description": "Готический кафедральный собор внутри Пражского града с великолепными витражами.",
"price": "от €8",
"rating": 5,
"image": "https://loremflickr.com/800/600/st+vitus+cathedral"
},
{
"name": "Староместская площадь",
"description": "Сердце Праги с архитектурными шедеврами всех эпох и стилей.",
"price": "Бесплатно",
"rating": 5,
"image": "https://loremflickr.com/800/600/old+town+square+prague"
},
{
"name": "Астрономические часы",
"description": "Средневековые куранты Орлой с hourly-шоу движущихся фигурок апостолов.",
"price": "Бесплатно (смотровая €6)",
"rating": 4,
"image": "https://loremflickr.com/800/600/astronomical+clock+prague"
},
{
"name": "Мала Страна",
"description": "Живописный район Праги под Пражским градом с барочными дворцами и тихими улочками.",
"price": "Бесплатно",
"rating": 4,
"image": "https://loremflickr.com/800/600/mala+strana+prague"
}
],
"vienna": [
{
"name": "Дворец Шёнбрунн",
"description": "Летняя резиденция Габсбургов с роскошными интерьерами и огромным парком.",
"price": "от €22",
"rating": 5,
"image": "https://loremflickr.com/800/600/schonbrunn+palace"
},
{
"name": "Собор Святого Стефана",
"description": "Готический собор в центре Вены, символ города с потрясающим видом с башни.",
"price": "Бесплатно (башня €6)",
"rating": 5,
"image": "https://loremflickr.com/800/600/st+stephen+cathedral+vienna"
},
{
"name": "Венская опера",
"description": "Одна из ведущих оперных театров мира с богатой программой и роскошными интерьерами.",
"price": "от €15",
"rating": 5,
"image": "https://loremflickr.com/800/600/vienna+opera"
},
{
"name": "Бельведер",
"description": "Дворцовый комплекс с шедеврами австрийского искусства, включая работы Климта.",
"price": "от €16",
"rating": 4,
"image": "https://loremflickr.com/800/600/belvedere+vienna"
},
{
"name": "Рингштрассе",
"description": "Кольцевой бульвар вокруг старого города с главными достопримечательностями.",
"price": "Бесплатно",
"rating": 4,
"image": "https://loremflickr.com/800/600/ringstrasse+vienna"
}
],
"bratislava": [
{
"name": "Братиславский град",
"description": "Замок на холме с панорамным видом на город и Дунай, исторический музей.",
"price": "€10",
"rating": 4,
"image": "https://loremflickr.com/800/600/bratislava+castle"
},
{
"name": "Старый город",
"description": "Исторический центр с узкими улочками, кафе и знаменитой статуей Чумила.",
"price": "Бесплатно",
"rating": 4,
"image": "https://loremflickr.com/800/600/bratislava+old+town"
},
{
"name": "Собор Святого Мартина",
"description": "Готический собор XIV века, где короновали венгерских королей.",
"price": "€2",
"rating": 4,
"image": "https://loremflickr.com/800/600/st+martin+cathedral+bratislava"
},
{
"name": "Нова-Словнафт Арена",
"description": "Современная набережная Дуная с ресторанами и видом на мост СНП.",
"price": "Бесплатно",
"rating": 3,
"image": "https://loremflickr.com/800/600/bratislava+waterfront"
}
],
"budapest": [
{
"name": "Парламент Венгрии",
"description": "Великолепное неоготическое здание парламента на берегу Дуная — символ Будапешта.",
"price": "от €12",
"rating": 5,
"image": "https://loremflickr.com/800/600/hungarian+parliament"
},
{
"name": "Рыбацкий бастион",
"description": "Смотровая терраса в неоготическом стиле с панорамным видом на Пешт и Дунай.",
"price": "€4",
"rating": 5,
"image": "https://loremflickr.com/800/600/fishermans+bastion"
},
{
"name": "Церковь Матьяша",
"description": "Историческая церковь с красивой черепичной крышей и богатой историей коронаций.",
"price": "€8",
"rating": 4,
"image": "https://loremflickr.com/800/600/matyas+church+budapest"
},
{
"name": "Термальные купальни Сечени",
"description": "Крупнейший термальный комплекс Европы с 18 бассейнами под открытым небом.",
"price": "от €22",
"rating": 5,
"image": "https://loremflickr.com/800/600/szechenyi+thermal+bath"
},
{
"name": "Проспект Андраши",
"description": "Главный проспект Будапешта с роскошными зданиями, магазинами и_OPERA_.",
"price": "Бесплатно",
"rating": 4,
"image": "https://loremflickr.com/800/600/andrassy+avenue+budapest"
},
{
"name": "Центральный рынок",
"description": "Большой крытый рынок с венгерскими деликатесами, сувенирами и локальной едой.",
"price": "Бесплатно",
"rating": 4,
"image": "https://loremflickr.com/800/600/central+market+budapest"
}
]
},
"hotels": {
"prague": [
{
"name": "Hotel Golden Well",
"category": "Премиум",
"price": "€180–250",
"rating": 5,
"district": "Мала Страна",
"image": "https://loremflickr.com/800/600/hotel+luxury"
},
{
"name": "Hotel Metamorphis",
"category": "Комфорт",
"price": "€90–130",
"rating": 4,
"district": "Старый город",
"image": "https://loremflickr.com/800/600/hotel+comfort"
},
{
"name": "Czech Inn Hostel",
"category": "Эконом",
"price": "€25–45",
"rating": 4,
"district": "Винограды",
"image": "https://loremflickr.com/800/600/hostel"
}
],
"vienna": [
{
"name": "Hotel Sacher Wien",
"category": "Премиум",
"price": "€250–400",
"rating": 5,
"district": "Внутренний город",
"image": "https://loremflickr.com/800/600/hotel+sacher"
},
{
"name": "25hours Hotel beim MuseumsQuartier",
"category": "Комфорт",
"price": "€100–150",
"rating": 4,
"district": "Музейный квартал",
"image": "https://loremflickr.com/800/600/hotel+modern"
},
{
"name": "Wombat's City Hostel",
"category": "Эконом",
"price": "€30–50",
"rating": 4,
"district": "Леопольдштадт",
"image": "https://loremflickr.com/800/600/hostel+vienna"
}
],
"bratislava": [
{
"name": "Hotel Devin",
"category": "Премиум",
"price": "€150–220",
"rating": 5,
"district": "Старый город",
"image": "https://loremflickr.com/800/600/hotel+devin"
},
{
"name": "Lindner Hotel Gateway",
"category": "Комфорт",
"price": "€80–120",
"rating": 4,
"district": "Старый город",
"image": "https://loremflickr.com/800/600/hotel+gateway"
},
{
"name": "Patio Hostel",
"category": "Эконом",
"price": "€20–40",
"rating": 4,
"district": "Старый город",
"image": "https://loremflickr.com/800/600/hostel+bratislava"
}
],
"budapest": [
{
"name": "Four Seasons Hotel Gresham Palace",
"category": "Премиум",
"price": "€200–350",
"rating": 5,
"district": "Пешт, у моста",
"image": "https://loremflickr.com/800/600/four+seasons+budapest"
},
{
"name": "Brody House",
"category": "Комфорт",
"price": "€70–110",
"rating": 4,
"district": "Пешт",
"image": "https://loremflickr.com/800/600/brody+house"
},
{
"name": "Wombat's City Hostel",
"category": "Эконом",
"price": "€25–45",
"rating": 4,
"district": "Пешт",
"image": "https://loremflickr.com/800/600/wombats+budapest"
}
]
},
"transport": [
{
"from": "Астана",
"to": "Прага",
"type": "✈️ Самолёт",
"duration": "≈ 6 часов",
"price": "€200–400",
"priceKZT": 100000
},
{
"from": "Прага",
"to": "Вена",
"type": "🚆 Поезд",
"duration": "≈ 4 часа",
"price": "€15–40",
"priceKZT": 25000
},
{
"from": "Вена",
"to": "Братислава",
"type": "🚆 Поезд",
"duration": "≈ 1 час",
"price": "€10–20",
"priceKZT": 12000
},
{
"from": "Братислава",
"to": "Будапешт",
"type": "🚆 Поезд",
"duration": "≈ 2,5 часа",
"price": "€15–30",
"priceKZT": 18000
},
{
"from": "Будапешт",
"to": "Астана",
"type": "✈️ Самолёт",
"duration": "≈ 5,5 часов",
"price": "€250–450",
"priceKZT": 120000
}
],
"days": [
{
"day": 1,
"city": "prague",
"title": "Астана → Прага",
"icon": "✈️",
"activities": [
"Перелёт Астана — Прага",
"Трансфер в отель",
"Заселение",
"Вечерняя прогулка по центру"
],
"cost": "25 000–40 000 ₸"
},
{
"day": 2,
"city": "prague",
"title": "Прага — Старый город",
"icon": "📍",
"activities": [
"Староместская площадь",
"Астрономические часы Орлой",
"Вацлавская площадь",
"Улица На Пршикопе"
],
"cost": "20 000–30 000 ₸"
},
{
"day": 3,
"city": "prague",
"title": "Прага — Пражский град",
"icon": "🏰",
"activities": [
"Пражский град",
"Собор Святого Вита",
"Золотая улочка",
"Мала Страна"
],
"cost": "25 000–35 000 ₸"
},
{
"day": 4,
"city": "prague",
"title": "Прага — Карлов мост",
"icon": "🌉",
"activities": [
"Карлов мост",
"Остров Кампа",
"Петршинская башня",
"Вечерняя прогулка"
],
"cost": "15 000–25 000 ₸"
},
{
"day": 5,
"city": "vienna",
"title": "Прага → Вена",
"icon": "🚆",
"activities": [
"Поезд Прага — Вена (≈ 4 часа)",
"Заселение в отель",
"Рингштрассе",
"Прогулка по центру"
],
"cost": "20 000–35 000 ₸"
},
{
"day": 6,
"city": "vienna",
"title": "Вена — Имперская",
"icon": "👑",
"activities": [
"Дворец Шёнбрунн",
"Парк Шёнбрунна",
"Триумфальная арка Глориетта",
"Вечер в традиционном ресторане"
],
"cost": "30 000–45 000 ₸"
},
{
"day": 7,
"city": "vienna",
"title": "Вена — Культурная",
"icon": "🎭",
"activities": [
"Собор Святого Стефана",
"Венская опера (экскурсия или спектакль)",
"Музейный квартал",
"Прогулка по Грабену"
],
"cost": "25 000–40 000 ₸"
},
{
"day": 8,
"city": "vienna",
"title": "Вена — Искусство",
"icon": "🎨",
"activities": [
"Бельведер (Климт)",
"Альбертина",
"Хофбург",
"Испанская школа верховой езды"
],
"cost": "30 000–50 000 ₸"
},
{
"day": 9,
"city": "bratislava",
"title": "Вена → Братислава",
"icon": "🚆",
"activities": [
"Поезд Вена — Братислава (≈ 1 час)",
"Заселение",
"Старый город",
"Ужин на набережной Дуная"
],
"cost": "15 000–25 000 ₸"
},
{
"day": 10,
"city": "bratislava",
"title": "Братислава — Компактная",
"icon": "🏛️",
"activities": [
"Братиславский град",
"Собор Святого Мартина",
"Старый город",
"Статуя Чумила"
],
"cost": "15 000–20 000 ₸"
},
{
"day": 11,
"city": "budapest",
"title": "Братислава → Будапешт",
"icon": "🚆",
"activities": [
"Поезд Братислава — Будапешт (≈ 2,5 часа)",
"Заселение",
"Проспект Андраши",
"Вечерняя прогулка"
],
"cost": "20 000–30 000 ₸"
},
{
"day": 12,
"city": "budapest",
"title": "Будапешт — Пешт",
"icon": "🏛️",
"activities": [
"Парламент Венгрии",
"Базилика Святого Иштвана",
"Центральный рынок",
"Еврейский квартал"
],
"cost": "25 000–40 000 ₸"
},
{
"day": 13,
"city": "budapest",
"title": "Будапешт — Буда",
"icon": "🏰",
"activities": [
"Рыбацкий бастион",
"Церковь Матьяша",
"Замок Будайской крепости",
"Вид на Дунай"
],
"cost": "20 000–30 000 ₸"
},
{
"day": 14,
"city": "budapest",
"title": "Будапешт — Релакс",
"icon": "♨️",
"activities": [
"Термальные купальни Сечени",
"Остров Маргит",
"Прогулка на кораблике по Дунаю",
"Прощальный ужин"
],
"cost": "25 000–40 000 ₸"
},
{
"day": 15,
"city": "astana",
"title": "Будапешт → Астана",
"icon": "✈️",
"activities": [
"Завтрак",
"Трансфер в аэропорт",
"Перелёт Будапешт — Астана",
"Прибытие домой"
],
"cost": "25 000–40 000 ₸"
}
],
"tips": [
{
"icon": "🛂",
"title": "Документы",
"text": "Проверить требования для въезда и необходимые документы (загранпаспорт, виза)."
},
{
"icon": "💳",
"title": "Деньги",
"text": "Рекомендуется иметь банковскую карту + небольшой запас наличных евро."
},
{
"icon": "📱",
"title": "Интернет",
"text": "Подключить eSIM или туристическую SIM-карту для Европы."
},
{
"icon": "🛡️",
"title": "Страховка",
"text": "Оформить туристическую страховку на весь период поездки."
},
{
"icon": "🎒",
"title": "Багаж",
"text": "Для поездки на 15 дней оптимально — ручная кладь + заранее проверить нормы авиакомпании."
},
{
"icon": "🚆",
"title": "Поезда",
"text": "Билеты между городами лучше покупать заранее онлайн — дешевле и гарантия мест."
}
],
"checklist": [
{ "id": 1, "text": "Загранпаспорт", "done": false },
{ "id": 2, "text": "Виза / документы для въезда", "done": false },
{ "id": 3, "text": "Туристическая страховка", "done": false },
{ "id": 4, "text": "Авиабилеты", "done": false },
{ "id": 5, "text": "Брони отелей", "done": false },
{ "id": 6, "text": "Билеты на поезда", "done": false },
{ "id": 7, "text": "Банковские карты", "done": false },
{ "id": 8, "text": "Наличные евро", "done": false },
{ "id": 9, "text": "eSIM", "done": false },
{ "id": 10, "text": "Зарядка", "done": false },
{ "id": 11, "text": "Power Bank", "done": false }
],
"budget": {
"flights": 220000,
"trains": 55000,
"hotels": {
"economy": 350000,
"comfort": 550000,
"premium": 900000
},
"food": {
"economy": 180000,
"medium": 280000,
"comfort": 400000
},
"attractions": {
"min": 60000,
"standard": 100000,
"many": 160000
},
"transport": 40000
}
}

1440
index.html

File diff suppressed because it is too large Load Diff

15
package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "communal-budget",
"private": true,
"type": "commonjs",
"scripts": {
"start": "node --env-file=.env server.js"
},
"dependencies": {
"grammy": "^1.1.0",
"xlsx": "^0.18.5",
"mammoth": "^1.6.0",
"pdf-parse": "^1.1.1",
"formidable": "^3.5.0"
}
}