Drive@KMITL

プロジェクト

Drive@KMITL

2024Programming
Next.jsFastAPI (Python)WebSocketsTailwind CSSFigmaGitHub Desktop
01

Product Summary

เว็บไซต์แชทสำหรับพูดคุยกับคนแปลกหน้าแบบสุ่ม โดยเปลี่ยนบรรยากาศตามสถานที่ต่าง ๆ ในมหาวิทยาลัย เสมือนกำลังเดินทางด้วยพาหนะ แบ่งผู้ใช้เป็น Driver และ Passenger มีระบบสร้างห้อง สุ่มเข้าห้อง จำกัดจำนวนคนตามประเภทรถ countdown ก่อนย้ายห้อง พื้นหลังวิดีโอแต่ละสถานที่ และบรรยากาศที่เปลี่ยนไปตาม room type

02

The Problem

ผู้ใช้หลายคนอยากมีพื้นที่ปลอดภัยสำหรับคุยกับคนไม่รู้จักโดยไม่ถูกตัดสิน แต่แพลตฟอร์มทั่วไปไม่ได้ออกแบบประสบการณ์ random chat แบบมีธีมและ room transition ชัดเจน

03

The Process

ออกแบบ flow หน้าหลัก, join room, create room และ chat room ใน Figma → พัฒนา backend API และ WebSocket communication ระหว่าง frontend กับ backend → สร้างระบบ create room, random join, role-based access และ room type restrictions → ปรับปรุง room status, user count, room transitions และหน้าเว็บให้สมบูรณ์ขึ้น

1

Phase 1: UI/UX Flow Design

ออกแบบ flow ใน Figma ครอบคลุมหน้าหลัก, การตั้ง username, เลือก role, join/create room และ chat room interface

2

Phase 2: FastAPI Backend & WebSocket

พัฒนา backend API ด้วย FastAPI และระบบ real-time communication ผ่าน WebSocket เชื่อมระหว่าง Next.js frontend กับ Python backend

3

Phase 3: Analysis & Conceptual Design

สร้างระบบ create room, random join, role-based access (Driver/Passenger) และ room type restrictions พร้อม capacity control ตามประเภทพาหนะ

4

Phase 4: Detailed Design & Prototype

เพิ่ม live room status, user count tracking, countdown timer, auto remove empty rooms และ location-based video backgrounds

Drive@KMITL Preview
02

The Challenge

ผู้ใช้หลายคนอยากมีพื้นที่ปลอดภัยสำหรับคุยกับคนไม่รู้จักโดยไม่ถูกตัดสิน แต่แพลตฟอร์มทั่วไปไม่ได้ออกแบบประสบการณ์ random chat แบบมีธีมและ room transition ชัดเจน

03

Core Features

👤

Username Setup

ตั้งชื่อก่อนเข้าห้อง

🚗

Driver / Passenger

เลือก role ก่อน join

🎲

Random Join

สุ่มเข้าห้องที่มีอยู่

🏠

Create Room

สร้างห้องพร้อมเลือกประเภท

🎛️

Room Capacity Control

จำกัดคนตาม room type

⏱️

Countdown to Next Room

นับเวลาก่อนย้ายห้อง

📡

Live Room Status

แสดงจำนวนคนแบบ real-time

🎥

Video Backgrounds

พื้นหลังตามสถานที่ใน KMITL

04

Room Types

🚲

Bicycle

Intimate2คน
🚕

Taxi

Small Group4คน
🚌

Songthaew

Medium10คน
🚐

EV / Minibus

Large15คน
05

Architecture & Development

Next.jsWebSocketFastAPI
01

Phase 1: UI/UX Flow Design

ออกแบบ flow ใน Figma ครอบคลุมหน้าหลัก, การตั้ง username, เลือก role, join/create room และ chat room interface

02

Phase 2: FastAPI Backend & WebSocket

พัฒนา backend API ด้วย FastAPI และระบบ real-time communication ผ่าน WebSocket เชื่อมระหว่าง Next.js frontend กับ Python backend

03

Phase 3: Room System & Role Logic

สร้างระบบ create room, random join, role-based access (Driver/Passenger) และ room type restrictions พร้อม capacity control ตามประเภทพาหนะ

04

Phase 4: Room Status, Transitions & Polish

เพิ่ม live room status, user count tracking, countdown timer, auto remove empty rooms และ location-based video backgrounds

06

Challenges & Limitations

✓ What Worked

  • Real-time WebSocket room join/leave ทำงานได้เสถียร
  • Role-based access (Driver/Passenger) แยกชัดเจน
  • Auto remove empty rooms ทำงานถูกต้อง
  • Video backgrounds และ UI ธีมสมบูรณ์
  • Room type capacity control ทำงานได้จริง

✗ What Didn't / Limitations

  • Room transition อัตโนมัติโดยไม่หลุด connection ยังเป็นความท้าทาย
  • เกมย่อยในแต่ละห้องยังไม่สมบูรณ์
  • การย้อนกลับห้องเก่ายังมีข้อจำกัด
  • Room history ยังจำกัด ไม่บันทึกประวัติการสนทนา
  • CORS และ WebSocket reconnection ต้องแก้เพิ่มเติม
07

Final Outcome

The Solution: แพลตฟอร์ม random chat ที่ผสมแนวคิด journey experience เข้ากับ real-time web app ทำให้การคุยกับคนแปลกหน้ามีทั้งบริบทและความแปลกใหม่ Impact: ได้ฝึก full-stack collaboration, real-time system design, และการแก้ปัญหา WebSocket / CORS / room transition ในโปรเจกต์จริง Limitations: เกมย่อยในแต่ละห้องยังไม่สมบูรณ์ และจำนวนห้อง/การย้อนกลับห้องเก่ายังมีข้อจำกัดจากระบบย้ายห้อง Challenges: ทำระบบ real-time communication ให้เปลี่ยนห้องอัตโนมัติได้โดยไม่หลุด connection, เชื่อม Backend กับ Frontend ให้เสถียร, และจัดการ room lifecycle เมื่อมีผู้ใช้เข้าออกหลายบทบาท

Role

Backend 50% · Frontend 5% · Document 40%

Tech Stack

Next.jsFastAPI (Python)WebSocketsTailwind CSSFigmaGitHub Desktop

Timeline

1 ภาคเรียน (ปีการศึกษา 2567)

Team

5 members

08

Full Gallery

All 5 screens — Home, Join Room, Create Room, Chat Room & Transition

05

The Solution

The Solution: แพลตฟอร์ม random chat ที่ผสมแนวคิด journey experience เข้ากับ real-time web app ทำให้การคุยกับคนแปลกหน้ามีทั้งบริบทและความแปลกใหม่ Impact: ได้ฝึก full-stack collaboration, real-time system design, และการแก้ปัญหา WebSocket / CORS / room transition ในโปรเจกต์จริง Limitations: เกมย่อยในแต่ละห้องยังไม่สมบูรณ์ และจำนวนห้อง/การย้อนกลับห้องเก่ายังมีข้อจำกัดจากระบบย้ายห้อง Challenges: ทำระบบ real-time communication ให้เปลี่ยนห้องอัตโนมัติได้โดยไม่หลุด connection, เชื่อม Backend กับ Frontend ให้เสถียร, และจัดการ room lifecycle เมื่อมีผู้ใช้เข้าออกหลายบทบาท