Skip to content

สถานะโปรเจกต์ — collage

Routes

Backend (Express, Render.com)

PathDescription
POST /api/collageสร้าง collage จากรูปที่อัปโหลด
GET /api/image/:filenameดึง collage จาก R2
GET /healthตรวจสอบสถานะ
POST /api/cleanupลบ collages เก่า (>30 วัน)

Frontend (Vercel)

PathDescription
/liffUI ตัวทำ collage (LIFF)
/api/webhookLINE bot webhook

ระบบดีไซน์ (Design System)

  • ธีมสี 7 วันในสัปดาห์ (อา=แดง, จ=เบจ, อ=ชมพู, พ=เขียว, พฤ=ส้ม, ศ=น้ำเงิน, ส=ม่วง)
  • Collage: กว้าง 1080px, หัวกระดาษ gradient สูง 220px, การ์ดขาวมุมมน, เงาตก
  • Layout: masonry, สูงสุด 3 คอลัมน์ (ไม่ยุบคอลัมน์)
  • Output: JPEG คุณภาพ 90 (mozjpeg)
  • ปฏิทินไทย (ปี พ.ศ. +543), ชื่อเดือนไทย

ฟีเจอร์ (Features)

  • [x] LIFF integration — เปิดจาก LINE, เลือกรูป, สร้าง collage
  • [x] ธีมสี 7 วันในสัปดาห์, ตรวจจับวันนี้ให้อัตโนมัติ
  • [x] Masonry layout (สูงสุด 3 คอลัมน์, ไม่ยุบ) — รูปสั้นเติมช่องว่าง
  • [x] NaN-safe กับขนาดรูป
  • [x] เรนเดอร์ฟอนต์ไทยผ่าน opentype.js
  • [x] คำสั่งบอท LINE (!ส่งรูป, !เมนู, !ลูกค้า)
  • [x] Cloudflare R2 storage พร้อมลบอัตโนมัติทุก 30 วัน
  • [x] Dark mode (prefers-color-scheme)
  • [x] ชื่อผู้ใช้คงอยู่ (localStorage)
  • [x] รูปต้นทางคมขึ้น — ไม่ upscaling, ลดขนาด lanczos3, Q90 mozjpeg

บันทึกการเปลี่ยนแปลง (Changelog)

2026-07-13

  • Sync OKF knowledge base across all 8 projects
  • Updated workspace index with current project inventory
  • Refreshed documentation timestamps and freshness

2026-07-12 (3)

  • กลับเป็น masonry (max 3 คอลัมน์) แทน row-wrapping grid — รูปสั้นเติมช่องว่าง ลดความยาว collage
  • ลบ isSmallLayout ห้ามยุบคอลัมน์ (ผู้ใช้: ไม่ควรยุบ มีแต่จะเพิ่ม)
  • คง guard NaN ตามไอเดีย "วัดความสูงจากรูปแรกของแถว"

2026-07-12 (2)

  • Fix บั๊ก layout รูปกระจกข้างบน (rowTops สะสม Y)
  • Auto-cleanup R2: 90 -> 30 วัน

2026-07-12 (1)

  • Fix blur: withoutEnlargement + lanczos3 + Q90 mozjpeg
  • Layout: masonry -> row-wrapping grid 3 คอลัมน์ (ชั่วคราว)
  • Fix บั๊ก NaN

2026-07-11

  • Initial KB documentation
  • Theme system: 7 day-of-week colors
  • Smart grid layout, centered last row
  • Persistent name via localStorage
  • Canvas auto-fits content height
  • Main menu: added truck.mcky.space button
  • Webhook: URLSearchParams for + encoding
  • Shrink preset buttons to 34px
  • Sample mockup
  • gitignore cleanup

Open Knowledge Framework