TripTogether คือเว็บแอปพลิเคชันสำหรับคอมมูนิตี้คนรักการท่องเที่ยว ที่ช่วยให้คุณสามารถแชร์ทริปในฝันและหาเพื่อนร่วมเดินทางใหม่ๆ ได้ง่ายๆ ไม่ว่าจะเป็นสายลุย สายชิลล์ หรือสายกิน ก็สามารถหาเพื่อนที่รู้ใจไปเที่ยวด้วยกันได้ที่นี่
- Authentication: ระบบสมัครสมาชิก, เข้าสู่ระบบ และกู้คืนรหัสผ่าน (Forgot Password)
- Create Trip: สร้างโพสต์หาเพื่อนเที่ยว ระบุรายละเอียด สถานที่ วันเวลา และจำนวนคน
- Join Trip: ส่งคำขอเข้าร่วมทริปที่สนใจ (ต้องได้รับการอนุมัติจากหัวหน้าทริป)
- Chat Room: ระบบแชทกลุ่มสำหรับผู้ร่วมทริป รองรับการส่งข้อความ, ส่งรูปภาพ และแชร์พิกัดตำแหน่ง (Location)
- Notification: ระบบแจ้งเตือนแบบ Real-time เมื่อมีคนขอเข้าร่วม, กดไลก์ หรือคอมเมนต์
- Profile: จัดการข้อมูลส่วนตัว รูปโปรไฟล์ ภาพปก และดูประวัติการโพสต์
- Review System: รีวิวความประทับใจหลังจบทริป และให้คะแนนเพื่อนร่วมทาง
- จัดการระบบผ่าน Firebase Console (Authentication, Firestore Database)
- ตรวจสอบและลบโพสต์/ผู้ใช้งานที่ผิดกฎระเบียบ
- ดูรายงานการใช้งาน (Reports) ที่ถูกส่งมาจากผู้ใช้
- Frontend: React.js (Vite), CSS3
- Backend & Database: Firebase (Authentication, Firestore)
- Deployment: Firebase Hosting
- Icons: Lucide React
- Clone โปรเจกต์
git clone [https://github.com/your-username/triptogether.git](https://github.com/your-username/triptogether.git) cd triptogether - ติดตั้ง Dependencies
npm install
- ตั้งค่า Environment Variables สร้างไฟล์ .env ที่ root folder และใส่ค่า config ของ Firebase:
VITE_FIREBASE_API_KEY=your_api_key VITE_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com VITE_FIREBASE_PROJECT_ID=your_project_id VITE_FIREBASE_STORAGE_BUCKET=your_project_id.firebasestorage.app VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id VITE_FIREBASE_APP_ID=your_app_id
- รันโปรเจกต์ (Development Mode)
npm run dev
การอัปโหลดรูปภาพ: ระบบใช้วิธีการเก็บรูปภาพแบบ Base64 String บันทึกลงใน Firestore โดยตรงเพื่อประหยัดค่าใช้จ่าย (ไม่ได้ใช้ Firebase Storage)
คำแนะนำ: ควรใช้รูปภาพที่มีขนาดเล็กหรือบีบอัดมาก่อนอัปโหลด
การจัดการ Admin: ไม่มีหน้า Dashboard แยกในตัวเว็บ การจัดการข้อมูลหลังบ้านต้องทำผ่าน Firebase Console เท่านั้น
โปรเจกต์นี้เป็นส่วนหนึ่งของวิชาโครงงานนิพนธ์ คณะเทคโนโลยีสารสนเทศและนวัตกรรม มหาวิทยาลัยกรุงเทพ