แพลตฟอร์ม marketplace สำหรับครูเรียนเสริมในไทย ออกแบบสำหรับ workflow ของครู ผู้ปกครอง และผู้ดูแลระบบ
- Frontend: Next.js 15 (App Router) + TypeScript + Tailwind CSS
- Backend: Firebase / Google Cloud
- Auth: Firebase Authentication
- Database: Cloud Firestore
- Storage: Firebase Storage
- Server runtime: Firebase Admin SDK + Firebase Functions
- Notifications: LINE Messaging API + In-app
- Payments: Omise / 2C2P planned for Phase 2
tutor-platform/
├── src/
│ ├── app/
│ │ ├── (auth)/ # Login, Register
│ │ ├── (teacher)/ # Teacher dashboard, courses, schedule, attendance
│ │ ├── (parent)/ # Parent dashboard, explore, bookings, progress
│ │ └── admin/ # Admin panel
│ ├── components/ # UI components
│ ├── hooks/ # Firebase auth/provider hooks
│ ├── lib/
│ │ ├── firebase/ # Firebase client/server configuration
│ │ ├── firestore/ # Firestore query helpers
│ │ └── line.ts # LINE notification helper
│ └── types/ # Firestore and legacy database types
├── functions/ # Firebase Functions
├── firestore.rules # Firestore security rules
├── firebase.json # Firebase project config
└── public/ # Static assets
# 1. Install dependencies
npm install
# 2. Setup environment
cp .env.example .env.local
# 3. Fill Firebase client and admin values in .env.local
# Use Firebase project settings for NEXT_PUBLIC_FIREBASE_* values.
# Use a service account for FIREBASE_PROJECT_ID, FIREBASE_CLIENT_EMAIL, and FIREBASE_PRIVATE_KEY.
# 4. Run dev server
npm run devRequired Firebase values:
NEXT_PUBLIC_FIREBASE_API_KEYNEXT_PUBLIC_FIREBASE_AUTH_DOMAINNEXT_PUBLIC_FIREBASE_DATABASE_URLNEXT_PUBLIC_FIREBASE_PROJECT_IDNEXT_PUBLIC_FIREBASE_STORAGE_BUCKETNEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_IDNEXT_PUBLIC_FIREBASE_APP_IDFIREBASE_PROJECT_IDFIREBASE_CLIENT_EMAILFIREBASE_PRIVATE_KEY
Optional local emulator flag:
FIREBASE_EMULATOR=true
users— ข้อมูลผู้ใช้และ roleteacher_profiles— ข้อมูลเฉพาะครูsubjects— วิชาเรียนcourses— คอร์สเรียนbookings— การจองเรียนattendance— การเข้าเรียนsession_reports— ผลการเรียนหลังแต่ละเซสชันreviews— รีวิวและ ratingnotifications— การแจ้งเตือนpayments— สถานะการชำระเงิน
teacher— ครูเรียนเสริม จัดการคอร์ส ตารางเรียน เช็คชื่อ และรายงานผลparent— ผู้ปกครอง ค้นหาครู จองเรียน และติดตามผลการเรียนadmin— ผู้ดูแลระบบ ตรวจสอบครูและดูภาพรวมระบบ
npm run typecheck
npm run buildCloud Firestore ยังต้องถูกสร้างใน Firebase project จริงก่อนใช้ production database ได้ หากยังไม่มีสิทธิ์สร้าง Cloud Firestore ให้รันระบบบน local emulator ก่อน:
# Terminal 1
npm run emulators
# Terminal 2
npm run build
npm run startเปิดแอปที่ http://localhost:3000 และเปิด Emulator UI ที่ http://127.0.0.1:4000