Tổng quan
Khảo sát ứng dụng liên quan
2.1.1 Ứng dụng iThong: Ứng dụng iThong là ứng dụng liên quan đến tra cứu xử phạt giao thông đường bộ và biển báo giao thông, cho phép người dùng tra cứu bằng từ khóa các lỗi vi phạm
Ứng dụng iThong mang đến nhiều ưu điểm nổi bật, bao gồm khả năng tra cứu theo từ khóa thông dụng, phân loại lỗi vi phạm và phương tiện, tính năng tính nồng độ cồn và mức phạt, cùng với việc thể hiện căn cứ pháp lý rõ ràng Đặc biệt, ứng dụng còn hỗ trợ tìm kiếm bằng giọng nói, giúp người dùng dễ dàng truy cập thông tin cần thiết.
Nhược điểm của hệ thống hiện tại là người dùng chỉ có thể tìm kiếm biển báo giao thông theo tên biển báo, thiếu các khái niệm và quy tắc giao thông cần thiết cho người mới học luật Ngoài ra, dữ liệu còn tồn tại sự trùng lặp và một số lỗi sai, gây khó khăn trong việc tra cứu thông tin chính xác.
Trang web hỗ trợ tìm kiếm tư liệu pháp luật Việt Nam, cho phép người dùng tìm kiếm theo từ khóa và tổng hợp các văn bản pháp luật dưới dạng hoàn chỉnh Ngoài ra, trang còn cung cấp tin tức cập nhật thường xuyên về các vấn đề pháp luật.
Website Thuvienphapluat.vn nổi bật với số lượng lớn văn bản pháp luật, bao quát nhiều lĩnh vực pháp lý khác nhau Đặc biệt, kết quả tìm kiếm theo từ khóa liên quan đến pháp luật rất chính xác, giúp người dùng dễ dàng tìm thấy thông tin cần thiết.
Nhược điểm của dịch vụ này là chỉ cho phép xem chi tiết văn bản hoàn chỉnh, một số điều luật sửa đổi bổ sung yêu cầu phí, và không hỗ trợ tra cứu theo từ khóa thông dụng.
7 đời sống; chỉ có thể tìm kiếm theo các điều luật trong văn bản pháp luật, không thể tìm kiếm chi tiết theo hình thức lỗi vi phạm.
Bài toán và giải pháp
Đối với vấn đề tra cứu luật giao thông đường bộ có các vấn đề sau cần giải quyết:
Trong nghiên cứu về Luật giao thông đường bộ hiện hành, cần tập trung vào các văn bản pháp luật quan trọng như Luật giao thông đường bộ và Nghị định 100 Việc chọn lọc các mục và điều luật liên quan đến người tham gia giao thông, các lỗi vi phạm và mức xử phạt là rất cần thiết để đảm bảo tính chính xác và hiệu quả trong việc áp dụng pháp luật.
Để hiểu rõ về luật giao thông đường bộ, cần đọc và nắm vững nội dung các văn bản pháp lý liên quan, từ đó trích lọc và thu thập kiến thức cần thiết Một ví dụ điển hình là Nghị định 100/2019/NĐ-CP, nội dung của nghị định này cung cấp những quy định quan trọng về an toàn giao thông và xử lý vi phạm.
Chương I Những quy định chung: Chương này gồm các Điều về Phạm vi, đối tượng áp dụng, giải thích các từ ngữ khái niệm và các biện pháp khắc phục hậu quả Ở chương này chọn lọc ra Điều 3 về giải thích các từ ngữ khái niệm liên quan đến giao thông đường bộ (Khoản 1 Điều 3) Điều 4 về các biện pháp khắc phục hậu quả dù có liên quan nhưng không cần trích ra vì các biện pháp khác phục được nêu rõ hơn trong Chương II đối với từng hành vi vi phạm
Chương II Hành vi vi phạm, hình thức, mức xử phạt và biện pháp khắc phục hậu quả vi phạm hành chính trong lĩnh vực giao thông đường bộ: Đây là chương quy định về các hành vi vi phạm và mức xử phạt trong lĩnh vực giao thông đường bộ Ở chương này chọn lọc ra các Mục 1, Mục 3, Mục 4, Mục 5, Mục 6 liên quan đến đối tượng sử dụng hệ thống tra cứu Mục 2 liên quan đến đối tượng quản lý, khai thác, thi công và bảo trì kết cấu hạ tầng giao thông đường bộ nên sẽ không được đề cập đến trong hệ thống
Chương III về lĩnh vực Giao thông đường sắt: chỉ có Điều 47 về hành vi vi phạm ở nơi giao nhau giữa đường sắt và đường bộ (đường ngang, cầu chung) được chọn lọc
Các chương còn lại của bài viết tập trung vào thủ tục xử phạt, thẩm quyền thực hiện, và các điều khoản thi hành không liên quan đến người tham gia giao thông đường bộ Bên cạnh đó, nội dung cũng đề cập đến các lỗi vi phạm và mức xử phạt tương ứng.
Tiếp theo, tiến hành áp dụng quy trình tương tự cho hai văn bản liên quan khác, bao gồm Luật Giao thông Đường bộ (Luật số 23/2008/QH12) và Quy chuẩn Kỹ thuật Quốc gia về Báo hiệu Đường bộ (QCVN 41:2019/BGTVT).
Chương II Nghị định 100 quy định rõ các hành vi vi phạm hành chính, mức xử phạt và biện pháp khắc phục hậu quả Các hành vi vi phạm được tổ chức theo căn cứ pháp lý cụ thể: Điều, Khoản, Điểm Tuy nhiên, để người dùng hệ thống tra cứu dễ dàng hơn, cần thiết phải tổ chức tri thức về luật theo nội dung vi phạm hành chính thay vì chỉ dựa vào căn cứ pháp lý Chẳng hạn, trong Điều 8, Khoản 1, Điểm b, có những quy định cụ thể mà người sử dụng cần nắm rõ để thực hiện đúng.
Hình 2.3: Ví dụ căn cứ pháp lý (1)
Chủ thể của các hành vi vi phạm trong Điều 8 là “Người điều khiển xe đạp, xe đạp máy
Các phương tiện giao thông như xe đạp, xe đạp điện, và các loại xe thô sơ khác sẽ được phân loại vào nhóm phương tiện Khác trong hệ thống phân loại giao thông Hai nhóm còn lại bao gồm xe máy và ô tô Mức xử phạt cho các vi phạm liên quan đến các phương tiện này đã được quy định rõ ràng.
Khoản 1 là “Phạt tiền từ 80.000đ đến 100.000đ” Nội dung hành vi vi phạm được ghi trong Điểm b Trong Điểm b này có hai hành vi vi phạm được đề cập là “Dừng xe đột ngột” và “Chuyển hướng không báo hiệu trước” Đây là nội dung được tra cứu nếu người sử dụng thực hiện tra cứu Ngoài ra một số hành vi vi phạm còn có Mức phạt bổ sung được quy định ở Khoản khác trong cùng Điều luật Trong ví dụ sau các hành vi vi phạm ở các Điểm a, Điểm b của Khoản 3 Điều 8 ngoài bị xử phạt tiền còn bị tịch thu phương tiện theo Khoản 5 Điều 8 Như vậy trong mức xử phạt bổ sung còn có căn cứ pháp lý và nội dung xử phạt Tương tự mức phạt bổ sung một số hành vi vi phạm có biện pháp khắc phục hậu quả
Hình 2.4: Ví dụ căn cứ pháp lý (2)
Giải pháp: Như vậy, để tổ chức cơ sở tri thức về luật giao thông đường bộ theo
NĐ100 cần có các thuộc tính sau:
Chủ thể (cá nhân, tổ chức thực hiện hành vi vi phạm)
Nội dung hành vi vi phạm
Mức xử phạt hành chính (xử phạt bằng tiền từ “… đồng” đến “… đồng” hoặc phạt cảnh cáo) cùng với căn cứ pháp lý (Điều, Khoản, Điểm)
Mức xử phạt bổ sung và biện pháp khắc phục, nếu có, cần được nêu rõ cùng với căn cứ pháp lý cụ thể (Điều, Khoản, Điểm) Trong đó, Điều và Khoản là những yếu tố bắt buộc, trong khi Điểm có thể có hoặc không tùy thuộc vào hành vi vi phạm Nếu có các mức xử phạt bổ sung hoặc biện pháp khắc phục, có thể chỉ định tối đa hai Điểm liên quan Do đó, việc tổ chức căn cứ pháp lý cần được thực hiện một cách rõ ràng và hợp lý.
+ Điểm (Điểm 1, Điểm 2) (nếu có)
Khi người sử dụng tra cứu thông tin pháp luật, họ thường dùng từ ngữ thông dụng, dẫn đến việc không tìm thấy kết quả chính xác Ví dụ, khi tìm kiếm về hành vi "vượt đèn đỏ", người dùng sẽ không nhận được kết quả phù hợp từ Nghị định 100, vì thuật ngữ pháp lý đúng là "Không chấp hành hiệu lệnh của đèn tín hiệu giao thông" Điều này cho thấy sự cần thiết phải sử dụng đúng ngôn ngữ pháp luật khi tra cứu thông tin để có được kết quả chính xác.
Để tối ưu hóa kết quả tra cứu, cần thu thập các nhóm từ khóa liên quan và thông dụng trong đời sống Ví dụ, hành vi "Điều khiển xe đi không đúng phần đường, làn đường quy định" có thể được liên kết với các từ khóa như "lấn làn", "sai làn".
Khi người dùng tra cứu các biển báo hiệu, họ dựa vào những đặc điểm bên ngoài như hình dạng, màu viền, nội dung chữ/số và màu nền của biển báo Những đặc điểm này được quy định trong Quy chuẩn kỹ thuật quốc gia về báo hiệu đường bộ QCVN 41:2019/BGTVT Do đó, việc có khả năng tra cứu theo các đặc điểm chi tiết là cần thiết để đạt được kết quả tối ưu nhất trong việc nhận diện biển báo hiệu.
Giải pháp hiệu quả là phát triển khả năng tìm kiếm chi tiết dựa trên các đặc điểm nhận dạng của biển báo, bên cạnh việc tìm kiếm thông thường theo tên, số và nội dung Ví dụ, biển báo có thể được phân loại dựa trên các đặc điểm nhận diện riêng biệt.
Cơ sở lý thuyết
Cơ sở tri thức – Knowledge Base
3.1.1 Hệ cơ sở tri thức:
Cơ sở tri thức (knowledge base) xuất phát từ Hệ cơ sở tri thức, giúp quản lý tri thức của các miền khác nhau trên máy tính và giải quyết các vấn đề liên quan đến tri thức Hệ thống này có khả năng suy luận, cho phép giải quyết các vấn đề trừu tượng và phức tạp Hai thành phần chính của hệ cơ sở tri thức bao gồm Cơ sở tri thức và Bộ suy diễn.
Bộ suy diễn trong hệ thống tri thức sử dụng cơ sở tri thức để quản lý và lưu trữ các thành phần như khái niệm, thực thể, sự kiện và luật lệ Cơ sở tri thức chứa kiến thức chuyên sâu về miền tri thức, cho phép bộ suy diễn giải quyết các vấn đề hoặc câu hỏi dựa trên tri thức đã lưu trữ.
Hình 3.1: Kiến trúc hệ cơ sở tri thức
Giữa bộ suy diễn và cơ sở tri thức cần duy trì tính độc lập tương đối Sự điều chỉnh một trong hai thành phần này không ảnh hưởng đến hoạt động bình thường của hệ thống.
Việc sử dụng 14 này giúp biểu diễn tri thức một cách trực quan và tự nhiên hơn, đồng thời cho phép cập nhật và bổ sung tri thức trong quá trình phát triển hệ thống.
Ta có thể xây dựng một hệ cơ sở tri thức thông qua các giai đoạn sau [7] :
Giai đoạn đầu tiên trong quá trình thu thập tri thức là xác định miền tri thức cụ thể Điều này bao gồm việc tìm kiếm các nguồn thông tin phù hợp và tiến hành thu thập tri thức, bao gồm các bài toán, vấn đề và câu hỏi liên quan đến miền tri thức đã chọn.
Giai đoạn 2 của quá trình phát triển hệ thống là thiết kế cơ sở tri thức, trong đó sử dụng tri thức đã thu thập để xây dựng một cơ sở tri thức hoàn chỉnh và nhất quán Trong giai đoạn này, cần thực hiện việc xây dựng mô hình hoặc phương pháp biểu diễn tri thức, cũng như tổ chức và biểu diễn tri thức một cách hiệu quả Cơ sở tri thức phải đảm bảo tính đầy đủ và nhất quán để phục vụ cho hệ thống.
Giai đoạn 3 trong quy trình thiết kế bộ suy diễn bao gồm việc sử dụng tri thức đã thu thập và cơ sở tri thức đã xây dựng để phân tích, phân loại và mô hình hóa vấn đề Sau đó, cần lựa chọn phương pháp suy diễn phù hợp để giải quyết vấn đề, bao gồm các loại suy diễn như suy diễn tiến, suy diễn lùi và suy diễn heuristics.
Giai đoạn 4: Thiết kế giao diện Thiết kế giao diện là bước quan trọng nhằm tạo ra sự trực quan cho hệ cơ sở tri thức Giao diện cần phải phù hợp với đối tượng người dùng, đảm bảo rằng cả những người có chuyên môn lẫn những người không có chuyên môn đều có thể dễ dàng hiểu và sử dụng.
Có nhiều loại hệ cơ sở tri thức được ứng dụng trong các lĩnh vực khác nhau, mỗi loại có phương pháp suy diễn và biểu diễn tri thức riêng Một số hệ cơ sở tri thức phổ biến bao gồm hệ chuyên gia, hệ quản lý tài liệu văn bản, hệ trợ giúp quyết định và từ điển kiến thức Để biểu diễn cơ sở tri thức, có thể sử dụng các phương pháp như logic, mạng ngữ nghĩa, hệ luật dẫn và mạng tính toán.
3.1.2 Áp dụng để xây dựng cơ sở tri thức cho đề tài: Đối với đề tài Hệ thống tra cứu luật giao thông, cần xây dựng cơ sở tri thức về luật pháp, cụ thể là Luật giao thông đường bộ Nguồn thu thập tri thức là các văn bản về Luật giao thông đường bộ đã nêu ở phạm vi và đối tượng nghiên cứu Đối tượng người dùng được nhắm tới là người tham gia giao thông, người học luật giao thông Mục đích mà cơ sở tri thức của đề tài này là mang tới kết quả tra cứu về các lỗi vi phạm Luật giao thông đường bộ, biển báo hiệu đường bộ và các khái niệm, quy tắc khi tham gia giao thông đường bộ Ngoài ra còn cần thực hiện thu thập các vấn đề, bài toán, các câu hỏi thường gặp liên quan đến Luật giao thông đường bộ
Sau khi thu thập tri thức, việc phân loại tri thức là cần thiết để tổ chức cơ sở tri thức một cách hiệu quả Tri thức được thu thập từ các nguồn khác nhau có thể ở nhiều dạng như khái niệm, quy tắc, thực thể (biển báo), sự kiện (lỗi vi phạm) và các điều luật (căn cứ pháp lý) Mỗi dạng tri thức này có thể được phân loại thêm dựa trên nội dung, ví dụ như phân loại lỗi vi phạm theo loại phương tiện vi phạm hoặc phân loại biển báo theo loại biển báo.
Tiếp theo, chúng ta cần lựa chọn phương pháp biểu diễn tri thức phù hợp Trong đề tài này, phương pháp được sử dụng là biểu diễn tri thức bằng luật dẫn, một dạng luật phổ biến nhất trong các lĩnh vực tri thức của con người, bao gồm hai phần.
Facts là tập hợp các sự kiện hoặc hành động, trong khi Rules là tập hợp các luật có dạng r: gt(r) => kl(r), trong đó gt(r) là tập giả thiết và kl(r) là tập kết luận Để minh họa rõ hơn, hãy xem xét ví dụ sau đây.
Người điều khiển xe máy không tuân thủ hiệu lệnh của đèn tín hiệu sẽ bị xử phạt như thế nào? Đây là câu hỏi cần được làm rõ để hiểu rõ hơn về các quy định và mức phạt liên quan đến lỗi vi phạm này.
Tập Facts bao gồm các thông tin như phương tiện "xe máy" và hành vi "không chấp hành hiệu lệnh của đèn tín hiệu" Tập Rules là các điều luật trong Nghị định 100 về xử phạt giao thông đường bộ Dựa vào phương tiện "xe máy", ta có thể xác định các Điều luật liên quan và từ đó tìm ra Khoản, Điểm chính xác để đưa ra mức xử phạt theo Điều 6, Khoản 4, Điểm e Đối với việc tra cứu biển báo giao thông, ví dụ như một biển báo hình tam giác, nền vàng với chữ "đi chậm", tập Facts sẽ bao gồm {hình dạng: "tam giác", nền: "vàng", chữ: "đi chậm"}, trong khi tập Rules sẽ là các biển báo giao thông trong cơ sở tri thức.
React Native
3.2.1 Giới thiệu về React Native
React Native là một framework do Meta (trước đây là Facebook) phát triển, ra mắt lần đầu vào năm 2015 Framework này cho phép xây dựng ứng dụng di động cho cả Android và iOS bằng ngôn ngữ lập trình JavaScript Sự ra đời của React Native nhằm cải thiện hiệu suất cho các ứng dụng Hybrid và giảm thiểu việc viết mã riêng cho từng nền tảng di động Châm ngôn của React Native là “Học một lần, viết ở mọi nơi”.
React Native operates through the React Native Bridge, which connects two essential components: the JavaScript virtual machine and Native Code (Native Modules) This Bridge serves as a communication link between JavaScript Components and their corresponding Native UI Components via Objective-C.
C API (iOS) hoặc Java API (Android)
Có rất nhiều ứng dụng nổi bật hiện tại sử dụng React Native: Facebook, Instagram, Skype, Discord, Pinterest…
3.2.2 Ưu điểm và nhược điểm của React Native: Ưu điểm của React Native:
React Native rất thân thiện và dễ sử dụng, đặc biệt là đối với những ai đã quen thuộc với ngôn ngữ JavaScript và HTML Những người đã học JavaScript sẽ nhanh chóng làm quen với cách hoạt động của React Native.
Tiết kiệm nhân lực và thời gian Chỉ cần viết code ứng dụng trên nền ngôn ngữ
JavaScript là có thể sử dụng trên các nền tảng di động Android và iOS
Sử dụng ít mã native hơn là một lợi ích quan trọng, vì ngoài việc phát triển trên nền tảng JavaScript, các lập trình viên vẫn có thể tích hợp mã native, nhưng nhu cầu này sẽ giảm đi đáng kể.
React Native sở hữu một cộng đồng lớn mạnh, giúp người dùng dễ dàng tìm kiếm giải pháp cho các vấn đề phát sinh trong quá trình sử dụng.
Nhược điểm của React Native:
Hiệu năng của ứng dụng Hybrid thường thấp hơn so với ứng dụng Native, và việc kết hợp giữa Hybrid App và Native App sẽ tạo ra hiệu suất trung bình của cả hai nền tảng React Native, mặc dù gần gũi với Hybrid App, vẫn không đạt được hiệu năng tương đương với các ứng dụng được phát triển hoàn toàn trên native code.
Mặc dù React Native hướng đến việc mang lại sự tiện lợi và hiệu quả cho việc phát triển ứng dụng đa nền tảng, nhưng đối với các ứng dụng phức tạp, việc sử dụng native code vẫn là cần thiết Điều này giúp lập trình viên xử lý các module một cách hiệu quả trên từng nền tảng khác nhau.
Quản lý bộ nhớ trong React Native thường gặp phải phàn nàn về việc tiêu tốn tài nguyên Mặc dù đã có các phiên bản cập nhật nhằm khắc phục vấn đề này, nhưng việc sử dụng bộ nhớ vẫn còn là một thách thức đối với nhiều ứng dụng phát triển bằng React Native.
Bảo mật trong React Native là một vấn đề quan trọng, vì nó sử dụng JavaScript, và những rủi ro liên quan đến bảo mật của JavaScript cũng ảnh hưởng đến React Native JavaScript hoạt động ở phía người dùng, do đó, việc đảm bảo an toàn cho mã nguồn và dữ liệu là rất cần thiết.
Khi sử dụng 20 dùng (client side), thông tin mã nguồn được gửi đến phía người dùng, điều này có thể dẫn đến việc bảo mật không được đảm bảo nếu người dùng mở mã của ứng dụng.
Google Firebase
3.3.1 Giới thiệu về Google Firebase:
Firebase là nền tảng dịch vụ đa chức năng giúp phát triển ứng dụng và website, ra đời vào năm 2012 với mục tiêu cung cấp Back-end as a Service Năm 2014, Google mua lại Firebase và mở rộng nó thành một nền tảng toàn diện Firebase được ưa chuộng, đặc biệt trong cộng đồng phát triển ứng dụng di động, nhờ vào khả năng xây dựng hệ thống Client – Server một cách dễ dàng và tiết kiệm chi phí cho phía Server.
Firebase offers several key features, including the Realtime Database, which provides a JSON-based real-time database, and Cloud Firestore, an evolution of the Realtime Database that organizes data in collections and documents Additionally, Firebase includes robust Authentication services for user verification.
Storage (nơi lưu trữ dữ liệu), Cloud Messaging (gửi tin nhắn) Ngoài ra Firebase
21 còn cung cấp các tính năng mở rộng liên quan bên thứ 3 và khả năng phân tích dữ liệu [5]
3.3.2 Ưu điểm và nhược điểm của Firebase:
Firebase có các ưu điểm sau:
Tiết kiệm thời gian và chi phí Thông qua việc sử dụng Firebase, nhà phát triển sẽ tiết kiệm được thời gian và chi phí ở phía Server
Firebase mang đến nhiều chức năng phong phú cho việc phát triển ứng dụng, giúp đơn giản hóa quá trình phát triển Việc sử dụng Firebase trở nên dễ dàng nhờ vào cách gọi các REST API trong front-end Hơn nữa, việc quản lý dữ liệu và lưu trữ trên Firebase cũng rất dễ hiểu và thực hiện.
Firebase đảm bảo an toàn dữ liệu nhờ vào nền tảng đám mây và giao thức bảo mật SSL, giúp tăng cường bảo mật giữa Client và Server Hơn nữa, hệ thống cũng cung cấp Security Rules, cho phép người dùng tùy chỉnh quyền truy cập vào dữ liệu trên server một cách linh hoạt.
Firebase mang đến sự linh hoạt cho các nhà phát triển, cho phép họ tùy chỉnh ứng dụng theo ý muốn Với cơ sở dữ liệu NoSQL, người phát triển có thể tổ chức dữ liệu một cách tự do và sáng tạo.
Các nhược điểm của Firebase:
Firebase chỉ hỗ trợ cơ sở dữ liệu NoSQL, điều này có thể là một hạn chế cho những nhà phát triển chưa quen với NoSQL và đang tìm kiếm một giải pháp cơ sở dữ liệu quan hệ.
Both Realtime Database and Cloud Firestore have limitations in their querying capabilities, lacking the most optimized query APIs Additionally, the performance of queries in these databases is not yet at a high level.
Nhiều người dùng Firebase thường kết hợp với một cơ sở dữ liệu bên thứ ba để thực hiện các truy vấn nâng cao và cải thiện tốc độ xử lý.
Chi phí là một yếu tố quan trọng cần xem xét khi phát triển ứng dụng Đối với các nhà phát triển nhỏ và những ứng dụng đơn giản, vấn đề này có thể không cần quá lo lắng Tuy nhiên, với những ứng dụng phức tạp và có lượng dữ liệu lớn, việc đầu tư vào các chức năng cao cấp là cần thiết để đảm bảo hiệu suất và tính năng tối ưu.
Firebase không hoạt động ở một số quốc gia do thuộc sở hữu của Google, mà Google lại bị chặn ở những nơi như Trung Quốc, dẫn đến việc Firebase không thể sử dụng được tại đây.
Cloud Firestore is a client-server data storage and synchronization service that utilizes a NoSQL database structure, similar to Realtime Database, but organized into collections and documents In this project, data is stored on Cloud Firestore.
Hình 3.4: Ví dụ tổ chức dữ liệu của Realtime Database (trái) và Cloud Firestore (phải)
Cloud Firestore offers enhanced capabilities over Realtime Database by utilizing collections and documents for data hierarchy and querying, making it more suitable for managing complex data structures.
Cloud Firestore sử dụng công nghệ đồng bộ hóa dữ liệu để đảm bảo rằng nội dung được cập nhật trên tất cả các thiết bị Client Khi thiết bị không có kết nối mạng, ứng dụng vẫn có thể truy cập và sử dụng dữ liệu đã lưu trữ.
23 đã được lưu trữ ở local trong thời gian sử dụng online, khi ứng dụng trở lại trạng thái online, các dữ liệu sẽ được cập nhật ngay lập tức
Mặc dù Cloud Firestore và Realtime Database có nhiều ưu điểm, nhưng điểm hạn chế lớn nhất của chúng là khả năng truy vấn chưa hoàn thiện, với các API không đầy đủ và thiếu tính năng tìm kiếm theo từ khóa toàn bộ dữ liệu (full-text search) như MongoDB Để thực hiện tìm kiếm toàn văn, các nhà phát triển cần sử dụng dịch vụ bên thứ ba Firebase khuyến nghị sử dụng các dịch vụ hỗ trợ như Elastic Search, Algolia và Typesense.
Hình 3.5: Documentation của Firebase đề nghị sử dụng bên thứ 3 đối với full-text search
Cloud Storage là giải pháp lưu trữ dữ liệu của Firebase, cho phép người dùng lưu trữ mọi loại tập tin Khác với các dịch vụ như Google Drive hay OneDrive, Cloud Storage được thiết kế đặc biệt để hỗ trợ quá trình xây dựng và phát triển ứng dụng, không chỉ đơn thuần là một không gian lưu trữ.
Algolia
Algolia là dịch vụ đám mây chuyên cung cấp khả năng tìm kiếm toàn văn bản, giúp tối ưu hóa việc tìm kiếm trên các collections và documents của Firestore Với tốc độ xử lý nhanh chóng, Algolia hỗ trợ hiệu quả trong việc truy vấn dữ liệu từ Firestore Người dùng có thể xuất dữ liệu từ Firestore hoặc các cơ sở dữ liệu khác dưới định dạng JSON, CSV hoặc TSV để nạp lên Algolia, hoặc sử dụng API keys của Algolia để quản lý dữ liệu trong môi trường lập trình ứng dụng một cách linh hoạt.
Algolia áp dụng các kỹ thuật tìm kiếm toàn văn như Inverted Index để phân tách nội dung và cung cấp kết quả tương ứng cho từng từ, sau đó tổng hợp lại; Fuzzy Search giúp tìm ra các chuỗi tương tự có nghĩa so với chuỗi truy vấn, từ đó cải thiện chất lượng kết quả; và khoảng cách Levenshtein được sử dụng để tính toán khả năng biến đổi chuỗi thông qua các phép biến đổi như thêm, bớt hoặc thay đổi một ký tự.
Algolia offers optimized full-text search features, including the ability to ignore stop words, evaluate synonyms, tolerate typos, provide suggestions, and rank and sort results effectively.
3.4.2 Ưu điểm và nhược điểm:
Algolia có các ưu điểm sau:
Nhanh Algolia có tốc độ xử lý truy vấn và trả về kết quả rất nhanh
Algolia cung cấp nhiều tính năng hỗ trợ mạnh mẽ cho việc tìm kiếm, bao gồm khả năng bỏ qua các từ không cần thiết (stop words), hỗ trợ từ đồng nghĩa (synonyms), đánh giá và xử lý các từ sai cú pháp (typo tolerance), cũng như cung cấp các kết quả gợi ý (recommend).
Dễ sử dụng Dễ dàng sử dụng thông qua các API, API keys và hỗ trợ nhiều ngôn ngữ
Ngoài các ưu điểm, Algolia còn có các nhược điểm:
Tốn phí Ngoài gói miễn phí với mức sử dụng cố định, nếu sử dụng quá mức đó thì Algolia sẽ tính phí
Bảo mật kém Sử dụng API keys trên JavaScript hoặc mã nguồn chương trình, điều này sẽ dẫn tới việc thiếu bảo mật và bị lợi dụng
Phân tích và thiết kế hệ thống
Phân tích yêu cầu
Hình 4.1: Sơ đồ Usecase tổng
1 User Người sử dụng hệ thống tra cứu
1 Tra cứu lỗi vi phạm dành cho xe máy
Cho phép người dùng tìm kiếm lỗi vi phạm theo nội dung vi phạm hoặc người dùng có thể chọn loại lỗi vi phạm để xem
2 Tra cứu lỗi vi phạm dành cho xe ô tô
3 Tra cứu lỗi vi phạm dành cho phương tiện khác
4 Xem chi tiết lỗi vi phạm Cho phép người dùng xem chi tiết các thuộc tính của lỗi vi phạm được chọn
Người dùng có thể lưu lại các lỗi vi phạm vào mục đã lưu để dễ dàng xem lại sau này hoặc bỏ lưu những lỗi vi phạm không còn cần thiết.
6 Xem các lỗi vi phạm đã lưu Cho phép người dùng xem lại các lỗi vi phạm đã được lưu lại trên thiết bị
Người dùng có thể xem chi tiết các căn cứ pháp lý liên quan đến nội dung xử phạt, các hình thức phạt bổ sung và các biện pháp khắc phục.
8 Tra cứu biển báo giao thông
Cho phép người dùng tra cứu biển báo giao thông theo tên, số hoặc nội dung biển báo
9 Tra cứu chi tiết biển báo giao thông
Cho phép người dùng tra cứu chi tiết biển báo giao thông theo đặc điểm bên ngoài của biển báo
10 Tra cứu khái niệm về giao thông đường bộ
Cho phép người dùng tra cứu các khái niệm giao thông đường bộ
11 Tra cứu quy tắc khi tham gia giao thông đường bộ
Cho phép người dùng tra cứu các quy tắc khi tham gia giao thông đường bộ
12 Xem thông tin, hướng dẫn sử dụng hệ thống
Cho phép người dùng xem thông tin, hướng dẫn sử dụng hệ thống
13 Xem các bản cập nhật Cho phép người dùng xem các bản cập nhật hệ thống
4.1.4 Đặc tả usecase: a) Usecase “Tra cứu lỗi vi phạm dành cho xe máy”:
Hình 4.2: Usecase Tra cứu lỗi vi phạm xe máy
Cho phép người dùng tra cứu các lỗi vi phạm đối với phương tiện là xe máy
1 Chọn mục “Lỗi vi phạm” ở thanh Footer
2 Chọn phương tiện “Xe máy” ở thanh Header
3 Chọn một loại lỗi vi phạm được liệt kê ở giao diện chính hoặc nhập thông tin cần tra cứu vào thanh tìm kiếm
4 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
1 Chọn xem chi tiết lỗi vi phạm trong danh sách kết quả
2 Hệ thống trả về chi tiết lỗi vi phạm đã chọn
3.1 Xem chi tiết căn cứ pháp lý:
3.1.1 Chọn xem chi tiết căn cứ pháp lý 3.1.2 Hệ thống trả về chi tiết căn cứ pháp lý đã chọn
3.2 Lưu lỗi vi phạm hoặc bỏ lưu lỗi vi phạm:
3.2.1 Nhấn vào nút (1) “Lưu” hoặc “Đã lưu” trên thanh Header
3.2.2 Hệ thống lưu/bỏ lưu lỗi vi phạm, nút (1) sẽ chuyển sang “Đã lưu” hoặc “Lưu” tương ứng b) Usecase “Tra cứu lỗi vi phạm dành cho xe ô tô”:
Hình 4.3: Usecase Tra cứu lỗi vi phạm xe ô tô
Cho phép người dùng tra cứu các lỗi vi phạm đối với phương tiện là xe ô tô
1 Chọn mục “Lỗi vi phạm” ở thanh Footer
2 Chọn phương tiện “Xe ô tô” ở thanh Header
3 Chọn một loại lỗi vi phạm được liệt kê ở giao diện chính hoặc nhập thông tin cần tra cứu vào thanh tìm kiếm
4 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
1 Chọn xem chi tiết lỗi vi phạm trong danh sách kết quả
2 Hệ thống trả về chi tiết lỗi vi phạm đã chọn
2.1 Xem chi tiết căn cứ pháp lý:
2.1.1 Chọn xem chi tiết căn cứ pháp lý
2.1.2 Hệ thống trả về chi tiết căn cứ pháp lý đã chọn
2.2 Lưu lỗi vi phạm hoặc bỏ lưu lỗi vi phạm:
2.2.1 Nhấn vào nút (1) “Lưu” hoặc “Đã lưu” trên thanh Header
2.2.2 Hệ thống lưu/bỏ lưu lỗi vi phạm, nút (1) sẽ chuyển sang “Đã lưu” hoặc
“Lưu” tương ứng c) Usecase “Tra cứu lỗi vi phạm dành cho phương tiện khác”:
Hình 4.4: Usecase Tra cứu lỗi vi phạm phương tiện khác
Cho phép người dùng tra cứu các lỗi vi phạm đối với các phương tiện khác
1 Chọn mục “Lỗi vi phạm” ở thanh Footer
2 Chọn phương tiện “Xe ô tô” ở thanh Header
3 Chọn một loại lỗi vi phạm được liệt kê ở giao diện chính hoặc nhập thông tin cần tra cứu vào thanh tìm kiếm
4 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
1 Chọn xem chi tiết lỗi vi phạm trong danh sách kết quả
2 Hệ thống trả về chi tiết lỗi vi phạm đã chọn
3.1 Xem chi tiết căn cứ pháp lý:
3.1.1 Chọn xem chi tiết căn cứ pháp lý
3.1.2 Hệ thống trả về chi tiết căn cứ pháp lý đã chọn
3.2 Lưu lỗi vi phạm hoặc bỏ lưu lỗi vi phạm:
3.2.1 Nhấn vào nút (1) “Lưu” hoặc “Đã lưu” trên thanh Header
3.2.2 Hệ thống lưu/bỏ lưu lỗi vi phạm, nút (1) sẽ chuyển sang “Đã lưu” hoặc
“Lưu” tương ứng d) Usecase “Xem các lỗi vi phạm đã lưu”:
Hình 4.5: Usecase Xem các lỗi vi phạm đã lưu
Cho phép người dùng xem lại các lỗi vi phạm đã lưu
1 Chọn mục “Lỗi vi phạm” ở thanh Footer
2 Chọn mục “Đã lưu” ở thanh Header
3 Hệ thống trả về danh sách kết quả đã lưu trên thiết bị
1 Chọn xem chi tiết lỗi vi phạm trong danh sách kết quả
2 Hệ thống trả về chi tiết lỗi vi phạm đã chọn
3.1 Xem chi tiết căn cứ pháp lý:
3.1.1 Chọn xem chi tiết căn cứ pháp lý
3.1.2 Hệ thống trả về chi tiết căn cứ pháp lý đã chọn
3.2 Lưu lỗi vi phạm hoặc bỏ lưu lỗi vi phạm:
3.2.1 Nhấn vào nút (1) “Lưu” hoặc “Đã lưu” trên thanh Header
3.2.2 Hệ thống lưu/bỏ lưu lỗi vi phạm, nút (1) sẽ chuyển sang “Đã lưu” hoặc “Lưu” tương ứng e) Usecase “Tra cứu biển báo giao thông”:
Hình 4.6:Usecase Tra cứu biển báo giao thông
Cho phép người dùng tra cứu biển báo giao thông đường bộ
1 Chọn mục “Biển báo” ở thanh Footer
2 Chọn một loại biển báo được liệt kê ở giao diện chính hoặc nhập thông tin cần tra cứu vào thanh tìm kiếm
3 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
1 Nhấn vào nút “Tìm kiếm chi tiết” phía dưới thanh tìm kiếm
2 Nhập nội dung tìm kiếm theo nội dung hình/chữ
3 Chọn các trường điều kiện cần tìm bằng cách nhấn vào checkbox ở trước các trường (có thể chọn từ 1 đến 4 trường hoặc không chọn trường nào)
4 Nhấn “Tìm kiếm” ở thanh Header
5 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm f) Usecase “Tra cứu khái niệm về giao thông đường bộ”:
Hình 4.7: Usecase Tra cứu khái niệm giao thông đường bộ
Cho phép người dùng tra cứu khái niệm về giao thông đường bộ
1 Chọn mục “Khái niệm, quy tắc” ở thanh Footer
2 Chọn mục “Khái niệm” ở thanh Header
3 Nhập thông tin cần tra cứu vào thanh tìm kiếm
4 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
Không có g) Usecase “Tra cứu quy tắc khi tham gia giao thông đường bộ”:
Hình 4.8: Usecase Tra cứu quy tắc khi tham gia giao thông đường bộ
Cho phép người dùng tra cứu quy tắc về giao thông đường bộ
1 Chọn mục “Khái niệm, quy tắc” ở thanh Footer
2 Chọn mục “Quy tắc” ở thanh Header
3 Nhập thông tin cần tra cứu vào thanh tìm kiếm
4 Hệ thống trả về danh sách kết quả thỏa điều kiện tìm kiếm
Không có h) Usecase “Xem thông tin, hướng dẫn sử dụng hệ thống”:
Hình 4.9: Usecase Xem thông tin, hướng dẫn
Cho phép người dùng xem các thông tin hoặc hướng dẫn sử dụng hệ thống
1 Chọn mục “Thông tin” ở thanh Footer
2 Chọn mục “Thông tin” ở thanh Header
3 Hệ thống trả về danh sách thông tin, hướng dẫn
4 Nhấn vào một mục để xem chi tiết
Không có i)Usecase “Xem các bản cập nhật hệ thống”:
Hình 4.10: Usecase Xem bản cập nhật hệ thống
Cho phép người dùng xem các bản cập nhật hệ thống
1 Chọn mục “Thông tin” ở thanh Footer
2 Chọn mục “Cập nhật” ở thanh Header
3 Hệ thống trả về danh sách các bản cập nhật
4 Nhấn vào một mục để xem chi tiết
Sơ đồ tuần tự
Hình 4.11: Sơ đồ tuần tự tra cứu lỗi vi phạm
Hình 4.12: Sơ đồ tuần tự tra cứu biển báo
Hình 4.13: Sơ đồ tuần tự xem chi tiết lỗi vi phạm và căn cứ pháp lý
Hình 4.14: Sơ đồ tuần tự tra cứu khái niệm, quy tắc
Hình 4.15: Sơ đồ tuần tự xem thông tin, cập nhật
Sơ đồ cơ sở dữ liệu
Cơ sở dữ liệu của đề tài được xây dựng trên mô hình NoSQL của Cloud Firestore, bao gồm các collections và documents Các collections giữ vai trò chứa các documents liên quan trong cùng một phạm vi truy vấn, trong khi mỗi document trong cùng một collection có mã riêng biệt và cung cấp thông tin chi tiết về một đối tượng, bao gồm lỗi vi phạm, căn cứ, biển báo, khái niệm, quy tắc và bản cập nhật.
Hình 4.16: Sơ đồ cơ sở dữ liệu
Tên Loại Ý nghĩa Ghi chú
Id String Mã của document chứa nội dung lỗi vi phạm Ten String Tên (nội dung) lỗi vi phạm
ChuThe String Chủ thể của lỗi vi phạm
Loai String Loại lỗi vi phạm
PhuongTien String Loại phương tiện
PhatMin String Mức phạt tiền tối thiểu Nếu cả PhatMin và
PhatMax đều trống thì là phạt cảnh cáo PhatMax String Mức phạt tiền tối đa
CanCu Map Căn cứ pháp lý của lỗi vi phạm
Dạng map {Điều: String, Khoản:
String, Điểm: String} Điều và Khoản bắt buộc phải có, Điểm có thể bỏ trống
CoBoSung Boolean Cho biết lỗi vi phạm có hình thức phạt bổ sung hay không
Nếu là true thì mới có thuộc tính BoSung BoSung Map Chi tiết mức xử phạt bổ sung
Dạng map {Nội dung: String, Căn Cứ: map {Điều, Khoản, Điểm, (Điểm 2 nếu có)} Nội dung thể hiện nội dung mức phạt
Có tối đa 2 Điểm trong Căn Cứ Nếu có 2 điểm thì có thuộc tính Điểm 2
CoKhacPhuc Boolean Cho biết lỗi vi phạm có biện pháp khắc phục hay không
Nếu là true thì mới có thuộc tính KhacPhuc KhacPhuc Map Chi tiết biện pháp khắc phục
Dạng map {Nội dung: String, Căn Cứ: map {Điều, Khoản, Điểm,
Có tối đa 2 Điểm trong Căn Cứ Nếu có 2
(Điểm 2 nếu có)} Nội dung thể hiện nội dung biện pháp điểm thì có thuộc tính Điểm 2
ThuongGap Boolean Cho biết lỗi vi phạm có thường gặp hay không TuKhoa String Danh sách các từ khóa liên quan đến lỗi vi phạm
Không chứa các từ đã có ở Tên
Bảng 4.3: Collection Lỗi vi phạm
Tên Loại Ý nghĩa Ghi chú
Id String Mã của document chứa nội dung biển báo Ten String Tên (nội dung) biển báo
Loai String Loại biển báo
So String Số của biển báo
NoiDung String Nội dung ý nghĩa của biển báo
Anh String Chứa đường dẫn đến ảnh minh họa biển báo ở storage HinhDang String Hình dạng của biển báo
MauNen String Màu nền của biển báo
MauHinh là thuộc tính chỉ màu sắc của biển báo; nếu không có hình, giá trị sẽ là “Không có” MauVien xác định màu viền của biển báo; nếu không có viền, giá trị cũng là “Không có” NoiDungHinh chứa danh sách từ khóa thể hiện nội dung hình ảnh trên biển báo.
Nếu không có hình ảnh thì bỏ trống NoiDungChu String Danh sách các từ khóa thể hiện nội dung chữ/số trên biển báo
Nếu không có chữ/số thì bỏ trống
Tên Loại Ý nghĩa Ghi chú
Id String Mã của document chứa nội dung khái niệm/quy tắc Ten String Tên khái niệm hoặc quy tắc
Loai String Thuộc loại Khái niệm hay Quy tắc NoiDung String Nội dung của khái niệm/quy tắc
Bảng 4.5: Collection Khái niệm, quy tắc
Collection CanCu: Đây là collection cấp cao hơn của các collections Dieu Mỗi điều trong Nghị định 100 tương ứng với một collection Dieu VD: Dieu05, Dieu06 …
Collection Dieu là một bộ sưu tập nằm trong bộ sưu tập CanCu, đồng thời cũng là một cấp cao hơn so với các bộ sưu tập Khoan Mỗi khoản trong Collection Dieu tương ứng với một bộ sưu tập Khoan, chẳng hạn như Khoan01, Khoan02, v.v.
Collection Khoan: Là collection lồng trong collection Dieu, mỗi collection Khoan chứa thuộc tính gồm nội dung Khoản và các Điểm trong Khoản
Tên Loại Ý nghĩa Ghi chú
NoiDung String Nội dung của Khoản
Diem Map Danh sách các Điểm có trong
Khoản Dạng Map với các thuộc tính String VD: Diem_a, Diem_b
… Mỗi Điểm có dạng String và chứa nội dung của Điểm đó
Nếu Khoản không phân Điểm thì không có thuộc tính này
Tên Loại Ý nghĩa Ghi chú
Id String Mã của document chứa nội dung bản cập nhật Ngay Timestamp Ngày ra mắt bản cập nhật
NoiDung Array Nội dung thay đổi của bản cập nhật
Tên Loại Ý nghĩa Ghi chú
Id String Mã của document chứa nội dung của thông tin/hướng dẫn
Ten String Tên/tiêu đề của thông tin, hướng dẫn NoiDung Array Nội dung của thông tin, hướng dẫn
Bảng 4.8: Collection Thông tin, hướng dẫn
Kiến trúc hệ thống
Hình 4.17: Kiến trúc hệ thống
- Front-end sử dụng React Native, viết bằng ngôn ngữ JavaScript
- Back-end as Service sử dụng Firebase với Database là Cloud Firestore, sử dụng Cloud Storage để chứa hình ảnh
- Full-text search sử dụng API của Algolia
Thiết kế giao diện
4.5.1 Sơ đồ giao diện ứng dụng:
Hình 4.18: Sơ đồ giao diện
4.5.2 Danh sách màn hình giao diện:
STT Tên màn hình Mô tả
1 Tra cứu lỗi vi phạm dành cho xe máy Gồm thanh tìm kiếm và các nút thể hiện loại vi phạm
2 Tra cứu lỗi vi phạm dành cho xe ô tô
3 Tra cứu lỗi vi phạm dành cho phương tiện khác
4 Danh sách các lỗi vi phạm đã lưu Hiển thị danh sách lỗi vi phạm đã lưu
5 Chi tiết lỗi vi phạm Thể hiện các thuộc tính của lỗi vi phạm đã chọn
6 Chi tiết căn cứ pháp lý Thể hiện căn cứ pháp lý đã chọn
7 Tra cứu biển báo Gồm thanh tìm kiếm, nút tìm kiếm chi tiết và các nút thể hiện loại biển báo
8 Tìm kiếm chi tiết biển báo Gồm thanh tìm kiếm và các trường điều kiện
9 Danh sách kết quả tìm kiếm Hiển thị danh sách các kết quả thỏa mãn điều kiện tìm kiếm
10 Tra cứu khái niệm Gồm thanh tìm kiếm và danh sách khái niệm
11 Tra cứu quy tắc Gồm thanh tìm kiếm và danh sách quy tắc
12 Danh sách thông tin Hiển thị danh sách các thông tin, hướng dẫn khi sử dụng ứng dụng
13 Danh sách cập nhật Hiển thị danh sách các bản cập nhật
Bảng 4.9: Danh sách màn hình
4.5.3 Mô tả chi tiết giao diện: a) Tra cứu lỗi vi phạm:
Hình 4.19: Màn hình chính tra cứu lỗi vi phạm
1 Nút “Xe máy” Button Chọn loại phương tiện tương ứng
4 Nút “Đã lưu” Button Xem các lỗi vi phạm đã lưu
5 Thanh tìm kiếm SearchBar Dùng để nhập giá trị tìm kiếm
6 Các nút loại vi phạm Button Xem các lỗi vi phạm của loại tương ứng
7 Nút “Thường gặp” Button Xem các lỗi vi phạm thường gặp
8 Thanh Footer FooterTab Dùng để di chuyển giữa các màn hình
Bảng 4.10: Chi tiết màn hình tra cứu lỗi vi phạm
Hình 4.20: Màn hình danh sách kết quả tìm kiếm
57 b) Danh sách lỗi vi phạm đã lưu:
Hình 4.21: Nhấn Lưu trong màn hình chi tiết lỗi vi phạm
Hình 4.22: Màn hình danh sách lỗi vi phạm đã lưu
1 Nút “Trở về” Button Quay lại giao diện trước đó
2 Danh sách lỗi vi phạm
FlatList Danh sách lỗi vi phạm đã lưu
3 Nút “Xem chi tiết” Button Xem chi tiết lỗi vi phạm
Bảng 4.11: Chi tiết màn hình danh sách lỗi vi phạm đã lưu
60 c) Chi tiết lỗi vi phạm:
Hình 4.23:Màn hình chi tiết lỗi vi phạm
1 Nút “Trở về” Button Quay lại giao diện trước đó
2 Nút “Lưu”/”Đã lưu” Button Dùng để lưu hoặc bỏ lưu lỗi vi phạm
3 Nút “Xem chi tiết căn cứ pháp lý”
Button Xem chi tiết căn cứ pháp lý của lỗi vi phạm
4 Nút “Xem chi tiết Điều …” Button Xem chi tiết căn cứ pháp lý của mức phạt bổ sung hoặc biện pháp khắc phục
5 Danh sách “Đã xem gần đây
FlatList Hiển thị danh sách các lỗi vi phạm đã xem gần đây
Bảng 4.12: Chi tiết màn hình chi tiết lỗi vi phạm (1)
Hình 4.24: Chú thích các mục trong chi tiết lỗi vi phạm
1 Chủ thể Chủ thể của hành vi vi phạm
2 Nội dung Nội dung hành vi vi phạm
3 Mức phạt hành chính hoặc cảnh cáo
Thể hiện mức phạt hành chính của vi phạm:
“Phạt tiền từ … đến …”; hoặc phạt cảnh cáo:
4 Mức phạt bổ sung Thể hiện nội dung mức phạt bổ sung và căn cứ pháp lý Nếu không có mức phạt bổ sung thì không có dòng này
5 Biện pháp khắc phục Thể hiện nội dung biện pháp khắc phục và căn cứ pháp lý Nếu không có biện pháp khắc phục thì không có dòng này
Bảng 4.13: Chi tiết màn hình chi tiết lỗi vi phạm (2)
64 d) Chi tiết căn cứ pháp lý:
Hình 4.25: Màn hình chi tiết căn cứ pháp lý
1 “Điều … Khoản …” Thể hiện căn cứ pháp lý thuộc Điều mấy, Khoản mấy trong Nghị định 100 Nếu có Điểm sẽ có thêm “Điểm …”
2 Nội dung Khoản Nội dung văn bản của Khoản
3 Nội dung Điểm Nội dung văn bản của Điểm nếu có
Bảng 4.14: Chi tiết màn hình chi tiết căn cứ pháp lý
Hình 4.26: Màn hình chính tra cứu biển báo
1 Thanh tìm kiếm SearchBar Dùng để nhập giá trị tìm kiếm
2 Nút “Tất cả” Button Hiện danh sách tất cả các biển báo
3 Các nút phân loại biển báo
Button Hiện danh sách các biển báo thuộc loại tương ứng
4 Nút “Tìm kiếm chi tiết” Button Chuyển sang màn hình tìm kiếm chi tiết
Bảng 4.15: Chi tiết màn hình tra cứu biển báo
Hình 4.27: Ví dụ tìm kiếm với số biển “401”
Hình 4.28: Kết quả tìm kiếm với số biển “401”
Hình 4.29: Màn hình tìm kiếm chi tiết
1 Nút “Tìm kiếm” Button Thực hiện tìm kiếm theo các điều kiện bên dưới
2 Nút “T” Button Quay lại giao diện trước đó
3 Thanh tìm kiếm SearchBar Dùng để nhập nội dung tìm kiếm theo chữ/số/hình của biển báo
4 Các checkbox bên trái các trường tìm kiếm
Checkbox cho phép người dùng thêm trường tìm kiếm vào điều kiện tìm kiếm Khi người dùng chọn phần màu phía trái, màu sắc sẽ chuyển sang màu cam, đồng thời combobox sẽ cung cấp tùy chọn để chọn giá trị.
5 Các combobox của các trường tìm kiếm
ComboBox Để chọn giá trị cho các trường tìm kiếm Nếu không check vào checkbox thì không thể chọn
Bảng 4.16: Chi tiết màn hình tìm kiếm chi tiết
Hình 4.30: Ví dụ khi cần tìm kiếm với nội dung hình là “người”, hình dạng “Hình tam giác” và màu hình “Đen”
Hình 4.31: Kết quả tìm kiếm chi tiết của ví dụ ở ảnh trên
Hình 4.32: Màn hình tra cứu khái niệm
1 Nút “Khái niệm” Button Chuyển sang tìm “Khái niệm”
2 Nút “Quy tắc” Button Chuyển sang tìm “Quy tắc”
3 Thanh tìm kiếm SearchBar Dùng để nhập nội dung tìm kiếm
4 Danh sách khái niệm FlatList Hiển thị các khái niệm thỏa điều kiện tìm kiếm, khi chưa thực hiện tìm kiếm sẽ hiển thị toàn bộ khái niệm
Bảng 4.17: Chi tiết màn hình tra cứu khái niệm
Hình 4.33: Tìm kiếm khái niệm với từ “hieu lenh”
Hình 4.34: Màn hình tra cứu quy tắc
1 Nút “Khái niệm” Button Chuyển sang tìm “Khái niệm”
2 Nút “Quy tắc” Button Chuyển sang tìm “Quy tắc”
3 Thanh tìm kiếm SearchBar Dùng để nhập nội dung tìm kiếm
4 Danh sách quy tắc FlatList Hiển thị các quy tắc thỏa điều kiện tìm kiếm, khi chưa thực hiện tìm kiếm sẽ hiển thị toàn bộ quy tắc
Bảng 4.18: Chi tiết màn hình tra cứu quy tắc
Hình 4.35: Tìm kiếm quy tắc với từ khóa “đỗ xe”
Hình 4.36: Danh sách thông tin, hướng dẫn
1 Nút “Thông tin” Button Chuyển sang danh sách thông tin
2 Nút “Cập nhật” Button Chuyển sang danh sách cập nhật
3 Danh sách thông tin FlatList Danh sách thông tin, hướng dẫn
4 Nút “Xem thêm” Button Xem nội dung thông tin, hướng dẫn
Bảng 4.19: Chi tiết màn hình danh sách thông tin, hướng dẫn
Hình 4.37: Xem nội dung thông tin, hướng dẫn
83 i) Danh sách bản cập nhật:
Hình 4.38: Danh sách bản cập nhật
1 Nút “Thông tin” Button Chuyển sang danh sách thông tin
2 Nút “Cập nhật” Button Chuyển sang danh sách cập nhật
3 Danh sách cập nhật FlatList Danh sách bản cập nhật hệ thống
4 Nút “Xem thêm” Button Xem nội dung bản cập nhật
Bảng 4.20: Chi tiết màn hình danh sách bản cập nhật
Hình 4.39: Xem chi tiết bản cập nhật
Hướng phát triển
Đề tài Hệ thống tra cứu luật giao thông là đề tài có khả năng phát triển hơn về nhiều điểm:
- Áp dụng các công nghệ tự động để trích xuất và thu thập dữ liệu
- Áp dụng các thuật toán liên quan đến gợi ý văn bản tìm kiếm hoặc gợi ý nội dung liên quan
- Hoàn thiện các tính năng đã có và phát triển thêm tính năng mới hướng đến người dùng
- Tối ưu hóa mã nguồn, nâng cao khả năng xử lý
- Mở rộng phát triển trên nền tảng web