Kế hoạch thực hiện
Quy trình thực hiện
● Phác thảo sơ lược mô hình dữ liệu.
● Lên kế hoạch thực hiện
● Phân tích đặc tả yêu cầu.
Kế hoạch chi tiết - áp dụng quy trình phát triển phần mềm
● Phác thảo sơ lược mô hình dữ liệu
- Phân tích đối tượng và các thuộc tính.
- Vẽ mô hình sơ đồ lớp.
● Lên kế hoạch thực hiện và khảo sát hiện trạng:
- Phân tích tính khả thi và cách thức thực hiện
- Thu thập thông tin và rút ra yêu cầu phần mềm
● Phân tích đặc tả yêu cầu: Dựa trên các đặc tả yêu cầu đã thu thập được để phác thảo UI sơ lược để dễ thực hiện code.
- Vẽ use-case: phân tích nghiệp vụ tổng quan.
- Vẽ sơ đồ Sequence Diagram (Sơ đồ tuần tự).
- Xác định kiến trúc hệ thống.
- Phân tích dữ liệu dựa trên yêu cầu người dùng.
- Kết quả đầu ra là tài liệu thiết kế dữ liệu, dùng để phục vụ viết thiết kế database.
- Vẽ giao diện màn hình cũng như phân tích thiết kế xử lý dựa trên yêu cầu người dùng.
- Kết quả đầu ra là tài liệu thiết kế giao diện, dùng để phục vụ viết thiết kế giao diện (UI) cho sản phẩm.
- Phân chia nhiệm vụ code dựa theo các yêu cầu.
- Tạo các test case để test hệ thống chạy tốt hay chưa.
● Cách tổ chức quản lý các thành viên:
Team chúng em cùng thảo luận, họp bàn để phân công, phân chia tìm hiểu kiến thức về mỗi giai đoạn Mỗi bạn trong nhóm sẽ có vai trò riêng
Khi đã nắm được kiến thức về giai đoạn mình tìm hiểu Tiến hành training và thực hiện ngay.
Sau mỗi giai đoạn được hoàn thành Tiến hành kiểm tra, nếu có lỗi có thể quay lại bước trước đó để hoàn thiện hay sửa lỗi rồi mới tiếp tục tới tiếp theo.
Cứ như vậy cho tới khi hoàn thành hết tất cả các giai đoạn, nhóm em sẽ báo cáo cuối kỳ.
1.2.2.2 Công cụ quản lý và thực hiện đồ án
- Facebook – Messenger: Nơi thông báo các việc quan trọng.
- Google Meet: Meeting trao đổi giữa các thành viên.
- Github kết hợp Visual Studio Code
Bảng kế hoạch dự kiến:
Cột mốc Công việc Hoàn thành Sản phẩm
Họp bàn đề Thống nhất đề tài đồ án X Đề tài: Ứng dụng đặt xe tài
Phân tích, đặc tả yêu cầu
Phân tích, đặc tả danh sách yêu cầu được đưa ra X Đặc tả yêu cầu Thông tin chức năng Biểu mẫu và quy định
Mô tả tổng thể Biểu đồ luồng xử lý dữ liệu
Mô tả dòng sự kiện
Thiết kế sơ đồ lớp X Sơ đồ lớp tổng thể
Thiết kế sơ đồ logic X Sơ đồ logic hoàn chỉnh Thiết kế cơ sở dữ liệu X Các bảng dữ liệu
Lập danh sách các màn hình
X Bảng danh sách các màn hình
Vẽ sơ đồ liên kết giữa các màn hình X Sơ đồ liên kết giữa các màn hình
Lập mô tả của từng màn hình X
Bản vẽ giao diện các màn hình
Bảng mô tả các đối tượng trên màn hình
Cài đặt cơ sở dữ liệu X Cơ sở dữ liệu hoàn chỉnh
Code Front-end X Giao diện ứng dụng
X Các chức năng được đưa ra
Tiến hành thử nghiệm các chức năng phần mềm với dữ liệu mẫu
Tạo ra các test case để kiểm thử tính tối ưu của phần mềm.
Hoàn thành báo cáo cuối kỳ
Slide powerpoint File báo cáo word
Bảng 1.2: Bảng kế hoạch dự kiến Tài liệu bao gồm 6 phần chính
● Phần 1: Giới thiệu chung: giới thiệu tổng quan về tài liệu
● Phần 2: Giới thiệu tổng quan công nghệ sử dụng
● Phần 3: Khảo sát hiện trạng: đưa ra kết quả khảo sát về hiện trạng tổ chức, tin học, nghiệp vụ
● Phần 4: Thiết kế hệ thống
● Phần 5: Thiết kế giao diện
Mục đích
Xây dựng một nền tảng đặt xe tiện lợi và hiệu quả cho sinh viên Đại học Quốc gia TP.HCM Cụ thể như sau:
● Cung cấp giải pháp đặt xe thuận tiện.
● Tối ưu hóa trải nghiệm người dùng.
● Tăng cường và đảm bảo an toàn cho những chuyến đi.
● Xây dựng ứng dụng đa nền tảng.
Đối tượng
Sinh viên Đại học Quốc gia Thành phố Hồ Chí Minh.
TỔNG QUAN CÔNG NGHỆ 9 2.1 Công nghệ sử dụng
Ngôn ngữ lập trình
Javascript – một ngôn ngữ vô cùng phổ biến trong lĩnh vực lập trình ngày nay Có thể nói rằng, Javascript hay còn gọi là JS là ngôn ngữ rất thông dụng trong vài năm gần đây Đã có khá nhiều framework ra đời và được viết bằng loại ngôn ngữ này Từ frontend cho đến backend thì bất cứ nơi nào cũng có sự xuất hiện của JS Một vài thông tin sau đây sẽ giúp cho bạn hiểu thêm về loại ngôn ngữ đặc biệt này.
● Javascript chính là một ngôn ngữ lập trình web rất phổ biến ngày nay.
● Javascript được tích hợp đồng thời nhúng vào HTML để hỗ trợ cho website trở nên sống động hơn Chúng cũng đóng vai trò tương tự như một phần của website, cho phép Client-side Script từ người dùng tương tự máy chủ (Nodejs) để tạo ra những website động.
Lịch sử phát triển của Javascript:
● Brendan Eich chính là người đã phát triển Javascript tại Netscape với tiền thân là Mocha Sau đó, Mocha được đổi thành LiveScript và cuối cùng mới đổi thànhJavaScript.
● Năm 1998, JavaScript với phiên bản mới nhất là ECMAScript phát hành và đến năm 1999 thì ECMAScript 3 được ra mắt.
● Năm 2016, ứng dụng JavaScript đã đạt kỷ lục lên tới 92% website sử dụng, đồng thời cũng được đánh giá là một công cụ cực kỳ quan trọng đối với lập trình viên.
Cách hoạt động của javascript là gì?
● Thông thường, JavaScript sẽ được nhúng trực tiếp vào một website hoặc chúng được tham chiếu qua file js hoặc JavaScript.
● Đây là một ngôn ngữ đến từ phía Client nên Script sẽ được download về máy client khi truy cập.
● Tại đây, chúng sẽ được hệ thống xử ý Vì vậy, bạn không cần phải tải về máy server rồi chờ cho chúng xử lý xong mới phản hồi được kết quả đến client.
Javascript dùng để làm gì?
● Bên cạnh việc tìm hiểu javascript là ngôn ngữ gì thì chúng được sử dụng để làm gì cũng rất quan trọng Việc nắm bắt được mục đích của ngôn ngữ đặc biệt này sẽ giúp bạn dễ dàng sử dụng chúng hơn trong công việc Ưu nhược điểm của ngôn ngữ lập trình Javascript: Là một ngôn ngữ lập trình rất phổ biến hiện nay, Javascript có cho mình rất nhiều ưu điểm nổi bật Tuy nhiên, bên cạnh những ưu điểm đó thì ngôn ngữ lập trình này cũng có những nhược điểm cần được lưu ý. Ưu điểm:
- Chương trình rất dễ học
- Những lỗi Javascript rất dễ để phát hiện, từ đó giúp bạn sửa lỗi một cách nhanh chóng hơn.
- Những trình duyệt web có thể dịch thông qua HTML mà không cần sử dụng đến một compiler.
- JS có thể hoạt động ở trên nhiều nền tảng và các trình duyệt web khác nhau.
- Được các chuyên gia đánh giá là một loại ngôn ngữ lập trình nhẹ và nhanh hơn nhiều so với các ngôn ngữ lập trình khác.
- JS còn có thể được gắn trên một số các element hoặc những events của các trang web.
- Những website có sử dụng JS thì chúng sẽ giúp cho trang web đó có sự tương tác cũng như tăng thêm nhiều trải nghiệm mới cho người dùng.
- Người dùng cũng có thể tận dụng JS với mục đích là để kiểm tra những input thay vì cách kiểm tra thủ công thông qua hoạt động truy xuất database.
- Giao diện của ứng dụng phong phú với nhiều thành phần như Drag and Drop, Slider để cung cấp đến cho người dùng một Rich.
Interface (giao diện giàu tính năng).
- Giúp thao tác với người dùng phía Client và tách biệt giữa các Client với nhau.
- Một số nhược điểm còn tồn tại.
- JS Code Snippet khá lớn.
- JS dễ bị các hacker và scammer khai thác hơn.
- JS cũng không có khả năng đa luồng hoặc đa dạng xử lý.
- Có thể được dùng để thực thi những mã độc ở trên máy tính của người sử dụng.
- Những thiết bị khác nhau có thể sẽ thực hiện JS khác nhau, từ đó dẫn đến sự không đồng nhất.
- Vì tính bảo mật và an toàn nên các Client-Side Javascript sẽ không cho phép đọc hoặc ghi các file.
- JS không được hỗ trợ khi bạn sử dụng ở trong tình trạng thiết bị được kết nối mạng.
Thư viện
React Native là một framework mã nguồn mở được phát triển bởi Facebook, cho phép bạn xây dựng ứng dụng di động đa nền tảng sử dụng JavaScript React Native sử dụng cú pháp React để tạo giao diện người dùng, giúp phát triển ứng dụng nhanh chóng và hiệu quả trên nhiều nền tảng khác nhau, bao gồm cả iOS và Android.
Một số đặc điểm nổi bật của React Native bao gồm:
● Mã nguồn chia sẻ: React Native cho phép bạn chia sẻ mã nguồn giữa các nền tảng khác nhau, giảm bớt công sức và thời gian phát triển so với việc phát triển ứng dụng riêng biệt cho iOS và Android.
● Hiệu suất cao: React Native sử dụng kiến trúc giống như ứng dụng native, với sự tương tác trực tiếp với các thành phần gốc của hệ điều hành Điều này đảm bảo rằng ứng dụng React Native có khả năng hoạt động mượt mà và tương tác nhanh.
● Giao diện người dùng linh hoạt: React Native cho phép bạn xây dựng giao diện người dùng sử dụng các thành phần UI đã có sẵn, tương tự như các ứng dụng native Bạn cũng có thể tạo các thành phần giao diện tùy chỉnh nếu cần.
● Hot reloading: React Native hỗ trợ tính năng hot reloading, cho phép bạn cập nhật và xem trực tiếp sự thay đổi trong mã nguồn mà không cần khởi động lại ứng dụng Điều này giúp tăng tốc quá trình phát triển và thử nghiệm ứng dụng.
● Cộng đồng mạnh mẽ: React Native có một cộng đồng lớn và tích cực, cung cấp các thư viện, công cụ và tài liệu hữu ích Điều này giúp cho việc học tập và giải quyết vấn đề trở nên dễ dàng hơn.
React Native đã được sử dụng rộng rãi trong việc phát triển các ứng dụng di động nổi tiếng như Facebook, Instagram, Skype, Airbnb và nhiều hơn nữa Nó đem lại lợi ích của việc sử dụng JavaScript để phát triển ứng dụng di động đa nền tảng, giúp tiết kiệm thờ
NativeBase là một thư viện UI mã nguồn mở cho React Native, được xây dựng dựa trên React Native và hướng tới việc cung cấp các thành phần giao diện người dùng (UI components) đẹp mắt và dễ sử dụng.
NativeBase cung cấp một bộ sưu tập đa dạng các thành phần UI đã được thiết kế sẵn như nút, danh sách, thanh trượt, biểu đồ, menu, thẻ, và nhiều hơn nữa Các thành phần này đã được tối ưu hóa cho cả iOS và Android, giúp xây dựng giao diện người dùng đồng nhất và chuyên nghiệp trên cả hai nền tảng.
Dưới đây là một số đặc điểm và lợi ích của NativeBase:
● Thiết kế đẹp mắt: NativeBase cung cấp các thành phần UI được thiết kế sẵn theo phong cách Material Design và iOS Human Interface Guidelines Điều này giúp ứng dụng của bạn có giao diện hấp dẫn và chuyên nghiệp.
● Tích hợp dễ dàng: NativeBase tích hợp tốt với React Native, cho phép bạn sử dụng các thành phần UI trong mã nguồn của bạn một cách dễ dàng Bạn có thể tùy chỉnh và điều chỉnh các thành phần theo ý muốn.
● Hỗ trợ đa nền tảng: NativeBase tối ưu hóa các thành phần UI cho cả iOS vàAndroid, đảm bảo giao diện người dùng của bạn hoạt động mượt mà trên cả hai nền tảng.
● Tính linh hoạt: NativeBase cung cấp nhiều tùy chọn và khả năng tùy chỉnh cho các thành phần UI Bạn có thể thay đổi màu sắc, kiểu chữ, kích thước và nhiều hơn nữa để phù hợp với ý tưởng thiết kế của bạn.
● Tương thích mở rộng: NativeBase tương thích với các thư viện mở rộng khác của React Native như Redux và React Navigation, cho phép bạn xây dựng ứng dụng phức tạp và có khả năng mở rộng.
NativeBase là một công cụ hữu ích cho việc phát triển ứng dụng React Native, giúp bạn nhanh chóng xây dựng giao diện người dùng đẹp mắt và tương thích trên nhiều nền tảng.
Cơ sở dữ liệu
NoSQL (Not Only SQL) là một thuật ngữ được sử dụng để chỉ các hệ quản trị cơ sở dữ liệu không phải là SQL truyền thống, không sử dụng mô hình quan hệ và ngôn ngữ truy vấn SQL Thay vì sử dụng bảng và các quan hệ giữa chúng, NoSQL tập trung vào việc lưu trữ dữ liệu không có cấu trúc hoặc có cấu trúc linh hoạt hơn.
Dưới đây là một số đặc điểm chung của hệ thống NoSQL:
● Mô hình dữ liệu linh hoạt: NoSQL cho phép lưu trữ dữ liệu không cần tuân theo một cấu trúc cố định như các hệ quản trị cơ sở dữ liệu quan hệ Dữ liệu có thể được lưu trữ dưới dạng tài liệu, cặp khóa-giá trị, đồ thị hoặc các mô hình khác.
● Khả năng mở rộng tốt: Hệ thống NoSQL được thiết kế để có khả năng mở rộng ngang (horizontal scalability), cho phép mở rộng hệ thống một cách dễ dàng bằng cách thêm các nút (node) vào hệ thống.
● Hiệu suất cao: Do không cần tuân theo quy tắc ACID (Atomicity, Consistency,
Isolation, Durability) như các hệ quản trị cơ sở dữ liệu quan hệ, NoSQL có thể cung cấp hiệu suất cao hơn cho các tác vụ đọc/ghi dữ liệu lớn và phân tán.
● Tích hợp dễ dàng với công nghệ mới: Hệ thống NoSQL thường tích hợp tốt với các công nghệ mới như cloud computing, big data và real-time analytics Điều này cho phép phát triển ứng dụng hiện đại và linh hoạt hơn.
● Hỗ trợ đa dạng các loại dữ liệu: NoSQL hỗ trợ lưu trữ và xử lý các loại dữ liệu đa dạng, bao gồm dữ liệu cấu trúc, bán cấu trúc và không cấu trúc Điều này làm cho NoSQL trở thành lựa chọn phù hợp cho các ứng dụng phân tích dữ liệu và đa phương tiện.
Có nhiều loại hệ thống NoSQL khác nhau như Cơ sở dữ liệu cột (Columnar databases), Cơ sở dữ liệu tài liệu (Document databases), Cơ sở dữ liệu đồ thị (Graph databases), Cơ sở dữ liệu khóa-giá trị (Key-value databases), và Cơ sở dữ liệu bộ nhớ(In-memory databases) Mỗi loại có ưu điểm và hạn chế riêng, và lựa chọn phụ thuộc vào yêu cầu cụ thể của dự án.
KHẢO SÁT HIỆN TRẠNG 15 3.1 Hiện trạng tổ chức
Hiện trạng tin học
Con người, trình độ tin học:
● Tài xế, sinh viên có khả năng tiếp thu công nghệ tin học dễ dàng.
● Cán bộ phòng Công tác sinh viên đã và đang sử dụng tốt phần mềm quản lý nhân sự.
Hiện trạng nghiệp vụ
Là sinh viên có phương tiện cá nhân, muốn chia sẽ phương tiện di chuyển nhằm kiếm thêm thu nhập Mỗi ngày, khi sinh viên muốn chia sẽ phương tiện, sinh viên có thể tạo trước chuyến đi của mình trên ứng dụng Sinh viên lựa chọn điểm đến và điểm đi, có thể hẹn trước giờ xuất phát, hệ thống sẽ tự ghép cặp với sinh viên có nhu cầu di chuyển đến cùng một địa điểm trước thời gian xuất phát Nếu không tìm thấy, hệ thống thông báo ghép xe không thành công.
Là sinh viên các trường đại học trong khối Đại học Quốc gia, có nhu cầu đi lại trong khu vực khu đô thị Đại học Quốc gia Mỗi ngày, nếu sinh viên có nhu cầu di chuyển, sinh viên chọn điểm đón và điểm đến trong ứng dụng, có thể hẹn trước giờ đón Hệ thống sẽ tự động tìm kiếm và ghép cặp với tài xế có cùng điểm đến và gần với điểm đón nhất Nếu không tìm thấy tài xế, hệ thống thông báo ghép xe không thành công.
Hình 3.2: Quy trình nghiệp vụ
3.3.2.1 Quy trình đăng kí tài khoản:
Mô tả nghiệp vụ: Đăng kí tài khoản là bước đầu tiên phải thực hiện khi bắt đầu sử dụng ứng dụng. Quy trình đăng kí tài khoản yêu cầu sinh viên phải cung cấp đầy đủ thông tin các giấy tờ cần thiết để tiến hành xác minh và tạo tài khoản nhằm đảm bảo sự an toàn và tin cậy của ứng dụng cho người dùng khác
THIẾT KẾ HỆ THỐNG 18 4.1 Use-case Diagram
Sơ đồ Use-case
Hình 4.1: Sơ đồ Use-case
Danh sách các tác nhân
Tác nhân Mô tả tác nhân Ghi chú
Student Người có nhu cầu đặt xe
Admin Cán bộ phòng CTSV, quản lý thông tin sinh viên và xác thực tài khoản.
Danh sách Use-case
ID Tên Use case Mô tả Chức năng
UC001 Authentication Xác thực tài khoản Xác thực tài khoản
UC002 Log in Đăng nhập vào tài khoản theo từng role Đăng nhập
UC003 Sign up Đăng ký Đăng ký
UC004 Save location Lưu vị trí để dễ dàng chọn vị trí đặt xe Lưu vị trí
UC005 Coupon Chọn các coupon có sẵn để nhận ưu đã cho chuyếm đi Chọn coupon
UC006 User information Xem thông tin tài khoản Xem thông tin tài khoản UC007 User history Xem lịch sử đặt xe Lịch sử đặt xe
UC008 Review Đánh giá cho chuyến đi Đánh giá
UC010 Make reservation Đặt xe trực tiếp hoặc đặt trước Đặt xe
UC011 View user list Xem danh sách người dùng Xem danh sách người dùng
UC012 Suspend account Quản lý tài khoản Quản lý tài khoản
Bảng 4.2: Danh sách Use-case
Đặc tả Use-case
Use Case Name Log in
Description Use Case cho phép người dùng đăng nhập vào hệ thống
Trigger Khi người dùng lần đầu đăng nhập vào hệ thống
Khi người dùng đăng nhập vào hệ thống sau một thời gian không sử dụng Pre-conditions Người dùng phải có tài khoản đăng nhập
Người dùng phải có kết nối internet Post-conditions Người dùng đăng nhập ứng dụng thành công
Basic flow 1 Người dùng chọn vào button “Đăng nhập”.
2 Người dùng nhập tên đăng nhập và mật khẩu
3 Hệ thống xác thực thành công và quay trở lại trang chủ
Alternative flow 1a Người dùng chọn đăng nhập với Google.
1a1 Hệ thống chuyển hướng đến trang đăng nhập của Google. 1a2 Hệ thống xác thực thành công và quay trở lại trang chủ
Exception flow 3a Hệ thống xác thực không thành công và hiển thị thông báo
3a1 Người dùng chọn button “Xác nhận”
Use Case dừng lại 3a2 Người dùng chọn “Quên mật khẩu”
Use Case tiếp tục Use Case UC-1.1 Non-Functional
Bảng 4.3: Đặc tả Use-case đăng nhập
Use Case Name Sign up
Description Use Case cho phép người dùng đăng kí tài khoản với hệ thống
Trigger Khi người dùng lần đầu sử dụng hệ thống mà chưa có tài khoản Pre-conditions Người dùng phải có kết nối internet
Người dùng chưa đăng kí tài khoản với hệ thống Post-conditions Người dùng đăng kí tài khoản thành công
Basic flow 1 Người dùng chọn vào button “Đăng kí”.
2 Người dùng nhập thông tin theo yêu cầu
3 Hệ thống tiến hành xác minh thông tin người dùng.
4 Hệ thống xác thực thành công và quay trở lại trang chủ
Exception flow 4a Hệ thống xác thực không thành công, gửi thông báo đến người dùngUse Case dừng lạiNon-Functional
Bảng 4.4: Đặc tả Use-case đăng kí
Use Case Name Verify information
Description Use Case cho phép người dùng quản trị xác minh thông tin đăng kí của người dùng
Trigger Khi có người dùng đăng kí tài khoản với hệ thống
Pre-conditions Người dùng phải có kết nối internet
Người phải đăn nhập vào hệ thống bằng tài khoản quản trị Post-conditions Xác minh và đăng kí tài khoản mới cho người dùng
Basic flow 1 Người dùng quản trị kiểm tra đối chiếu thông tin đăng kí của người dùng
2 Người dùng quản trị nhấn nút “Xác nhận”.
3 Hệ thống đăng kí tài khoản người dùng, lưu thông tin vào cơ sở dữ liệu và gửi thông báo đến người dùng. Alternative flow Không có
Exception flow 1a Người dùng quản trị phát hiện thông tin sai lệch.
1a1 Người dùng quản trị nhấn nút “Huỷ đơn đăng kí”.
1a2 Hệ thống xoá thông tin đăng kí của người dùng
Use Case dừng lại Non-Functional
Bảng 4.5: Đặc tả Use-case xác mình người dùng
Use Case Name Save location
Description Use Case cho phép người dùng tạo điểm đến trên bản đồ và trong dữ liệu của hệ thống
Trigger Khi người dùng ấn “Tạo điểm đến mới”
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng lưu địa điểm thành công
Basic flow 1 Người dùng chọn vào button “Tạo điểm đến mới”.
2 Người dùng nhập tên địa điểm theo yêu cầu
3 Hệ thống lưu thông tin vào cơ sở dữ liệu.
Bảng 4.6: Đặc tả Use-case lưu địa điểm
Description Use Case cho phép người dùng xem và sử dụng khuyến mãi có sẵn của hệ thống
Trigger Khi người dùng chuyển đến tab “Coupon”
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng xem và sử dụng khuyến mãi thành công
Basic flow 1 Người dùng chọn vào tab “Khuyến mãi”.
2 Người dùng lựa chọn khuyến mãi phù hợp và ấn button “Sử dụng”.
3 Hệ thống tiến hành áp dụng khuyến mãi và tính toán lại hoá đơn cho người dùng.
Exception flow 3a Hệ thống áp dụng không thành công, gửi thông báo đến người dùngUse Case dừng lạiNon-Functional
Bảng 4.7: Đặc tả Use-case khuyến mãi
Use Case Name User information
Description Use Case cho phép người dùng xem và chỉnh sửa thông tin cá nhân đăng kí với hệ thống
Trigger Khi người dùng chuyển đến tab tài khoản
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng xem và thay đổi thông tin tài khoản thành công
Basic flow 1 Người dùng chọn vào tab “Tài khoản”.
2 Người dùng thay đổi các thông tin theo nhu cầu
3 Người dùng chọn button “Xác nhận”
4 Hệ thống thực thi thành công, lưu thay đổi vào cơ sở dữ liệu Alternative flow Không có
Exception flow 4a Hệ thống thực thi không thành công, gửi thông báo đến người dùngUse Case dừng lại
Bảng 4.8: Đặc tả Use-case thông tin người dùng
Use Case Name User history
Description Use Case cho phép người dùng xem lại lịch sử chuyến đi Priority Must have
Trigger Khi người dùng chuyển đến tab lịch sử
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng xem lịch sử chuyến đi
Basic flow 1 Người dùng chọn vào tab “Lịch sử”.
2 Hệ thống hiển thị lịch sử chuyến đi của người dùng
Alternative flow 2a Người dùng đánh giá chuyến đi:
2a1 Người dùng bấm vào button “Đánh giá”
Use-case chuyển đến Use-case UC009
Bảng 4.9: Đặc tả Use-case lịch sử chuyến đi
Description Use Case cho phép người dùng đánh giá trải nghiệm chuyến đi
Trigger Khi người dùng ấn button “Đánh giá” ở tab “Lịch sử”
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Chuyến đi đã hoàn thành
Post-conditions Người dùng để lại đánh giá trải nghiệm thành công
Basic flow 1 Người dùng nhập thông tin đánh giá trải nghiệm của bản thân
2 Người dùng bấm vào button “Xác nhận”.
3 Hệ thống lưu trữ thông tin vào cơ sở dữ liệu.
Bảng 4.10: Đặc tả Use-case đánh giá
Use Case Name Select service
Description Use Case cho phép người dùng lựa chọn dịch vụ của hệ thống để sử dụng
Trigger Khi người dùng có nhu cầu sử dụng dịch vụ của hệ thống
Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng lựa chọn dịch vụ thành công
Basic flow 1 Người dùng chọn vào tab “Dịch vụ”.
2 Người dùng lựa chọn dịch vụ theo nhu cầu.
3 Hệ thống chuyển người dùng đến Use-case UC011.
Bảng 4.11: Đặc tả Use-case chọn dịch vụ
Use Case Name Make reservation
Description Use Case cho phép người dùng đặt trước chuyến xe
Trigger Khi sinh viên có nhu cầu di chuyển cần đặt trước chuyến xe
Khi tài xế muốn đặt lịch di chuyển trước Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống Post-conditions Người dùng đặt trước chuyến xe thành công
Basic flow 1 Người dùng chọn vào button “Đặt chuyến”.
2 Người dùng nhập thông tin theo yêu cầu
3 Hệ thống tiến hành lưu thông tin chuyến xe vào cơ sở dữ liệu và tiến hành ghép xe cho người dùng.
Exception flow 4a Hệ thống ghép xe không thành công và thông báo đến người dùng.
Use Case dừng lại Non-Functional
Bảng 4.12: Đặc tả Use-case đặt xe
4.1.4.11 Xem danh sách người dùng:
Use Case Name View user list
Description Use Case cho phép người dùng quản trị xem và quản lí danh sách người dùng của ứng dụng
Trigger Khi người dùng quản trị có nhu cầu xem và quản lí danh sách người dùng của ứng dụng Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống bằng tài khoản quản trị viên
Post-conditions Hệ thống hiển thị danh sách người dùng của ứng dụng
Basic flow 1 Người dùng chọn vào tab “Danh sách sinh viên”.
2 Hệ thống hiển thị danh sách người dùng của ứng dụng.
Bảng 4.13: Đặc tả Use-case xem danh sách người dùng
Use Case Name Suspend account
Description Use Case cho phép người dùng quản trị khoá tài khoản của người dùng có hành vi tiêu cực
Trigger Khi người dùng quản trị phát hiện người dùng có hành vi tiêu cực trong quá trình hoạt động Pre-conditions Người dùng phải có kết nối internet
Người dùng đã đăng nhập vào hệ thống bằng tài khoản quản trị viên
Post-conditions Hệ thống khoá quyền truy cập của tài khoản được chọn
Basic flow 1 Người dùng chọn vào tab “Danh sách sinh viên”.
2 Hệ thống hiển thị danh sách người dùng của ứng dụng.
3 Người dùng chọn người dùng xem xét.
4 Người dùng chọn button “Khoá tài khoản”
5 Hệ thống khoá quyền truy cập của tài khoản vào hệ thống
Sequence Diagram
4.2.1 Sơ đồ tuần tự đăng nhập:
Hình 4.2: Sơ đồ tuần tự đăng nhập 4.2.2 Sơ đồ tuần tự đăng kí:
Hình 4.3: Sơ đồ tuần tự đăng kí4.2.3 Sơ đồ tuần tự lưu địa điểm:
Hình 4.4: Sơ đồ tuần tự lưu địa điểm 4.2.4 Sơ đồ tuần tự chọn dịch vụ:
Hình 4.5: Sơ đồ tuần tự chọn dịch vụ4.2.5 Sơ đồ tuần tự đặt chuyến xe:
Hình 4.6: Sơ đồ tuần tự đặt chuyến xe 4.2.6 Sơ đồ tuần tự xác minh thông tin:
Hình 4.7: Sơ đồ tuần tự xác minh thông tin4.2.7 Sơ đồ tuần tự khoá tài khoản:
Class Diagram
Hình 4.9: Sơ đồ lớp 4.3.2 Danh sách các lớp đối tượng và quan hệ:
STT Tên lớp/quan hệ Loại Ý nghĩa/Ghi chú
1 User Lớp Mô tả thông tin tài khoản người dùng
2 StudentOffice Kế thừa User Mô tả thông tin cán bộ phòng CTSV
3 Rider Kế thừa User Mô tả thông tin lái xe
4 Customer Kế thừa User Mô tả thông tin sinh viên (khách hàng)
5 SavedLocation Lớp Mô tả thông tin địa điểm
6 Trip Lớp Mô tả thông tin chuyến đi
7 Promotion Lớp Mô tả thông tin khuyến mãi
8 Payment Lớp Mô tả thông tin thanh toán
9 Rating Lớp Mô tả thông tin đánh giá
10 RatingOption Lớp Mô tả thông tin loại đánh giá
11 Reject Lớp Mô tả thông tin từ chối đăng kí tài khoản Bảng 4.15: Danh sách các lớp đối tượng và quan hệ 4.3.3 Mô tả chi tiết từng lớp đối tượng:
Loại Ràng buộc Ý nghĩa/ghi chú
1 phoneNumbe r string NOT NULL Số điện thoại
2 name string NOT NULL Họ và tên
3 school string NOT NULL Trường
4 email string NOT NULL Email
5 birthday string NOT NULL Ngày sinh
Bảng 4.16: Mô tả chi tiết lớp User
Loại Ràng buộc Ý nghĩa/ghi chú
1 cardFront string NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
2 cardBack string NOT NULL Đường dẫn ảnh mặt sau thẻ sinh viên
3 student_id string NOT NULL Mã số sinh viên
4 bad int NOT NULL Số lần được đánh giá tiêu cực
5 cancel int NOT NULL Số lần huỷ chuyến
6 good int NOT NULL Số lần được đánh giá tích cực
7 normal int NOT NULL Số lần được đánh giá trung bình
8 status string NOT NULL Trạng thái tài khoản
NOT NULL Trạng thái sẵn sàng nhận chuyến
10 licensePlate string NOT NULL Biển số xe
11 portrait string NOT NULL Đường dẫn hình ảnh chân dung người dùng
12 transportType string NOT NULL Loại xe
Bảng 4.17: Mô tả chi tiết lớp Rider
Loại Ràng buộc Ý nghĩa/ghi chú
NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
2 cardBack strin NOT NULL Đường dẫn ảnh mặt sau g thẻ sinh viên
NOT NULL Mã số sinh viên
4 bad int NOT NULL Số lần được đánh giá tiêu cực
5 cancel int NOT NULL Số lần huỷ chuyến
6 good int NOT NULL Số lần được đánh giá tích cực
7 normal int NOT NULL Số lần được đánh giá trung bình
NOT NULL Trạng thái tài khoản
NOT NULL Đường dẫn hình ảnh chân dung người dùng Bảng 4.18: Mô tả chi tiết lớp Customer
Loại Ràng buộc Ý nghĩa/ghi chú
NOT NULL Đường dẫn ảnh logo trường
NOT NULL Địa chỉ trường
NOT NULL Tên viết tắt
Bảng 4.19: Mô tả chi tiết lớp StudentOffice
Loại Ràng buộc Ý nghĩa/ghi chú
NOT NULL Mã địa điểm
NOT NULL Tên địa điểm
4 longitude float NOT NULL Kinh độ
5 latitude float NOT NULL Vĩ độ
6 user User NOT NULL Thông tin người tạo địa điểm
Bảng 4.20: Mô tả chi tiết lớp SavedLocation
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 idTrip string NOT NULL Mã chuyến xe
2 rider Rider NOT NULL Thông tin tài xế
3 customer Customer NOT NULL Thông tin khách hàng
4 date date NOT NULL Ngày đặt chuyến xe
5 datePickup date NOT NULL Ngày đón
6 desAddress string NOT NULL Địa chỉ đích đến
7 desLong float NOT NULL Kinh độ điểm đến
8 desLat float NOT NULL Vĩ độ điểm đến
9 distance string NOT NULL Quãng đường di chuyển
10 est float NOT NULL Thời gian di chuyển ước tính
11 time string NOT NULL Thời gian đặt chuyến xe
12 timePickup string NOT NULL Thời gian đón khách
13 riderCancel Rider NOT NULL Thông tin tài xế huỷ chuyến
14 isScheduled boolean NOT NULL Thông tin chuyến xe được đặt trước
15 pickUpAddress string NOT NULL Địa chỉ đón khách
16 pickUpLong string NOT NULL Kinh độ điểm đón khách
17 pickUpLat string NOT NULL Vĩ độ điểm đón khách
18 status string NOT NULL Trạng thái chuyến xe
19 totalPrice long NOT NULL Tổng tiền chuyến xe
NOT NULL Phương thức thanh toán
21 promotion Promotion NOT NULL Thông tin khuyến mãi được áp dụng Bảng 4.21: Mô tả chi tiết lớp Trip
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string NOT NULL Mã khuyến mãi
2 name string NOT NULL Tên khuyến mãi
3 value int NOT NULL Giá trị khuyến mãi
4 expiryDate date NOT NULL Ngày hết hạn
5 description string NOT NULL Mô tả khuyến mãi
Bảng 4.22: Mô tả chi tiết lớp Promotion
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 paymentMetho d string NOT NULL Tên phương thức thanh toán
2 icon string NOT NULL Đường dẫn liên kết hình ảnh icon phương thức Bảng 4.23: Mô tả chi tiết lớp PaymentMethod
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string NOT NULL Mã đánh giá
2 rider Rider NOT NULL Thông tin tài xế được đánh giá
3 ratingOption RatingOption NOT NULL Loại đánh giá
4 comment string NOT NULL Lời đánh giá
Bảng 4.24: Mô tả chi tiết lớp Rating
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 ratingType string NOT NULL Tên loại đánh giá
Bảng 4.25: Mô tả chi tiết lớp RatingOption
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 id string NOT NULL Mã từ chối
2 name boolean NOT NULL Tên địa điểm
3 address boolean NOT NULL Địa chỉ
4 phoneNumber boolean NOT NULL Số điện thoại
5 cardFront boolean NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
6 cardBack boolean NOT NULL Đường dẫn ảnh mặt sau thẻ sinh viênBảng 4.26: Mô tả chi tiết lớp Reject
Thiết kế cơ sở dữ liệu
Loại Ràng buộc Ý nghĩa/ghi chú
1 phoneNumbe string PRIMARY KEY Số điện thoại r
2 cardFront string NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
3 cardBack string NOT NULL Đường dẫn ảnh mặt sau thẻ sinh viên
4 student_id string NOT NULL Mã số sinh viên
NOT NULL Số lần được đánh giá tiêu cực
NOT NULL Số lần huỷ chuyến
NOT NULL Số lần được đánh giá tích cực
NOT NULL Số lần được đánh giá trung bình
9 status string NOT NULL Trạng thái tài khoản
10 open string NOT NULL Trạng thái sẵn sàng nhận chuyến
11 licensePlate string NOT NULL Biển số xe
12 portrait string NOT NULL Đường dẫn hình ảnh chân dung người dùng
13 transportType string NOT NULL Loại xe
14 displayName string NOT NULL Tên hiển thị
Bảng 4.27: Mô tả chi tiết bảng Rider
Loại Ràng buộc Ý nghĩa/ghi chú
1 phoneNumbe r string PRIMARY KEY Số điện thoại
2 cardFront string NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
3 cardBack string NOT NULL Đường dẫn ảnh mặt sau thẻ sinh viên
4 student_id string NOT NULL Mã số sinh viên
NOT NULL Số lần được đánh giá tiêu cực
NOT NULL Số lần huỷ chuyến
NOT NULL Số lần được đánh giá tích cực
NOT NULL Số lần được đánh giá trung bình
9 status string NOT NULL Trạng thái tài khoản
10 portrait string NOT NULL Đường dẫn hình ảnh chân dung người dùng
11 displayName string NOT NULL Tên hiển thị
Bảng 4.28: Mô tả chi tiết bảng Customer
STT Tên thuộc Loại Ràng buộc Ý nghĩa/ghi chú tính
1 phoneNumbe r string PRIMARY KEY Số điện thoại
2 acronym string NOT NULL Tên viết tắt
3 address string NOT NULL Địa chỉ
4 logo string NOT NULL Đường dẫn hình ảnh logo trường
Bảng 4.29: Mô tả chi tiết bảng StudentOffice
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string PRIMARY KEY Mã địa điểm
2 name string NOT NULL Tên địa điểm
3 address string NOT NULL Địa chỉ
6 phoneNumbe r string FOREIGN KEY Thông tin người tạo địa điểm Bảng 4.30: Mô tả chi tiết bảng SavedLoction
STT Tên thuộc tính Loại Ràng buộc Ý nghĩa/ghi chú
1 idTrip string PRIMARY KEY Mã chuyến xe
2 idRider string FOREIGN KEY Thông tin tài xế
3 idCustomer string FOREIGN KEY Thông tin khách hàng
4 date string NOT NULL Ngày đặt chuyến xe
5 datePickup string NOT NULL Ngày đón
6 desAddress string NOT NULL Địa chỉ đích đến
7 desLong number NOT NULL Kinh độ điểm đến
8 desLat number NOT NULL Vĩ độ điểm đến
9 distance string NOT NULL Quãng đường di chuyển
10 est number NOT NULL Thời gian di chuyển ước tính
11 time string NOT NULL Thời gian đặt chuyến xe
12 timePickup string NOT NULL Thời gian đón khách
13 idRiderCancel string FOREIGN KEY Thông tin tài xế huỷ chuyến
14 isScheduled string NOT NULL Thông tin chuyến xe được đặt trước
15 pickUpAddress string NOT NULL Địa chỉ đón khách
16 pickUpLong string NOT NULL Kinh độ điểm đón khách
17 pickUpLat string NOT NULL Vĩ độ điểm đón khách
18 status string NOT NULL Trạng thái chuyến xe
19 totalPrice number NOT NULL Tổng tiền chuyến xe
20 discount number NOT NULL Giảm giá
Bảng 4.31: Mô tả chi tiết bảng Trip
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string NOT NULL Mã khuyến mãi
2 name string NOT NULL Tên khuyến mãi
3 value number NOT NULL Giá trị khuyến mãi
4 expiryDate string NOT NULL Ngày hết hạn
5 description string NOT NULL Mô tả khuyến mãi
Bảng 4.32: Mô tả chi tiết bảng Promotion
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string PRIMARY KEY Mã đánh giá
2 idRider string FOREIGN KEY Thông tin tài xế được đánh giá
3 ratingType string NOT NULL Loại đánh giá
4 comment string NOT NULL Lời đánh giá
Bảng 4.33: Mô tả chi tiết bảng RatingList
Loại Ràng buộc Ý nghĩa/ghi chú
1 id string PRIMARY KEY Mã đánh giá
2 phoneNumbe r string NOT NULL Thông tin số điện thoại bị từ chối đăng kí
3 cardFront string NOT NULL Đường dẫn ảnh mặt trước thẻ sinh viên
4 cardBack string NOT NULL Đường dẫn ảnh mặt sau thẻ sinh viên
5 name string NOT NULL Tên đăng kí
6 portrait string NOT NULL Đường dẫn chân dung đăng kí
7 studentID string NOT NULL Mã số sinh viên đăng kí
8 role string NOT NULL Vai trò đăng kí
9 phoneNumbe r string NOT NULL Số điện thoại đăng kí
10 moreInfo string NOT NULL Thông tin thêm
Bảng 4.34: Mô tả chi tiết bảng Reject
THIẾT KẾ GIAO DIỆN 56 5.1 Danh sách các màn hình
Sơ đồ liên kết các màn hình
Hình 5.1: Sơ đồ liên kết các màn hình
Mô tả chi tiết các màn hình
Hình 5.2: Giao diện màn hình OnBoarding
STT Kiểu Ràng buộc Ý nghĩa
Bảng 5.2: Danh sách các thành phần của giao diện màn hình OnBoarding
STT Biến cố Xử lí
1 Nhấp vào button Register Hiển thị màn hình đăng kí
2 Nhấp vào button Sign in Hiển thị màn hình đăng nhập
Bảng 5.3: Danh sách các biến cố màn hình OnBoarding
Hình 5.3: Giao diện màn hình Login
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn vai trò khách hàng
2 Button Nút chọn vai trò lái xe
3 Button Nút chọn vai trò phòng Công tác
4 TextInput not null Ô nhập số điện thoại đăng nhập
5 Text Đường dẫn hiển thị màn hình đăng kí
6 Button Nút chọn tiếp tục
Bảng 5.4: Danh sách các thành phần của màn hình Login
STT Biến cố Xử lí
1 Nhấp vào button Passenger Thiết lập trạng thái đăng nhập cho khách hàng
2 Nhấp vào button Rider Thiết lập trạng thái đăng nhập cho tài xế
3 Nhấp vào button Office of
Thiết lập trạng thái đăng nhập cho cán bộ phòng Công tác sinh viên
4 Nhấp vào Register Hiển thị màn hình đăng kí
5 Nhấp vào button Continue Hiển thị màn hình nhập OTP xác nhận
Bảng 5.5: Danh sách các biến cố màn hình Login
Hình 5.4: Giao diện màn hình Sign up 1
Hình 5.5: Giao diện màn hình Sign up 2
STT Kiểu Ràng buộc Ý nghĩa
1 Dropdown not null Hiển thị vai trò đang chọn
2 TextInput not null Ô nhập họ và tên người dùng
3 DateTimePicker not null Ô nhập ngày sinh
4 TextInput not null Ô nhập mã số sinh viên
5 Dropdown not null Hiển thị trường đang chọn
6 TextInput not null Ô nhập số điện thoại người dùng
7 TextInput not null Ô nhập địa chỉ email
8 Text not null Đường dẫn màn hình đăng nhập
9 Button Nút chọn tiếp tục
Bảng 5.6: Danh sách các thành phần màn hình Sign up
STT Biến cố Xử lí
“Choose role” Hiển thị danh mục vai trò
2 Nhấp vào DateTimePicker Hiển thị lịch
“Choose school” Hiển thị danh mục trường
4 Nhấp vào Sign in Hiển thị màn hình đăng nhập
5 Nhấp vào button Continue Hiển thị màn hình nhập tải ảnh thẻ sinh viên Bảng 5.7: Danh sách các biến cố màn hình Sign up
Hình 5.6: Giao diện màn hình Pending
STT Kiểu Ràng buộc Ý nghĩa
Bảng 5.8: Danh sách các thành phần màn hình Pending
STT Biến cố Xử lí
1 Nhấp vào button “Go back” Quay lại màn hình trước đó
Bảng 5.9: Danh sách các biến cố màn hình Pending
Hình 5.7: Giao diện màn hình Verify
STT Kiểu Ràng buộc Ý nghĩa
1 Input not null Ô nhập mã OTP
2 Button Nút gửi lại mã OTP
Bảng 5.10: Danh sách các thành phần màn hình Verify
STT Biến cố Xử lí
1 Nhấp vào button “Request again”
Hệ thống gửi lại mã OTP đến số điện thoại đã nhập Bảng 5.11: Danh sách các biến cố màn hình Verify
Hình 5.8: Giao diện màn hình Passenger
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn mở menu
3 Button Nút chọn đặt xe
4 Card Card hiển thị lịch sử chuyến xe
5 Button Nút chọn đặt lại với địa điểm tương tự
7 Menu Lịch sử hoạt động
8 Menu Danh sách khuyến mãi
9 Menu Thông tin tài khoản
Bảng 5.12: Danh sách các thành phần màn hình Passenger
STT Biến cố Xử lí
1 Nhấp vào Button Menu Hiển thị màn hình menu ứng dụng
2 Nhấp vào Button đặt xe Hiển thị màn hình đặt xe
3 Nhấp vào Button giao hàng Đang phát triển
Hiển thị màn hình đặt xe với địa điểm tương tự
5 Nhấp vào Menu “Home” Hiển thị màn hình chính
6 Nhấp vào Menu “Activity” Hiển thị màn hình lịch sử hoạt động
Hiển thị màn hình danh sách khuyến mãi
8 Nhấp vào Menu “Profile” Hiển thị màn hình thông tin tài khoản
Bảng 5.13: Danh sách các biến cố màn hình Passenger
Hình 5.9: Giao diện màn hình Rider
STT Kiểu Ràng buộc Ý nghĩa
1 Switch Nút bật/tắt chế độ tìm chuyến xe
2 Button Nút chọn quét mã QR
3 TabBar Nút chọn Tab cần xem
4 Card Hiển thị lịch sử chuyến xe
Bảng 5.14: Danh sách các thành phần màn hình Rider
STT Biến cố Xử lí
1 Nhấp vào switch Bật/tắt chế độ sẵn sàng nhận chuyến xe
2 Nhấp vào button quét mã
QR Hiển thị màn hình quét mã QR
3 Nhấp vào tabbar Hiển thị thông tin theo tab được chọn
4 Nhấp vào card Hiển thị thông tin chi tiết lịch sử chuyến xe Bảng 5.15: Danh sách các biến cố màn hình Rider
Hình 5.10: Giao diện màn hình StudentOffice
STT Kiểu Ràng buộc Ý nghĩa
1 Input Ô nhập thông tin tìm kiếm
2 Card Hiển thị thông tin sinh viên cần xét duyệt Bảng 5.16: Danh sách các thành phần màn hình StudentOffice
STT Biến cố Xử lí
1 Nhấp vào Card Hiển thị thông tin chi tiết của sinh viên cần được xét duyệt đã chọn Bảng 5.17: Danh sách các biến cố màn hình StudentOffice
Hình 5.11: Giao diện màn hình Profile 1
Hình 5.12: Giao diện màn hình Profile 2
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn thay đổi ảnh đại diện
2 Button Nút chọn đăng xuất tài khoản
Bảng 5.18: Danh sách các thành phần màn hình Profile
STT Biến cố Xử lí
1 Nhấp vào button thay đổi ảnh đại diện
Hiển thị màn hình chọn ảnh đại diện mới
2 Nhấp vào button đăng xuất Đăng xuất khỏi tài khoản hiện tại, quay lại màn hình OnBoarding Bảng 5.19: Danh sách các biến cố màn hình Profile
Hình 5.13: Giao diện màn hình Promotion
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn xem chi tiết khuyến mãi
Bảng 5.20: Danh sách các thành phần màn hình Promotion
STT Biến cố Xử lí
1 Nhấp vào button chi tiết Hiển thị màn hình chi tiết khuyến mãi
Bảng 5.21: Danh sách các biến cố màn hình Promotion
Hình 5.14: Giao diện màn hình PromotionDetail
Hình 5.15: Giao diện màn hình Activity
STT Kiểu Ràng buộc Ý nghĩa
1 TabBar Danh sách hoạt động theo trạng thái
2 Card Hiển thị tóm tắt thông tin hoạt động
Bảng 5.22: Danh sách các thành phần màn hình Activity
STT Biến cố Xử lí
1 Nhấp vào TabBar Hiển thị danh sách hoạt động theo trạng thái đã chọn
2 Nhấp vào Card Hiển thị màn hình thông tin chi tiết hoạt động đã chọn Bảng 5.23: Danh sách các biến cố màn hình Activity
STT Kiểu Ràng buộc Ý nghĩa
1 Map Hiển thị địa điểm của chuyến đi
2 Button Nút chọn đặt lại chuyến xe với địa điểm tương tự Bảng 5.24: Danh sách các thành phần màn hình ActivityDetail
STT Biến cố Xử lí
1 Nhấp vào Map Hiển thị màn hình bản đồ quãng đường chuyến đi
2 Nhấp vào Button Hiển thị màn hình đặt chuyến xe với địa điểm tương tự Bảng 5.25: Danh sách các biến cố màn hình ActivityDetail
STT Kiểu Ràng buộc Ý nghĩa
1 Input Ô nhập địa chỉ điểm đi và đến
2 Button Nút chọn nhập địa chỉ đã lưu
3 Button Nút mở bản đồ và chọn địa điểm
4 Button Nút xác nhận vị trí đã chọn
5 Button Nút quay lại bước trước đó
6 Button Nút xác nhận đến bước tiếp theo
7 Button Nút chọn phương thức thanh toán
8 Button Nút chọn mã giảm giá
9 Button Nút chọn nhập thời gian hẹn trước
10 Button Nút chọn huỷ chuyến xe
Bảng 5.26: Danh sách các thành phần màn hình Booking
STT Biến cố Xử lí
1 Nhập địa chỉ vào Input Tìm kiếm và gợi ý địa điểm dựa theo địa chỉ đã nhập
2 Nhấp vào Button địa chỉ đã lưu Tự động điền địa chỉ vào điểm đến
3 Nhấp vào Button chọn địa điểm trên bản đồ
Hiển thị màn hình bản đồ chọn địa điểm
4 Nhấp vào Button xác nhận địa chỉ
Xác nhận địa chỉ đã chọn và điền vào
5 Nhấp vào Button quay lại Quay trở lại bước trước đó
6 Nhấp vào Button tiếp tục Chuyển đến bước kế tiếp
7 Nhấp vào Button chọn phương thúc thanh toán Chuyển phương thức thanh toán
8 Nhấp vào Button nhập mã giảm giá Hiển thị mục chọn mã giảm giá
9 Nhấp vào Button hẹn giờ Hiển thị DatePicker chọn giờ hẹn
10 Nhấp vào Button huỷ Huỷ hoạt động tìm tài xế của chuyến xe hiện tại Bảng 5.27: Danh sách các biến cố màn hình Booking
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút xoá địa chỉ đã lưu
2 Button Nút thêm địa chỉ mới
Bảng 5.28: Danh sách các thành phần màn hình Address
STT Biến cố Xử lí
1 Nhấp vào Button xoá Xoá địa chỉ đã lưu khỏi danh sách
2 Nhấp vào Button thêm mới Hiển thị màn hình thêm địa chỉ mới
Bảng 5.29: Danh sách các biến cố màn hình Address
Hình 5.24: Giao diện màn hình AddLocation
STT Kiểu Ràng buộc Ý nghĩa
1 Input not null Ô nhập địa chỉ muốn thêm
2 Button Nút xác nhận thêm địa chỉ mới
Bảng 5.30: Danh sách các thành phần màn hình AddLocation
STT Biến cố Xử lí
1 Nhập địa chỉ vào Input Hiển thị gợi ý địa điểm theo địa chỉ đã nhập
2 Nhấp vào Button xác nhận Chuyển đến bước tiếp theo
Bảng 5.31: Danh sách các biến cố màn hình AddLocation
Hình 5.25: Giao diện màn hình ConfirmLocation
STT Kiểu Ràng buộc Ý nghĩa
1 Input not null Ô nhập tên gợi nhớ cho địa chỉ
2 Button Nút chọn xác nhận lưu địa chỉ
Bảng 5.32: Danh sách các thành phần màn hình ConfirmLocation
STT Biến cố Xử lí
1 Nhấp vào Button Lưu địa điểm vào CSDL
Bảng 5.33: Danh sách các biến cố màn hình ConfirmLocation
Hình 5.26: Giao diện màn hình Scheduled
STT Kiểu Ràng buộc Ý nghĩa
1 Card Hiển thị thông tin tóm tắt chuyến xe
2 Button Nút chọn chấp nhận chuyến xe Bảng 5.34: Danh sách các thành phần màn hình Scheduled
STT Biến cố Xử lí
1 Nhấp vào Card Hiển thị thông tin chi tiết chuyến xe
2 Nhấp vào Button Xác nhận nhận chuyến xe
Bảng 5.35: Danh sách các biến cố màn hình Scheduled
Hình 5.27: Giao diện màn hình Income
STT Kiểu Ràng buộc Ý nghĩa
1 Menu Menu chọn hiển thị thông tin theo ngày, tháng, năm
2 DatePicker Chọn thời điểm hiển thị thông tin Bảng 5.36: Danh sách các thành phần màn hình Income
STT Biến cố Xử lí
1 Nhấp vào Menu Hiển thị thông tin theo trạng thái đã chọn
2 Nhấp vào DatePicker Hiển thị lịch chọn thời điểm xem thông tin Bảng 5.37: Danh sách các biến cố màn hình Income
Hình 5.28: Giao diện màn hình TripDetail 1
Hình 5.29: Giao diện màn hình TripDetail 2
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn đặt lại chuyến xe với địa điểm tương tự Bảng 5.38: Danh sách các thành phần màn hình TripDetail
STT Biến cố Xử lí
1 Nhấp vào Button Hiển thị màn hình đặt xe với địa điểm tương tự Bảng 5.39: Danh sách các biến cố màn hình TripDetail
Hình 5.30: Giao diện màn hình Restriction
STT Kiểu Ràng buộc Ý nghĩa
1 Menu Menu chọn trạng thái
2 Card Hiển thị thông tin tóm tắt tài khoản Bảng 5.40: Danh sách các thành phần màn hình Restriction
STT Biến cố Xử lí
1 Nhấp vào Menu Hiển thị danh sách theo trạng thái đã chọn
2 Nhấp vào Card Hiển thị thông tin chi tiết tài khoản
Bảng 5.41: Danh sách các biến cố màn hình Restriction
Hình 5.31: Giao diện màn hình Students
Hình 5.32: Giao diện màn hình StudentDetail 1
Hình 5.33: Giao diện màn hình StudentDetail 2
Hình 5.34: Giao diện màn hình StudentDetail 3
STT Kiểu Ràng buộc Ý nghĩa
1 Button Nút chọn khoá tài khoản
Bảng 5.42: Danh sách các thành phần màn hình StudentDetail
STT Biến cố Xử lí
1 Nhấp vào Button Khoá quyền truy cập ứng dụng của tài khoản Bảng 5.43: Danh sách các biến cố màn hình StudentDetail