Xây dựng chức năng tìm kiếm và đặt xe phía khách hàng

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG tìm KIẾM và đặt XE GODY (Trang 43 - 47)

Sau khi người dùng đăng nhập, màn hình chính của ứng dụng sẽ xuất hiện, màn, chức năng chính của màn hình này bao gồm: lấy vị trí hiện tại của người dùng, cho phép người dùng nhập địa chỉ bắt đầu đi, hiển thị vị trí lên map. Sau khi có địa điểm đi, ứng dụng sẽ chuyển hướng người dùng đến màn hình Search. Ở màn hình Search này, người dùng sẽ phải thực hiện nhập địa điểm đến của mình. Sau khi có 2 địa điểm đi và đến, hệ thống sẽ sử dụng API Google Map, để tính toán được lộ trình đi, quãng đường đi, độ dài, thời gian.

const response = await getDistanceAndTime(store.booking?.origin, store.booking?.destination); if (response.__typename !== 'ErrorResponse') {

const totalFare = calculateFare(response.rows[0].elements[0].distance, response.rows[0].elements[0].duration);

store.saveBooking({ ...store.booking!,

distance: response.rows[0].elements[0].distance, duration: response.rows[0].elements[0].duration,

fare: totalFare }) navigation.navigate("ChooseCar", { defaultFare: store.booking?.fare }); }

Hình 3.19.Màn hình tìm kiếm địa điểm đi và đến

Hàm lấy vị trí của người dùng và tính toán phí của chuyến đi:

const getUserLocation = () => { Geolocation.getCurrentPosition(info => setUserLocation({ longitude: info.coords.longitude, latitude: info.coords.latitude })); }

export const calculateFare = (distance: any, duration: any) => { const distanceInKm = distance.value * 0.001;

const durationInMinutes = duration.value / 60; let totalFare = 0;

if (distanceInKm <= 2) {

totalFare = 1.5 + durationInMinutes * (1 / 23); }

if (distanceInKm > 2) {

totalFare = 1.5 + durationInMinutes * (1 / 23) + 0.75 * (distanceInKm - 2); }

return Math.round(totalFare); }

Tiếp theo, người dùng sẽ được chọn dịch vụ xe để di chuyển, ứng dụng sẽ đề nghị cho người dùng 3 loại hình dịch vụ xe: GodyX, GodyPremium, GodyLuxury. Phí chuyến đi ban đầu được tính sẽ dựa vào quảng đường đi và thời gian đi, sau khi người dùng chọn dịch vụ, phí này sẽ được tính lại dựa vào dịch vụ xe mà người dùng đã chọn. Cụ thể đối với GodyX phí ban đầu sẽ giữ nguyên, GodyPremium sẽ cộng thêm một nửa chi phí ban đầu còn lại GodyLuxury sẽ gấp đôi so với phí ban đầu.

Hình 3.20.Màn hình chọn dịch vụ xe

Tiếp theo, người dùng sẽ được yêu cầu chọn hình thức thanh toán, việc chọn hình thức thanh toán sẽ gồm 2 loại hình: thanh toán bằng thẻ (fake), thanh toán bằng tiền mặt. Bên cạnh đó, người dùng có thể sử dụng mã khuyến mại mà hệ thống đã đề xuất.

Hình 3.21.Màn hình thanh toán và mã khuyến mại

Sau khi chọn thanh toán, hệ thống sẽ tìm tài xế cho người dùng đặt xe. Đối với app tài xế, sẽ không có chức năng tìm kiếm theo địa chỉ, mà chỉ có chức năng gửi yêu cầu có thể nhận chuyến đi và gửi vị trí của tài xế lên hệ thống. Hệ thống sẽ thực hiện xử lý các yêu cầu và match những tài xế và khách hang phù hợp nhất. Sau khi match được tài xế và khách hàng đặt xe, thông tin về chuyến đi sẽ được hiển thị ra màn hình. Người dùng có thể nắm được thông tin chuyến đi.

Hình 3.22.Màn hình tìm kiếm tài xế

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG tìm KIẾM và đặt XE GODY (Trang 43 - 47)