TỔNG QUAN
Đặt vấn đề
Trong thời đại 4.0, công nghệ thông tin đã được ứng dụng rộng rãi trong mọi lĩnh vực của đời sống xã hội, giúp nâng cao hiệu quả công việc, tiết kiệm thời gian và chi phí, đồng thời tăng cường tính kết nối Vì vậy, việc số hóa và ứng dụng công nghệ thông tin đã trở thành mục tiêu hàng đầu mà nhiều tổ chức và cá nhân hướng tới.
Trong những năm gần đây, ô tô và siêu xe đã trở nên phổ biến tại Việt Nam, với doanh số bán đạt 150.000 xe, tăng 36% so với năm trước và gần kỷ lục 170.000 xe vào năm 2009 Sự phát triển này phản ánh nhu cầu đi lại ngày càng cao của người dân khi đời sống cải thiện Ngày nay, nhiều gia đình có thể sở hữu ô tô, điều này yêu cầu kỹ năng lái xe phải được đào tạo chuyên nghiệp Để tự do di chuyển, việc sở hữu bằng lái xe ô tô là điều cần thiết.
Đại dịch Covid-19 đã gây ra gián đoạn nghiêm trọng cho nhiều lĩnh vực, bao gồm cả đào tạo và sát hạch giấy phép lái xe Việc áp dụng giãn cách xã hội và tình hình dịch bệnh không thể kiểm soát đã khiến việc học lý thuyết tại trung tâm trở nên bất khả thi Nhiều người có nhu cầu sát hạch lo ngại về sức khỏe và tác động đến công tác phòng chống dịch khi phải đến nơi đông người.
Dựa trên nhu cầu thực tế và dữ liệu thu thập được, chúng tôi đã quyết định phát triển ứng dụng luyện thi sát hạch giấy phép lái xe B1, B2 Ứng dụng này nhằm hỗ trợ người dự thi đạt kết quả cao, cung cấp công cụ luyện thi hiệu quả và thú vị, đồng thời giảm bớt áp lực trong quá trình ôn luyện.
Các ứng dụng tương tự
Hiện nay, thị trường cả trong nước và quốc tế đang xuất hiện nhiều ứng dụng hỗ trợ luyện thi giấy phép lái xe, mang đến trải nghiệm tốt hơn cho người dùng.
3 việc ôn thi lý thuyết cũng như thi thử dễ dàng Trong đó ta có thể kể đến như: Ôn thi GPLX (600 câu hỏi),
1.2.1 Ứng dụng Ôn thi GPLX (600 câu hỏi) Ứng dụng Ôn thi GPLX (600 câu hỏi) là một trong những ứng dụng phổ biến trong việc luyện thi bằng lái xe Với Ôn thi GPLX (600 câu hỏi), người dùng có thể học lý thuyết thông qua bộ câu hỏi theo chương trình mới cập nhật, có giải thích đáp án Bên cạnh đó người dùng còn có thể học các biển báo đường bộ và ý nghĩa của chúng
Ứng dụng Ôn thi GPLX (600 câu) không chỉ cung cấp các câu hỏi ôn tập mà còn bao gồm hướng dẫn mẹo thi và các câu hỏi thường sai, giúp người dùng học tập và ghi nhớ hiệu quả Ngoài ra, người dùng còn có thể tìm kiếm thông tin về luật giao thông đường bộ cho các loại xe khác nhau.
1.2.2 Ứng dụng Lấy bằng GPLX Ứng dụng Lấy bằng GPLX gồm đầy đủ 600 câu hỏi dùng cho sát hạch, cấp giấy phép lái xe cơ giới đường bộ giúp người dùng chuẩn bị thi bằng lái xe cơ giới một cách nhanh chóng và hiệu quả nhất Với ứng dụng lấy bằng GPLX, người dùng có thể trải nghiệm bộ đề thi ôn luyện phù hợp với từng loại bằng, hoặc làm bộ đề ngẫu nhiên
Ứng dụng này cung cấp danh sách đầy đủ các loại biển báo, kèm theo mô tả chi tiết và hướng dẫn cụ thể cho bài thi sa hình.
Hình 1.2 Ứng dụng Lấy bằng GPLX
1.2.3 Tóm lược Ôn thi GPLX(600 câu
Lấy bằng GPLX Ứng dụng đề xuất Ôn thi theo bộ đề mới nhất ✔ ✔ ✔
Mẹo thi và câu hay sai
✔ ✘ ✔ Ôn tập nhanh ✘ ✘ ✔ Đồng bộ hóa theo tài khoản
Mục tiêu
Từ bảng so sánh các chức năng ở trên nhóm em đưa ra đề xuất xây dựng ứng dụng luyện thi giấy phép lái xe B1, B2 với các chức năng như:
- Thi sát hạch: Thi thử sát hạch theo cấu trúc chuẩn đề mẫu được tạo sẵn hoặc tạo ngẫu nhiên theo cấu trúc chuẩn của đề thi thật
- Ôn tập lý thuyết: Ôn tập toàn bộ 600 câu hỏi hoặc ôn thi theo từng loại câu hỏi
- Biển báo: Học về hình dạng và ý nghĩa của các biển báo đường bộ
- Câu hay sai: Dựa vào kết quả thi để đưa ra các câu hỏi người dùng hay sai và số lần sai
- Mẹo thi: Đưa ra mẹo thi giúp người dùng cải thiện kết quả thi
- Tra cứu luật: Tra cứu luật giao thông mới nhất của ô tô
- Ôn tập nhanh: Tự động random (ưu tiên câu hay sai) 5 câu (trong nhóm câu cụ thể) để làm nhanh
- Đồng bộ lịch sử làm bài theo tài khoản giữa các thiết bị.
Phạm vi
Ứng dụng luyện thi giấy phép lái xe B1, B2 được phát triển dành riêng cho hệ điều hành Android, phục vụ nhu cầu của những người chuẩn bị thi bằng lái Ứng dụng này cung cấp ngân hàng câu hỏi và đề thi được cập nhật chính thức từ Bộ Giao thông Vận tải, đảm bảo tính chính xác và hiệu quả trong việc ôn luyện.
TỔNG QUAN CÔNG NGHỆ
Flutter
Google đã phát triển hai bộ SDK cho ứng dụng di động: Android và Flutter Flutter ra mắt phiên bản beta 1, cho phép tạo ra các ứng dụng chạy trên cả iOS và Android, mở rộng khả năng phát triển ứng dụng di động của Google Sự khác biệt chính giữa Flutter và Android là khả năng hỗ trợ đa nền tảng, giúp lập trình viên tiếp cận được nhiều người dùng hơn.
Flutter là một bộ SDK đa nền tảng cho phép phát triển ứng dụng trên cả iOS và Android, giúp tương thích với framework UI của hai hệ điều hành này Các ứng dụng Flutter không được biên dịch trực tiếp với các ứng dụng native của Android và iOS.
Flutter được phát triển với mục tiêu đạt tốc độ khung hình 60fps, mang lại trải nghiệm mượt mà cho người dùng Mặc dù tốc độ này phổ biến trên iOS, nhưng trên Android, sự khác biệt có thể cảm nhận rõ rệt Bên cạnh đó, việc Flutter cung cấp một nền tảng đồng nhất giúp các nhà phát triển tránh được nhiều vấn đề liên quan đến sự phân mảnh của hệ điều hành Android.
SQLite
SQLite là một thư viện phần mềm cung cấp một SQL Database Engine độc lập, không yêu cầu máy chủ hay cấu hình phức tạp Với kích thước nhỏ gọn và tính khép kín, SQLite cho phép người dùng sử dụng cơ sở dữ liệu một cách dễ dàng mà không cần thực hiện các bước cấu hình như các hệ thống cơ sở dữ liệu khác.
SQLite là một engine cơ sở dữ liệu không hoạt động như một quy trình độc lập, mà có thể được tích hợp vào ứng dụng của bạn thông qua liên kết tĩnh hoặc động, tùy thuộc vào nhu cầu sử dụng.
● SQLite không yêu cầu một quy trình hoặc hệ thống máy chủ riêng biệt để hoạt động
● SQLite không cần cấu hình, có nghĩa là không cần thiết lập hoặc quản trị
● Một cơ sở dữ liệu SQLite hoàn chỉnh được lưu trữ trong một file disk đa nền tảng (cross-platform disk file)
● SQLite rất nhỏ và trọng lượng nhẹ, dưới 400KiB được cấu hình đầy đủ hoặc dưới 250KiB với các tính năng tùy chọn bị bỏ qua
● SQLite là khép kín (self-contained), có nghĩa là không có phụ thuộc bên ngoài
● Các transaction trong SQLite hoàn toàn tuân thủ ACID, cho phép truy cập an toàn từ nhiều tiến trình (process) hoặc luồng (thread)
● SQLite hỗ trợ hầu hết các tính năng ngôn ngữ truy vấn (query language) được tìm thấy trong tiêu chuẩn SQL92 (SQL2)
● SQLite được viết bằng ANSI-C và cung cấp API đơn giản và dễ sử dụng
● SQLite có sẵn trên UNIX (Linux, Mac OS-X, Android, iOS) và
NodeJS
Node.js, được phát triển từ năm 2009 và bảo trợ bởi công ty Joyent tại California, là một nền tảng độc lập dựa trên Javascript Runtime của Chrome Nền tảng này cho phép xây dựng các ứng dụng mạng nhanh chóng và dễ dàng mở rộng.
Node.js được xây dựng chủ yếu bằng C++, mang lại hiệu suất và tốc độ xử lý ấn tượng Nhờ vào khả năng xử lý nhanh chóng, Node.js phù hợp cho các ứng dụng có lưu lượng truy cập lớn, yêu cầu khả năng mở rộng linh hoạt, đổi mới công nghệ, và là lựa chọn lý tưởng cho các dự án khởi nghiệp cần triển khai nhanh chóng.
ExpressJS
Express.js là một framework nhỏ gọn nhưng linh hoạt, được xây dựng trên nền tảng Node.js Nó mang đến nhiều tính năng mạnh mẽ, hỗ trợ hiệu quả cho việc phát triển ứng dụng web và di động.
Về các package hỗ trợ: Expressjs có vô số các package hỗ trợ nên các bạn không phải lo lắng khi làm việc với Framework này
Về performance: Express cung cấp thêm về các tính năng (feature) để dev lập trình tốt hơn Chứ không làm giảm tốc độ của NodeJS.
SocketIO
Socket.io là một module của Node.js, ra đời năm 2010, nhằm hỗ trợ giao tiếp thời gian thực qua các kết nối mở Nó cho phép giao tiếp hai chiều giữa máy khách và máy chủ, với điều kiện máy khách sử dụng Socket.io trong trình duyệt và máy chủ đã tích hợp gói này.
Socket.io là một thư viện mạnh mẽ được sử dụng để xây dựng các ứng dụng web real-time, yêu cầu tốc độ phản hồi ngay lập tức như chat và trực tiếp bóng đá Nó được phát triển dựa trên Engine.IO, khởi đầu bằng việc thiết lập kết nối long-polling trước khi nâng cấp lên các kết nối hiệu quả hơn như WebSocket.
PHÂN TÍCH THIẾT KẾ ỨNG DỤNG
Phân tích
3.1.1 Danh sách yêu cầu hệ thống
Dựa trên khảo sát từ người dùng và tham khảo các ứng dụng khác, nhóm đã tổng hợp danh sách các nghiệp vụ cần thiết cho ứng dụng.
Bảng 3.1 Danh sách yêu cầu của hệ thống
STT Tên yêu cầu Ghi chú
1 Đăng nhập, đăng ký Người dùng sử dụng tài khoản đã đăng ký trước để đăng nhập vào ứng dụng hoặc đăng ký tài khoản mới Sau khi
10 đăng nhập thành công, người dùng có thể đồng bộ hóa lịch sử
2 Quản lý thông tin cá nhân Người dùng có thể xem và chỉnh sửa những thông tin cá nhân cơ bản như họ tên, ngày sinh, giới tính, email,
3 Thi thử Người dùng có thể thi các đề thi tạo sẵn hoặc tạo đề ngẫu nhiên
4 Ôn thi Người dùng có thể ôn thi toàn bộ câu hỏi hoặc theo từng phân loại
5 Ôn thi nhanh Người dùng có thể thi nhanh 5 câu bất kì trong phân loại tùy chọn
6 Học biển báo Người dùng có thể học tất cả biển báo đường bộ và ý nghĩa của chúng
7 Mẹo thi Cung cấp cho người dùng các mẹo thi hữu ích giúp nâng cao kết quả thi nhanh chóng
8 Tra cứu luật Người dùng có thể tra cứu các luật đường bộ dành cho ô tô một cách nhanh chóng
Hình 3.1 Sơ đồ Use-case Bảng 3.2 Danh sách các Actor
STT Tên Actor Ý nghĩa/Ghi chú
1 User Người dùng, người đã tải ,cài đặt và sử dụng phần mềm
2 Login User Người dùng đã đăng nhập thành công và đang
12 trong phiên đăng nhập có hiệu lực
Bảng 3.3 Danh sách các Use-case
STT Tên Use-case Ý nghĩa/Ghi chú
1 Thi thử Người dùng có thể thi các đề thi tạo sẵn hoặc tạo đề ngẫu nhiên
2 Ôn tập lý thuyết Người dùng có thể ôn thi toàn bộ câu hỏi hoặc theo từng phân loại
3 Học biển báo Người dùng có thể học tất cả biển báo đường bộ và ý nghĩa của chúng
4 Xem lại câu hay sai Người dùng có thể xem và ôn lại câu mình hay sai và số lần sai
5 Chọn loại giấy phép lái xe Người dùng có thể thay đổi loại giấy phép phù hợp với nhu cầu
6 Xem mẹo thi Cung cấp cho người dùng các mẹo thi hữu ích giúp nâng cao kết quả thi nhanh chóng
7 Tra cứu luật Người dùng có thể tra cứu các luật đường bộ dành cho ô tô một cách nhanh chóng
8 Ôn tập nhanh Người dùng có thể thi nhanh 5 câu bất kì trong phân loại tùy chọn
9 Đăng nhập Người dùng có thể đăng nhập tài khoản để có thể đồng bộ lịch sử của tài khoản
10 Đồng bộ lịch sử làm bài Giúp người dùng lưu lại lịch sử làm bài, cập nhật trên các thiết bị được đăng nhập tài khoản
11 Lấy lại mật khẩu Giúp người dùng lấy lại mật khẩu
Bảng 3.4 Đặc tả chức năng thi thử
Tên Use-Case Thi thử
Người dùng có thể thực hiện bài thi thử trong khoảng thời gian quy định và nhận kết quả ngay sau khi hoàn thành bài thi Không có điều kiện nào cần phải đáp ứng trước khi tham gia.
Khi hiển thị kết quả bài làm cho người dùng, cần đảm bảo 13 điều kiện quan trọng, bao gồm việc chỉ rõ câu nào đúng, câu nào sai và kết quả cuối cùng là đậu hay rớt Đồng thời, kết quả bài làm cũng phải được lưu lại để người dùng có thể xem xét sau này.
Dòng sự kiện chính 1 Chọn “thi thử”
3 Trả lời từng câu hỏi
5 Hệ thống chấm bài và trả kết quả
Dòng sự kiện phụ Trộn đề ngẫu nhiên theo cấu trúc đề thi thật
2a Chọn nút “Ngẫu nhiên” thay vì chọn 1 đề
Hết thời gian làm bài trước khi xong hết câu hỏi 4a Hệ thống tự động nộp bài khi hết giờ
Thoát ra giữa quá trình làm bài 4b Hệ thống hiện thông báo Nếu người dùng xác nhận thoát thì không ghi nhận kết quả
Bảng 3.5 Đặc tả chức năng ôn tập lý thuyết
Tên Use-Case Ôn tập lý thuyết
Người dùng có thể học và ôn tập toàn bộ các câu hỏi có thể xuất hiện trong đề thi mà không cần bất kỳ điều kiện trước hay sau nào.
Dòng sự kiện chính 1 Chọn “ôn tập”
3 Hệ thống xuất câu hỏi kèm theo đáp án
4 Người dùng học và ghi nhớ Dòng sự kiện phụ Không có
Bảng 3.6 Đặc tả chức năng học biển báo
Tên Use-Case Học biển báo
Người dùng sẽ được hướng dẫn về hình dạng và ý nghĩa của các biển báo đường bộ hiện nay, bao gồm cả những biển báo không phổ biến Việc nắm rõ thông tin này sẽ giúp người tham gia giao thông nhận biết và tuân thủ luật lệ, đảm bảo an toàn khi di chuyển trên đường.
14 đề thi) Điều kiện trước Không có Điều kiện sau Không có
Dòng sự kiện chính 1 Chọn “Biển báo”
2 Tìm loại biển báo cần xem ý nghĩa
3 Người dùng học và ghi nhớ Dòng sự kiện phụ Không có
Bảng 3.7 Đặc tả chức năng câu hay sai
Tên Use-Case Câu hay sai
Người dùng sẽ tìm hiểu về hình dáng và ý nghĩa của các biển báo đường bộ hiện nay, bao gồm cả những biển báo không có trong đề thi Nội dung này không yêu cầu điều kiện trước hay sau.
Dòng sự kiện chính 1 Chọn “Câu hay sai”
2 Xem lại các câu hay sai (có kèm đáp án và số lượt sai)
Bảng 3.8 Đặc tả chức năng chọn loại giấy phép lái xe
Tên Use-Case Chọn loại giấy phép lái xe
Người dùng có thể chọn loại giấy phép lái xe mà họ muốn ôn luyện mà không cần đáp ứng điều kiện trước Sau khi hoàn thành, hệ thống sẽ lưu lại thông tin và điều chỉnh các dữ liệu để đảm bảo tính chính xác và phù hợp.
Dòng sự kiện chính 1 Chọn “Cài đặt”
2 Chọn loại giấy phép muốn ôn luyện
3 Nhấn lưu Dòng sự kiện phụ Không có
Bảng 3.9 Đặc tả chức năng mẹo thi
Tên Use-Case Mẹo thi
Bài viết này cung cấp cho người dùng những mẹo hữu ích để chuẩn bị cho phần thi mà họ đang ôn luyện, giúp tối ưu hóa quá trình học tập và nâng cao hiệu quả ôn thi Không có điều kiện trước hay sau nào được đặt ra, cho phép mọi người dễ dàng áp dụng các mẹo này vào việc chuẩn bị cho kỳ thi của mình.
Dòng sự kiện chính 1 Chọn “Xem mẹo thi”
2 Xem danh sách các mẹo thi Dòng sự kiện phụ Không có
Bảng 3.10 Đặc tả chức năng tra cứu luật
Tên Use-Case Tra cứu luật
Mô tả tóm tắt Tra cứu các luật giao thông cơ bản Điều kiện trước Không có Điều kiện sau Không có
Dòng sự kiện chính 1 Chọn “Tra cứu luật”
2 Điền từ khóa của luật cần tìm
3 Xem danh sách các luật liên quan tới từ khóa Dòng sự kiện phụ Không có
Bảng 3.11 Đặc tả chức năng ôn tập nhanh
Tên Use-Case Ôn tập nhanh
Mô tả tóm tắt Kiểm tra nhanh 5 câu hỏi từ một chương cụ thể Điều kiện trước Không có Điều kiện sau Hệ thống lưu lại kết quả
Dòng sự kiện chính 1 Chọn “Kiểm tra nhanh”
2 Chọn chương cần kiểm tra
3 Trả lời từng câu hỏi
Dòng sự kiện phụ Thoát ra giữa quá trình làm bài
4a Hệ thống hiện thông báo Nếu người dùng xác nhận thoát thì không ghi nhận kết quả
Bảng 3.12 Đặc tả chức năng đăng nhập
Tên Use-Case Đăng nhập
Mô tả tóm tắt Đăng nhập một tài khoản để định danh Điều kiện trước Không có Điều kiện sau Hệ thống mở chức năng đồng bộ
Dòng sự kiện chính 1 Chọn “Đăng nhập”
2 Nhập thông tin đăng nhập
3 Chọn lưu tài khoản hay không
Dòng sự kiện phụ Đăng nhập thất bại
5a Hệ thống hiện thông báo đăng nhập thất bại
Bảng 3.13 Đặc tả chức năng đồng bộ lịch sử làm bài
Tên Use-Case Đồng bộ lịch sử làm bài
Đồng bộ lịch sử làm bài của người dùng lên máy chủ giúp các tài khoản giữa nhiều thiết bị được đồng bộ hóa hiệu quả Điều kiện cần thiết trước khi thực hiện là người dùng phải đăng nhập thành công, trong khi không có điều kiện nào cần thiết sau khi quá trình đồng bộ hoàn tất.
Dòng sự kiện chính 1 Chọn “Cài đặt”
3 Hệ thống sẽ tự động đồng bộ lịch sử làm bài giữa server và thiết bị Dòng sự kiện phụ Không có
Bảng 3.14 Đặc tả chức năng lấy lại mật khẩu
Tên Use-Case Lấy lại mật khẩu
Người dùng có thể dễ dàng khôi phục mật khẩu thông qua email mà không cần điều kiện trước Sau khi thực hiện, mật khẩu sẽ được thay đổi thành công trên hệ thống.
Dòng sự kiện chính 1 Chọn “Quên mật khẩu”
3 Hệ thống gửi mã xác nhận qua email
4 Mở email để lấy mã xác nhận
Dòng sự kiện phụ Không nhận được mã xác nhận
Nhập mã sai 6a Hệ thống báo lỗi và yêu cầu nhập lại (Nếu nhập sai quá
3 lần sẽ dừng use-case)
Thiết kế
3.2.1 Thiết kế cơ sở dữ liệu
3.2.1.1 Cơ sở dữ liệu trên máy chủ (Server Database)
Bảng 3.15 Danh sách bảng trong cơ sở dữ liệu trên máy chủ
1 ACCOUNT Lưu trữ toàn bộ thông tin tài khoản
2 SESSION Lưu trữ thông tin về các phiên đăng nhập trên hệ thống
Lịch sử lưu trữ thông tin giúp theo dõi quá trình làm bài của các tài khoản Khi người dùng đăng nhập vào thiết bị, hệ thống sẽ tự động đồng bộ hóa với lịch sử làm bài đã được lưu trữ.
Lưu trữ thông tin về bài làm gần nhất cho mỗi đề thi của từng tài khoản là rất quan trọng Khi thiết bị đăng nhập vào tài khoản, hệ thống sẽ tự động đồng bộ với kết quả mới nhất được lưu trữ, đảm bảo người dùng luôn cập nhật thông tin chính xác và kịp thời.
Bảng 3.16 Danh sách trường bảng ACCOUNT
2 Email Địa chỉ email người dùng
3 Password Mật khẩu người dùng (đã mã hóa)
Bảng 3.17 Danh sách trường bảng SESSION
1 Token Mã phiên đăng nhập
2 AccountID Mã tài khoản thiết lập phiên đăng nhập
3 LoginTime Thời gian đăng nhập thành công (theo server- time)
4 LastPing Thời gian lần cuối tương tác (theo server- time)
Bảng 3.18 Danh sách trường bảng HISTORY
2 AccountID Mã người dùng đã làm bài
3 QuesID Mã câu hỏi đã trả lời
4 TopicID Mã đề thi đã làm
6 SyncTime Thời gian đồng bộ lên server
Bảng 3.19 Danh sách trường bảng TOPIC
4 LastResult Phần trăm hoàn thành bài thi ở lần thi gần nhất
5 SyncTime Thời gian đồng bộ lên server Null nếu chưa thực hiện đồng bộ
3.2.1.2 Cơ sở dữ liệu trên thiết bị (Local Database)
Cơ sở dữ liệu trên thiết bị được thiết kế theo mô hình SQL nhằm đáp ứng yêu cầu nhỏ, gọn và cài đặt dễ dàng
Hình 3.2 Sơ đồ cơ sở dữ liệu trên thiết bị Bảng 3.20 Danh sách bảng trong cơ sở dữ liệu trên thiết bị
Bảng 3.21 Danh sách trường bảng HISTORY
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
5 syncTime TIME Thời gian đồng bộ lên máy chủ Null nếu chưa thực hiện đồng bộ
Bảng 3.22 Danh sách trường bảng TOPIC
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name TEXT NOT NULL Tên đề thi
Nhỏ hơn 100 Phần trăm hoàn thành bài thi ở lần thi cuối
4 SyncTime TIME Thời gian đồng bộ lên server Null nếu chưa thực hiện đồng bộ
Bảng 3.23 Danh sách trường bảng QUESTION
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
2 quesCataID NUMBER Khóa ngoại đến
3 question TEXT Nội dung câu hỏi
4 imageurl TEXT Đường dẫn đến hình ảnh (nếu có)
5 correct NUMBER Thứ tự của đáp án đúng
10 type NUMBER Loại câu hỏi
Bảng 3.24 Danh sách trường bảng QUES_CATA
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name TEXT NOT NULL Tên chương (chủ đề)
Bảng 3.25 Danh sách trường bảng BOARD
STT Tên trường) Kiểu dữ liệu Ràng buộc Ý nghĩa
2 cataID NUMBER Khóa ngoại đến
3 name TEXT NOT NULL Tên biển báo
4 imageurl TEXT NOT NULL Đường dẫn đến hình ảnh
5 content TEXT NOT NULL Ý nghĩa biển báo
Bảng 3.26 Danh sách trường bảng BOARD_CATA
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name TEXT NOT NULL Tên loại biển báo
Bảng 3.27 Danh sách trường bảng TIP_PART
STT Tên trường) Kiểu dữ liệu Ràng buộc Ý nghĩa
2 name TEXT Tên phần bài thi có thể áp dụng mẹo
Bảng 3.28 Danh sách trường bảng TIP
TIP STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
2 partID NUMBẺR Khóa ngoại đến
3 name TEXT NOT NULL Tên mẹo
4 content TEXT NOT NULL Nội dung mẹo
Hình 3.3 Sơ đồ màn hình trên ứng dụng Bảng 3.29 Danh sách các màn hình
STT Tên màn hình Ý nghĩa/Ghi chú
1 Màn hình trang chủ Trang chủ của của ứng dụng
2 Màn hình đăng nhập Đăng nhập tài khoản vào ứng dụng
3 Màn hình thông tin cá nhân Hiển thị, cập nhật thông tin cá nhân người dùng
4 Màn hình đề thi thử Hiển thị danh sách các đề thi mẫu và kết quả thi của mỗi đề
5 Màn hình làm bài thi Làm bài thi sát hạch
6 Màn hình kết quả Hiển thị kết quả thi sau khi nộp bài
7 Màn hình xem đáp án Hiển thị kết quả đúng sai của từng câu hỏi trong đề thi
8 Màn hình loại câu hỏi lý thuyết Hiển thị danh sách các loại câu hỏi lý thuyết
9 Màn hình ôn thi câu hỏi Ôn thi các câu hỏi trong loại câu hỏi được chọn, hiển thị sẵn đáp án
10 Màn hình ôn tập nhanh Chọn loại câu hỏi muốn ôn tập nhanh
11 Màn hình học biển báo Hiển thị danh sách biển báo và ý nghĩa của từng biến báo
12 Màn hình mẹo thi Hiển thị các mẹo thi lý thuyết và thực hành
Hình 3.4 Màn hình trang chủ
Bảng 3.30 Bảng thành phần giao diện Trang chủ
STT Tên thành phần Loại Chức năng
1 tbxSearchLaw Textbox Tìm kiếm luật giao thông dành cho ô tô
2 btnMockTest Button Mở màn hình thi thử
3 btnStudy Button Mở màn hình ôn thi lý thuyết
4 btnQuickTest Button Mở màn hình ôn tập nhanh
5 btnNoticeBoard Button Mở màn hình học biển báo
6 btnWrongQuestion Button Mở màn hình ôn thi câu hay sai
7 btnTestTips Button Mở màn hình mẹo thi
8 btnProfile Button Mở màn hình thông tin cá nhân
Hình 3.5 Màn hình đăng nhập Bảng 3.31 Bảng thành phần giao diện mẹo thi
STT Tên thành phần Loại Chức năng
1 tbxEmail Textbox Nhập email hoặc số điện thoại đã đăng ký tài khoản
2 tbxPassword Textbox Nhập mật khẩu của tài khoản
3 cbRemember Checkbox Lưu mật khẩu cho lần đăng nhập sau
4 btnForgetPassword Button Lấy lại mật khẩu
5 btnSignIn Button Đăng nhập vào ứng dụng
6 btnSignUp Button Mở màn hình đăng ký
7 btnBack Button Quay lại màn hình trang chủ
3.2.2.3 Màn hình thông tin cá nhân
Hình 3.6 Màn hình mẹo thi Bảng 3.32 Bảng thành phần giao diện mẹo thi
STT Tên thành phần Loại Chức năng
1 imageAvt Image Ảnh đại diện của người dùng
2 txtInfor Text Thông tin tên, số điện thoại của người dùng
3 itemSetting Item Các mục cài đặt và xem chính sách
4 btnBack Button Quay lại màn hình trang chủ
3.2.2.4 Màn hình đề thi thử
Hình 3.7 Màn hình đề thi thử Bảng 3.33 Danh sách thành phần giao diện Đề thi thử
STT Tên thành phần Loại Chức năng
1 listExam ListView Danh sách đề thi mẫu
2 itemExam Item Đề thi mẫu
3 btnCreataExam Button Tạo đề thi thử ngẫu nhiên
4 btnBack Button Quay về trang chủ
3.2.2.5 Màn hình làm bài thi
Hình 3.8 Màn hình làm bài thi Bảng 3.34 Bảng thành phần giao diện làm bài thi
STT Tên thành phần Loại Chức năng
1 listQuestion ListView Hiển thị tình trạng làm bài
2 txtCurrentQuestion Text Thứ tự của câu hỏi hiện tại
3 txtTimer Text Thời gian làm bài còn lại
4 txtQuestion Text Nội dung câu hỏi
5 cbChoice Checkbox Các đáp án của câu hỏi
6 btnPrevious Button Quay lại câu hỏi trước
7 btnNext Button Đến câu hỏi tiếp theo
8 btnSubmit Button Nộp bài thi
9 btnBack Button Thoát khỏi bài thi
3.2.2.6 Màn hình kết quả thi
Hình 3.9 Màn hình kết quả đạt bài thi Bảng 3.35 Bảng thành phần giao diện kết quả thi
STT Tên thành phần Loại Chức năng
1 txtScore Text Tỉ lệ phần trăm và số câu đúng
2 pbScore ProgressBar Thể hiện phần trăm đúng của bài thi
3 txtResult Text Kết quả bài thi đạt hay không đạt
4 btnSeeAnswer Button Xem chi tiết kết quả
5 btnBackHome Button Trở về trang chủ
3.2.2.7 Màn hình xem chi tiết kết quả thi
Hình 3.10 Màn hình xem chi tiết kết quả thi Bảng 3.36 Bảng thành phần giao diện xem chi tiết kết quả thi
STT Tên thành phần Loại Chức năng
1 listQuestion ListView Hiển thị tình trạng đúng sai của các câu hỏi
2 txtCurrentQuestion Text Thứ tự của câu hỏi hiện tại
3 txtQuestion Text Nội dung câu hỏi
4 cbAnswer Checkbox Các đáp án đúng sai của câu hỏi
5 btnPrevious Button Quay lại câu hỏi trước
6 btnNext Button Đến câu hỏi tiếp theo
7 btnTestAgain Button Làm lại bài thi
8 btnBack Button Quay lại màn hình đề thi thử
3.2.2.8 Màn hình ôn thi lý thuyết
Hình 3.11 Màn hình ôn thi lý thuyết Bảng 3.37 Bảng thành phần giao diện ôn thi lý thuyết
STT Tên thành phần Loại Chức năng
1 listTypeQuestion List Hiển thị danh sách các loại câu hỏi
2 itemTypeQuestion Item Loại câu hỏi
3 btnBack Button Quay lại màn hình trang chủ
3.2.2.9 Màn hình ôn thi câu hỏi
Hình 3.12 Màn hình ôn thi câu hỏi Bảng 3.38 Bảng thành phần giao diện ôn thi câu hỏi
STT Tên thành phần Loại Chức năng
1 txtTitle Text Hiển thị loại câu hỏi đang ôn
2 txtCurrentQuestion Text Thứ tự của câu hỏi hiện tại
3 txtNote Text Hiển thị ghi chú câu điểm liệt hoặc số lần sai
4 txtQuestion Text Nội dung câu hỏi
5 cbChoice Checkbox Các đáp án của câu hỏi
6 btnPrevious Button Quay lại câu hỏi trước
7 txtAnswer Text Đáp án của câu hỏi
8 btnNext Button Đến câu hỏi tiếp theo
9 btnListQuestion Button Mở view danh sách câu hỏi
10 btnBack Button Quay lại màn hình đề thi thử
3.2.2.10 Màn hình ôn tập nhanh
Hình 3.13 Màn hình ôn tập nhanh Bảng 3.39 Bảng thành phần giao diện ôn tập nhanh
STT Tên thành phần Loại Chức năng
1 cbTypeQuestion Combobox Danh sách các loại câu hỏi
2 btnStart Button Mở màn hình làm bài thi
3 btnBack Button Quay lại màn hình trang chủ
3.2.2.11 Màn hình học biển báo
Hình 3.14 Màn hình học biển báo Bảng 3.40 Bảng thành phần giao diện học biển báo
STT Tên thành phần Loại Chức năng
1 btnSearch Button Hiển thị thanh search biển báo
2 tbTypeNoticeBoard Tabbar Các loại biển báo
3 listNoticeBoard ListView Danh sách các biển báo của từng loại
4 btnBack Button Quay lại màn hình trang chủ
Hình 3.15 Màn hình mẹo thi Bảng 3.41 Bảng thành phần giao diện mẹo thi
STT Tên thành phần Loại Chức năng
1 btnSearch Button Hiển thị thanh search mẹo thi
2 tbTypeTips Tabbar Các loại mẹo thi
3 listCategoryTips ListView Danh sách các thể loại mẹo
4 itemCategoryTips Item Thể loại mẹo
5 btnBack Button Quay lại màn hình trang chủ
Thiết kế kiến trúc hệ thống
Hình 3.16 Kiến trúc tổng thể hệ thống Bảng 3.42 Bảng mô tả kiến trúc hệ thống
STT Tên module Mô tả