Skip to content

analogte/analog17

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thailand Travel Guide - เว็บไซต์แนะนำการท่องเที่ยวประเทศไทย

เว็บไซต์ที่ออกแบบมาเพื่อช่วยนักท่องเที่ยวต่างชาติในการวางแผนการเดินทางมาประเทศไทย โดยมีเนื้อหาครบครันตั้งแต่สถานที่ท่องเที่ยว วัฒนธรรม และคำแนะนำการเดินทาง

🎯 ฟีเจอร์หลัก

📍 Destinations (สถานที่ท่องเที่ยว)

  • แผนที่โต้ตอบด้วย Leaflet.js แสดงสถานที่ท่องเที่ยวทั่วประเทศไทย
  • ระบบค้นหาและกรองข้อมูลแบบเรียลไทม์
  • ข้อมูลสถานที่ท่องเที่ยวจาก JSON database
  • รองรับการกรองตามจังหวัด หมวดหมู่ และเรียงลำดับ

🎭 Culture (วัฒนธรรม)

  • Thai Phrase Book - เรียนรู้คำศัพท์ภาษาไทยพื้นฐาน
  • รองรับการออกเสียงด้วย Web Speech API
  • ข้อมูลวัฒนธรรมและมารยาทไทย

🧭 Travel Guide (คู่มือการเดินทาง)

  • Currency Converter - แปลงสกุลเงินเป็นบาทไทย
  • Weather Widget - ดูสภาพอากาศในเมืองต่างๆ
  • Destination Quiz - แนะนำสถานที่ท่องเที่ยวตามความชอบ

🏗️ โครงสร้างโปรเจค

thailand-travel-guide/
├── index.html              # หน้าแรก
├── destinations.html       # หน้าสถานที่ท่องเที่ยว
├── culture.html           # หน้าวัฒนธรรม
├── guide.html             # หน้าคู่มือการเดินทาง
├── css/
│   └── styles.css         # CSS หลัก (รวมทุกอย่าง)
├── js/
│   ├── main.js            # Entry point
│   ├── data-loader.js     # โหลดและจัดการข้อมูล JSON
│   ├── ui-utils.js        # ฟังก์ชัน UI ทั่วไป
│   ├── destinations.js    # โมดูลหน้า Destinations
│   ├── culture.js         # โมดูลหน้า Culture
│   └── guide.js           # โมดูลหน้า Guide
├── data/
│   ├── provinces.json     # ข้อมูลจังหวัด
│   ├── destinations.json  # ข้อมูลสถานที่ท่องเที่ยว
│   └── *.csv             # ข้อมูล CSV สำรอง
├── images/
│   └── destinations/      # รูปภาพสถานที่ท่องเที่ยว
└── assets/               # ไฟล์ assets อื่นๆ

🚀 การติดตั้งและใช้งาน

วิธีที่ 1: เปิดไฟล์โดยตรง

# เปิดไฟล์ index.html ในเบราว์เซอร์
open index.html

วิธีที่ 2: ใช้ Local Server (แนะนำ)

# ใช้ Python
python3 -m http.server 8000

# ใช้ Node.js
npx http-server -p 8000

# ใช้ PHP
php -S localhost:8000

จากนั้นเปิดเบราว์เซอร์ไปที่ http://localhost:8000

🛠️ เทคโนโลยีที่ใช้

Frontend Framework & Libraries

  • Tailwind CSS - Utility-first CSS framework
  • Font Awesome 6 - Icons
  • Google Fonts - Playfair Display & Inter fonts

JavaScript Libraries

  • Leaflet.js - Interactive maps
  • Vanta.js + Three.js - 3D animated backgrounds
  • Web Speech API - Text-to-speech for Thai phrases

Data Management

  • JSON - Structured data storage
  • Fetch API - Asynchronous data loading

📊 โครงสร้างข้อมูล

destinations.json

{
  "id": "grand-palace",
  "provinceId": "bangkok",
  "nameTh": "พระบรมมหาราชวัง",
  "nameEn": "Grand Palace",
  "category": ["temple", "historical", "cultural"],
  "coordinates": { "lat": 13.75, "lng": 100.4914 },
  "description": "...",
  "openingHours": "08:30-15:30",
  "entranceFee": { "thai": 0, "foreigner": 500 },
  "isOpen": true,
  "rating": 4.8,
  "facilities": ["parking", "restroom", "wheelchair"],
  "contact": { "phone": "...", "website": "..." }
}

✨ การปรับปรุงจากเวอร์ชันเดิม

1. โครงสร้างโค้ด

  • ✅ แยก CSS ออกเป็นไฟล์ styles.css แทนการฝังใน HTML
  • ✅ แยก JavaScript เป็นโมดูลย่อยๆ (data-loader, ui-utils, destinations, culture, guide)
  • ✅ สร้างโฟลเดอร์ที่เป็นระเบียบ (css/, js/, data/, images/)
  • ✅ แก้ไข path ของ JSON files ให้ถูกต้อง

2. Code Quality

  • ✅ ลด code duplication (CSS, Navigation, Footer)
  • ✅ เพิ่ม error handling ที่เหมาะสม
  • ✅ ใช้ async/await แทน callback hell
  • ✅ เพิ่ม JSDoc comments
  • ✅ ใช้ debounce สำหรับ search input

3. Performance

  • ✅ เพิ่ม integrity hash สำหรับ CDN links
  • ✅ ใช้ debounce สำหรับ search
  • ✅ Lazy loading สำหรับ map initialization
  • ✅ ลด JavaScript file size โดยแยกเป็นโมดูล

4. SEO & Accessibility

  • ✅ เพิ่ม meta tags (description, keywords, og:tags)
  • ✅ เพิ่ม favicon
  • ✅ ปรับปรุง semantic HTML
  • ✅ เพิ่ม alt text สำหรับรูปภาพ

5. User Experience

  • ✅ ปรับปรุง mobile menu
  • ✅ เพิ่ม loading states
  • ✅ เพิ่ม notification system
  • ✅ ปรับปรุง error messages
  • ✅ เพิ่ม smooth scrolling

🎨 Color Palette

--primary-teal: #0D4F4C    /* สีเขียวหยก */
--warm-gold: #D4AF37       /* สีทอง */
--coral-pink: #FF6B6B      /* สีชมพูอมส้ม */
--warm-white: #FEFEFE      /* สีขาวอบอุ่น */
--charcoal: #2C3E50        /* สีเทาเข้ม */

📝 TODO / การพัฒนาในอนาคต

  • เชื่อมต่อกับ API สภาพอากาศจริง (OpenWeatherMap)
  • เชื่อมต่อกับ API อัตราแลกเปลี่ยนจริง
  • เพิ่มระบบการจองที่พัก (Booking.com API)
  • เพิ่มฟังก์ชันการแชร์บนโซเชียลมีเดีย
  • รองรับหลายภาษา (i18n)
  • สร้าง PWA (Progressive Web App)
  • เพิ่ม Service Worker สำหรับ offline support
  • Optimize รูปภาพด้วย WebP format
  • เพิ่ม unit tests และ integration tests

🐛 การแก้ไขปัญหาที่พบบ่อย

ปัญหา: แผนที่ไม่แสดง

วิธีแก้: ตรวจสอบว่าไฟล์ destinations.json อยู่ในโฟลเดอร์ data/ และมี path ที่ถูกต้อง

ปัญหา: ข้อมูลไม่โหลด

วิธีแก้: ใช้ local server แทนการเปิดไฟล์โดยตรง เนื่องจาก CORS policy

ปัญหา: รูปภาพไม่แสดง

วิธีแก้: ตรวจสอบว่ารูปภาพอยู่ในโฟลเดอร์ images/destinations/ และชื่อไฟล์ตรงกับใน JSON

📄 License

MIT License - สามารถนำไปใช้และพัฒนาต่อได้อย่างอิสระ

👨‍💻 ผู้พัฒนา

Thailand Travel Guide - สร้างขึ้นเพื่อช่วยนักท่องเที่ยวต่างชาติในการสำรวจประเทศไทย


สร้างด้วย ❤️ สำหรับนักท่องเที่ยวทั่วโลก

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors