เว็บไซต์สำหรับร้าน "ฟาร์มอร่อย" ฟาร์มคาเฟ่ จุดเด่นเมนูกะเพราและกาแฟ
- Framework: Next.js 15 (App Router, TypeScript)
- Database: MySQL + Prisma ORM
- Authentication: NextAuth.js
- Styling: Tailwind CSS
- Deployment: Docker
git clone <repository-url>
cd farmaroi-website
npm installสร้างไฟล์ .env (ดูตัวอย่างจาก .env.example):
DATABASE_URL="mysql://root:password@localhost:3306/farmaroi"
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"npm run db:generate
npm run db:push
npm run db:seednpm run devเปิดเบราว์เซอร์ที่ http://localhost:3000
หลังจากรัน seed จะมีผู้ใช้ 2 คน:
- Admin:
admin@farmaroi.com/admin123 - Staff:
staff@farmaroi.com/staff123
เข้าสู่ระบบหลังบ้านที่ /admin/login
# Development
npm run dev # รัน dev server
npm run build # build production
npm run start # รัน production server
# Database
npm run db:generate # สร้าง Prisma Client
npm run db:push # sync schema กับ database
npm run db:seed # seed ข้อมูลเริ่มต้น
npm run db:studio # เปิด Prisma Studio
# Import
npm run import:menu # นำเข้าเมนูจาก Google Sheetdocker-compose updocker build -t farmaroi-website .
docker run -p 3000:3000 farmaroi-website├── src/
│ ├── app/ # Pages (App Router)
│ ├── components/ # React components
│ ├── services/ # Data access layer
│ ├── lib/ # Utilities (auth, seo, prisma)
│ └── types/ # TypeScript types
├── prisma/
│ ├── schema.prisma # Database schema
│ └── seed.ts # Seed script
├── scripts/
│ └── import-menu-from-sheet.ts
├── public/ # Static files
└── docs/
└── plan.md # แผนโครงการ
- หน้าแรก (Hero, เมนูแนะนำ, โปรโมชัน)
- เมนูอาหาร (แยกตามหมวดหมู่)
- โปรโมชัน
- ข่าวสาร/บทความ
- เกี่ยวกับเรา
- ที่ตั้งร้าน (เวลาทำการ)
- ติดต่อเรา
- แกลเลอรี
- Dashboard
- จัดการเมนู (CRUD)
- จัดการโปรโมชัน
- จัดการข่าวสาร
- จัดการแบนเนอร์
- จัดการสาขา/เวลาทำการ
- จัดการผู้ใช้ (Admin only)
- Dynamic metadata
- Sitemap.xml อัตโนมัติ
- Robots.txt
- JSON-LD (LocalBusiness, MenuItem, Article)
- OpenGraph / Twitter Cards
- Google Analytics (GA4)
- Facebook Pixel
- TikTok Pixel
- สร้าง meta title/description อัตโนมัติ
- แนะนำ keywords และ hashtags
- ใช้ OpenAI API (ถ้าตั้งค่า
AI_API_KEY)
- สร้าง Service Account ใน Google Cloud Console
- แชร์ Google Sheet ให้กับ Service Account
- ตั้งค่า
.env:GOOGLE_SERVICE_ACCOUNT_EMAIL="..." GOOGLE_PRIVATE_KEY="..."
- รันคำสั่ง:
npm run import:menu
docker build -t farmaroi-website .
docker run -p 3000:3000 \
-e DATABASE_URL="..." \
-e NEXTAUTH_SECRET="..." \
farmaroi-websitedocker-compose up -dPrivate - สำหรับร้านฟาร์มอร่อยเท่านั้น