Easy-to-manage touch screens
무료 오픈소스 터치스크린으로 USB 설정 가이드, 드래그‑드롭 편집기, 로컬 제어를 제공하며 Home Assistant용으로 제작되었습니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗เว็บแอปเที่ยวญี่ปุ่นแบบ "เห็นหน้างานจริง" — เลือกเมืองแล้วเช็คอากาศ ฝุ่น กล้องสด อีเวนต์ แผ่นดินไหว เรทเงิน และไอเดียกิน-เที่ยว-นอน ครบในหน้าเดียว พร้อมผู้ช่วย AI
Production: https://nagame.vercel.app · Repo: https://github.com/Kokonattp/nagame
| ฟีเจอร์ | รายละเอียด |
|---|---|
| 🏙️ 41 เมืองทั่วญี่ปุ่น | ข้อมูล config เต็มรูปแบบ + ค้นหาเมืองอื่นนอกลิสต์ได้ผ่าน geocoding |
| 🌤️ อากาศสด | อุณหภูมิ, feels like, สูงสุด/ต่ำสุด, โอกาสฝน, ลม (Open-Meteo) |
| 😮💨 คุณภาพอากาศ | AQI พร้อมป้ายระดับภาษาไทย (OpenAQ / OpenWeather) |
| 📹 กล้องสด | กล้อง YouTube คัดมือ 19 ตัวใน 12 เมืองหลัก + Windy อีก 12 ตัว/เมือง เล่นสดในแอป สลับวิวจากแถบ thumbnail หรือแผนที่ (Leaflet + OSM) |
| 🗾 เมืองใกล้เคียง | เรียงตามระยะทางจริง (haversine) พร้อมรูปและระยะ กม. |
| 🍜 ไอเดียทริป 5 หมวด | ไปไหนดี / กินอะไรดี / นอนไหนดี / ของฝาก & คาเฟ่ / กิจกรรมน่าทำ — เมืองหลักคัดมือ เมืองรองมีชุด fallback พร้อมรูปจริงจาก Wikipedia |
| 🚨 แผ่นดินไหว | เหตุการณ์รอบ 72 ชม. รัศมี 350 กม. + เหตุรุนแรงทั่วประเทศ พร้อมป้ายเตือนสึนามิ (P2PQuake / ข้อมูล JMA) |
| ⛑️ เตือนภัยอากาศ | ประกาศ JMA รายภูมิภาค (พายุ/ฝนหนัก/หิมะ/ขั้นวิกฤต) แปลไทย 3 ระดับ + แบนเนอร์แดงเมื่อรุนแรง refresh ทุก 10 นาที |
| 🚉 สายรถจากสถานี | เส้นทางคัดมือ 11 เมืองหลักบนแผนที่ กดไฮไลต์สาย + ตั๋ว pass แนะนำ + ลิงก์ Google Maps transit |
| 🚗 ขับรถ & mapcode | จุดขับรถ 8 เมือง (Hokkaido, Fuji, Alps) พร้อม mapcode กด copy ใส่ car navi หรือเบอร์โทรค้นใน navi + กฎจอดรถสำคัญ เช่น โควตารถ Shirakawa-go |
| 🌸 Season radar | ช่วงพีคซากุระ/ใบไม้แดง/เทศกาล 20 เมือง พร้อมป้าย "กำลังพีค / อีก X วัน" + แบนเนอร์เตือนช่วง Golden Week, Obon, ปีใหม่ |
| 🗺️ POI อัตโนมัติ | จุดน่าสนใจรอบเมืองรัศมี 10 กม. จาก Wikipedia GeoSearch — ครอบทุกเมืองรวมเมืองนอกลิสต์ ไม่ต้องคัดมือ |
| 💴 เรทเงินเยน-บาท | 100 / 1,000 / 10,000 เยนเป็นบาท อัปเดตทุก 6 ชม. |
| 🤖 AI Insight | แชทถามแผนเที่ยวอิง context ของหน้า (Gemini Flash-Lite หรือ OpenAI) + สรุปสั้นรายเมือง |
| 📰 ข่าว/อีเวนต์ | RSS feed รายเมือง |
| 📱 PWA | ติดตั้งเป็นแอปได้ทั้ง Android / iOS / Desktop |
| 🔗 OG Image | ภาพแชร์สไตล์ญี่ปุ่น (眺め + พระอาทิตย์แดง + เงาภูเขา) สร้างอัตโนมัติรายเมือง |
npm install
npm run dev # http://localhost:3000
npm run build # ตรวจ type + build production
.env.local หรือ Vercel)OPENWEATHER_API_KEY= # อากาศสำรอง (มี free tier)
OPENAQ_API_KEY= # คุณภาพอากาศ
WINDY_WEBCAMS_API_KEY= # กล้อง Windy รายเมือง
ANTHROPIC_API_KEY= # Claude Haiku 4.5 — ตัวเลือกแรกของแชท (กร๊วก voice ดีสุด)
AI_API_KEY= # OpenAI (gpt-4o-mini) — fallback แชท
GEMINI_API_KEY= # Gemini 2.5 Flash-Lite — fallback แชท + AI summary
ไม่มี key ตัวไหนแอปก็ยังทำงาน: อากาศใช้ Open-Meteo (ฟรีไม่ใช้ key), กล้องใช้ลิสต์ YouTube คัดมือ, AI ตอบด้วยกฎสำเร็จรูปภาษาไทย
app/
page.tsx # Landing: ค้นหา + การ์ด 41 เมืองพร้อมรูป (ISR 1 วัน)
city/[slug]/page.tsx # หน้าเมือง: ดึงทุก signal แบบ parallel (ISR 30 นาที)
city/[slug]/opengraph-image # OG รายเมือง (ImageResponse + Noto Serif JP subset)
api/assistant # แชท AI พร้อมเกราะกันคอสต์
api/{weather,aqi,webcams,events,geocode,summary}
manifest.ts # PWA manifest
lib/
cities/city-configs.ts # ข้อมูล 41 เมือง: พิกัด, livecams (YouTube), คำแนะนำ 5 หมวด
cities/travel-meta.ts # intro/mood, เมืองใกล้เคียง, fallback recommendations
services/ # weather, aqi, webcams, quakes, fx, events, geocode,
# ai-summary, city-images (Wikipedia)
components/
travel-dashboard.tsx # หน้าเมืองทั้งหมด (client)
city-search.tsx # ช่องค้นหา + suggestion
webcam-map.tsx # แผนที่เลือกกล้อง (Leaflet, dynamic import)
ช่องค้นหา → /api/geocode → ลำดับ: (1) 41 เมืองใน config → (2) seed list →
(3) Nominatim (OSM) สำหรับเมืองใดก็ได้ในญี่ปุ่น → redirect ไป /city/[slug]
ทุก signal ดึงตามพิกัดจริงของเมืองนั้น
generic — ไม่ค้นรูปเลย/api/assistant)ประเมินคอสต์รวม: ~$0–2/เดือน (ทุก API ภายนอกฟรี, AI โดน cache เกือบหมด, Vercel Hobby ฟรี) — จุดจ่ายจริงมีแค่โดเมน (~$9–11/ปี)
| เรื่อง | การตัดสินใจ |
|---|---|
Custom fr grid (grid-cols-[1.45fr_0.95fr]) | ต้องครอบ minmax(0,…) เสมอ ไม่งั้น min-content ของลูก (เช่น แถบ thumbnail) ระเบิดคอลัมน์จน hero เหลือเส้นเดียว |
| แถบเลื่อนแนวนอน | ใช้ w-0 min-w-full กัน intrinsic width ดันการ์ด — พฤติกรรม scroll container ต่างกันตาม Chrome เวอร์ชัน |
| กัน overflow ทั้งหน้า | overflow-x-clip ที่ <main> (ใช้ clip ไม่ใช่ hidden เพื่อไม่ทำ sticky พัง) |
| รูป hero เมือง | ห้าม hardcode URL จาก Wikimedia (ไฟล์โดนลบ/เปลี่ยนชื่อได้) — ดึงผ่าน API แล้ว cache แทน |
| Windy webcams | ส่วนใหญ่เป็นกล้องเฝ้าระดับน้ำ มุมไม่สวย → คัด YouTube live (ตรวจ oEmbed ว่ายังออนไลน์) ขึ้นก่อนเสมอ |
| Windy embed | ฝัง iframe ได้ (ไม่มี X-Frame-Options) — อย่าแบนทั้งโดเมน |
| ฟอนต์ใน OG image | satori ไม่รองรับไทย/ญี่ปุ่นโดย default — โหลด Noto Serif JP subset จาก Google Fonts ด้วย UA Mozilla/4.0 เพื่อให้ได้ TTF (woff2 ใช้ไม่ได้) |
| PWA | ใส่แค่ manifest ไม่ใส่ service worker — กัน cache ค้าง ผู้ใช้ได้เวอร์ชันใหม่เสมอ |
| ตรวจ UI | ทุกการแก้ layout ให้ถ่าย screenshot จริงด้วย Chrome headless (มี puppeteer-core เป็น devDependency) ที่ 390/768/1280/1905px ก่อน push |
metadataBase ใน
app/layout.tsx และ BASE_URL ใน app/sitemap.ts + app/robots.tslib/cities/city-configs.ts ฟิลด์ livecamsOpen-Meteo · OpenAQ · Windy Webcams · Wikipedia/Wikimedia · Nominatim (OSM) · P2PQuake (JMA) · open.er-api.com · YouTube Live embeds · Google Fonts