Skip to content

ข้อมูลโปรเจกต์: collage

ข้อมูลจำเพาะ (Identity)

  • Name: collage
  • Description: เครื่องมือทำ collage รูปภาพ พร้อม LINE LIFF bot
  • Purpose: สร้าง collage ภาพแนวธีมแล้วแชร์ผ่าน LINE chat

เทคโนโลยี (Technology)

  • Languages: JavaScript (Node.js), HTML/CSS
  • Frameworks: Express 4 (backend), vanilla HTML/CSS/JS (frontend)
  • Runtime: Node.js (ESM)
  • Package Manager: npm
  • Image Processing: sharp 0.33, opentype.js 2.0, fontkit 2.0
  • Deployment Targets: Render.com (backend API), Vercel (frontend + webhook)

Development

CommandAction
node backend/server.jsเริ่ม backend API server (พอร์ต 3000)
npm run deploy:webhookDeploy webhook ไป Vercel
npm run deploy:backendDeploy backend ไป Render.com

API

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

LINE Bot

CommandResponse
!ส่งรูป / !รูปเปิด LIFF collage maker
!เมนูเมนูหลัก ลิงก์ไป collage, truck, data
!ลูกค้า <query>ค้นหาลูกค้าใน data.mcky.space

Dependencies

Backend

PackageVersionPurpose
express^4.21.0HTTP server
sharp^0.33.5ประมวลผลรูปภาพ (สร้าง collage)
@aws-sdk/client-s3^3.600.0Cloudflare R2 storage
multer^1.4.5-lts.1จัดการอัปโหลดไฟล์
fontkit^2.0.4โหลดฟอนต์
opentype.js^2.0.0เรนเดอร์ฟอนต์สำหรับข้อความ overlay
cors^2.8.5คำขอข้าม origin

Frontend

PackageVersionPurpose
@line/bot-sdk^9.0.0LINE Messaging API (webhook)

External Services

ServicePurpose
Cloudflare R2เก็บรูปภาพ (bucket: ezzyreport)
LINE Messaging APIBot webhook + LIFF integration
Render.comโฮสต์ backend API
Vercelโฮสต์ frontend + webhook

สถาปัตยกรรม (Architecture)

  • Backend: Express server บน Render.com — collage generation API
  • Frontend: หน้า HTML เดียวกับ LIFF SDK v2 — UI ตัวทำ collage
  • Webhook: Vercel Serverless Function — ตัวจัดการคำสั่งบอท LINE
  • Storage: Cloudflare R2 สำหรับรูป collage ที่สร้าง

Project Structure

collage/
├── backend/
│   ├── server.js              # Express server: routes, multer, startup
│   ├── collage.js             # Core: layout engine, header SVG, card/shadow rendering
│   ├── r2-storage.js          # S3 client for R2: upload, get stream, cleanup old
│   ├── NotoSansThai.ttf       # Thai font for text overlay
│   ├── .env.example           # R2 env vars template
│   ├── package.json
│   └── package-lock.json
├── frontend/
│   ├── index.html             # LIFF app page (collage maker UI)
│   ├── sample.html            # Theme color preview mockup
│   ├── api/
│   │   └── webhook.js         # LINE bot webhook (Vercel Serverless Function)
│   ├── vercel.json            # Route /liff → /index.html
│   ├── .env.local             # Vercel OIDC token
│   └── package.json
├── .gitignore
├── .vercel/
│   └── repo.json

การ deploy (Deployment)

ComponentPlatformURL
Backend APIRender.comcollage-7cgv.onrender.com
Frontend + WebhookVercelcollage.vercel.app
Image storageCloudflare R2pub-737d7924b2654190843ce35c45f973b6.r2.dev
SourceGitHubgithub.com/ktypez/collage

สถานะ (Status)

  • State: active
  • Role: พัฒนาอยู่
  • LINE LIFF ID: 2010606328-7UnH1Yre

Open Knowledge Framework