KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
ĐỒ ÁN CƠ SỞ 3ĐỀ TÀI: Ứng dụng quản lý bãi đổ xe.
Sinh viên thực hiện: BÙI XUÂN TƯỜNG 18IT3 – 18IT187 HUỲNH QUANG TRUNG 18IT1 – 18IT043
Giảng viên hướng dẫn : THS.TRẦN ĐÌNH SƠN
Đà nẵng, ngày 22, tháng 07, năm 2020
Trang 2MỞ ĐẦU
Hiện nay, tại các thành phố đông dân cư, vấn đề quản lý các chỗđỗ xe, hay quản lý các bãi đỗ xe sao cho hiệu quả, kinh tế và tiện íchcho người dùng, đang là một bài toán đau đầu với các nhà quản lý đôthị nói chung, và chủ các bãi đổ/trông giữ xe và các bác tài xế nóiriêng.
Với cơ quan quản lý nhà nước, hiện nay mới chỉ dừng lại việcgiao cho các công ty quản lý thu phí các điểm dừng /đổ ô tô trên cáctuyến phố Việc giao quản lý như thế này vẫn còn xảy ra tình trạng giániêm yết một đằng, giá thu một nẻo Chưa có cách thức thu thập sốliệu, nhu cầu chỗ đỗ theo các thời điểm, khu vực một cách chính xácđể phục vụ bài toán quy hoạch thành phố.
Các chủ bãi trông giữ xe thì không quản lý được số lượng xe véngày vào ra, nên chưa tối ưu được hiệu quả, năng suất sử dụng Nếutối ưu được việc giám sát thu phí quản lý vé lượt và vé tháng, chủ đầutư sẽ tính toán hiệu quả sử dụng và bài toán tái đầu tư nâng cấp mởrộng hệ thống hoặc giảm giá thành vé trông xe Đồng thời giúp tăngnăng suất có chỗ đỗ xe cho người dùng.
Còn các bác tài, khi đi xe vào phố làm việc, thì việc tìm chỗtrông giữ xe đúng là cực hình Nhiều khi đi lòng vòng các nơi cũngkhông tìm được bãi giữ xe, nếu có tìm được thì nhiều khi cũng hết chỗđỗ Việc này gây ra rất nhiều tác động: Làm tắc đường thêm, tốn thêmchi phí xăng xe, gây thêm hiệu ứng lên môi trường Từ các nhu cầutrên, nhóm thiết nghĩ cần Xây dựng một giải pháp tổng thể toàn diện:Ứng dụng quản lý đổ xe.
Trang 3
LỜI CẢM ƠN
Để thực hiện và hoàn thành tốt đồ án này, em đã nhận được sự giúp đỡvà hướng dẫn rất tận tình của các thầy cô thuộc Khoa Công Nghệ Thông TinVà Truyền Thông – Đại Học Đà Nẵng Em xin cảm ơn các thầy cô thuộc bộmôn chuyên ngành đã cung cấp cho chúng em các thông tin, kiến thức vô cùngquý báu và cần thiết trong suốt thời gian qua để em có thể thực hiện và hoànthành đồ án của mình Đặc biệt em xin chân thành cảm ơn thành Thầy Ths.Trần Đình Sơn người đã trực tiếp hướng dẫn chúng em trong thời gian thựchiện đồ án này.
Cuối cùng, xin chân thành cảm ơn các bạn trong ngành công nghệ thôngtin đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được giúpchúng em trong quá trình nghiên cứu và thực hiện đề tài.
Do giới hạn về mặt thời gian và kiến thức cũng như kinh nghiệm thựctiễn nên đề tài không tránh khỏi những sai xót Em rất mong nhận được sựthông cảm của quý thầy cô và mong đón nhận những góp ý của thầy cô và cácbạn
Em xin chân thành cảm ơn!
Trang 5
MỤC LỤCChương 1 Giới thiệu 7
1.1 Giới thiệu đề tài 7
Chương 3 Phân tích thiết kế hệ thống 14
3.1 Sơ đồ Use Case 14
3.1.1 Sơ đồ Use case Người sử dụng 14
3.1.2 Sơ đồ Use case Người quản lý 14
3.2 Use Case 14
3.3 Mô tả use case 15
3.3.1 Mô tả use case Người sử dụng 15
3.3.2 Mô tả use case Người quản lý 19
3.4 Biểu đồ hoạt động 20
3.4.1 Biểu đồ hoạt động của Người sử dụng 20
3.4.2 Biểu đồ hoạt động của Người quản lý 25
3.5 Biểu đồ lớp 28
Chương 4 Triển khai xây dựng 29
4.1 Thiết kế giao diện trang quản trị 29
4.1.1 Giao diện trang quản lý bãi đậu xe 29
4.1.2 Giao diện trang thêm bãi đậu xe 29
4.1.3 Giao diên trang cập nhật thông tin bãi đậu xe 30
Trang 64.2 Thiết kế cơ sở dữ liệu 31
4.2.1 Xác định thực thể 31
4.2.2 Xác định các thuộc tính của các thực thể ( đối tượng ) 31
4.2.3 Cấu trúc cơ sở dữ liệu 32
4.3 Thiết kế ứng dụng Smart Parking 33
4.3.1 Giao diện màn hình Đăng ký 33
4.3.2 Giao diện màn hình Đăng nhập 34
4.3.3 Giao diện màn hình Chọn khu vực đang sống 34
4.3.4 Giao diện màn hình Trang chủ 35
4.3.5 Giao diện màn hình danh sách bãi đậu xe 36
4.3.6 Giao diện màn hình Xem chi tiết một bãi đậu xe 38
4.3.7 Giao diện màn hình Chỉ đường 39
4.3.8 Giao diện màn hình Tài khoản 40
4.3.9 Giao diện màn hình Cập nhật thông tin cá nhân 41
4.3.10 Giao diện màn hình Cập nhật lại mật khẩu 42
4.4 Thiết kế và lắp rap mạch 43
Chương 5 Kết luận và Hướng phát triển 44
Trang 7Chương 1 Giới thiệu1.1Giới thiệu đề tài
Trong thời đại công nghệ 4.0 hiện nay, mọi thứ đều có thể giải quyếtdễ dàng hơn khi được áp dụng công nghệ vào Thế nhưng vẫn có một vấnđề nan giải mà các tài xế gặp phải, đó là tìm kiếm chỗ đổ xe trong thànhphố khiến họ rất đau đầu và tốn thời gian Từ vấn đề thực tiễn đó, nhómđã nảy lên ý tưởng phát triển hệ thống "Ứng dụng quản lý bãi đậu xeSmart Parking" giúp các tài xế có thể tìm kiếm chỗ đổ xe còn trống gầnnhất thông qua chiếc smartphone mà không mất nhiều thời gian công sức.
Dưới đây là sơ đồ tổng quát của hệ thống:
Hình 1: Sơ đồ tổng quát của hệ thống.
1.2Phương pháp, kết quả
1.2.1 Phương pháp.
Để thực hiện dự án, nhóm đã sử dụng các phương pháp sau:- Phương pháp nghiên cứu hệ thống, phương pháp tư duy.- Phương pháp phân tích, tổng hợp: mục đích để chứng minh
từng luận điểm trong đề tài thêm phần thuyết phục.
Trang 8- Phương pháp tin học hóa bằng công cụ lập trình để giảiquyết vấn đề đã được phân tích và xây dựng giải pháp.
- Lắp rap các mạch để hoàn thiện phần cứng.1.2.2 Kết quả đạt được.
Kết quả đạt được của dự án sau khi hoàn thành:
- Làm ra ứng dụng giúp người dùng có thể tìm kiếm được bãiđổ xe nhanh cho mình mà không mất nhiều thời gian.
- Người dùng có thể dùng smartphone để tìm kiếm chỗ đổ xecòn trống gần nhất mà không mất thời gian đưa xe đi tìm chỗgửi.
1.3.1 Ưu điểm.
Các ưu điểm của Smart Parking:
- Tìm được chỗ đổ xe nhanh chóng, chính xác.- Ứng dụng dễ sử dụng, giao diện ưa nhìn.
- Có thể chạy trên nhiều nền tảng mobile: IOS, Android…1.3.2 Nhược điểm.
Các nhược điểm của Smart Parking:
- Hệ thống mới được xây dựng nên có thể sai xót những lỗi hệthống.
- Hệ thống bãi đậu xe đăng ký còn ít.- Cộng đồng người dùng chưa rộng rãi.
1.4Cấu trúc đồ án
Các thành phần trong bài báo cáo:- Nghiên cứu tổng quan.- Phân tích thiết kế hệ thống.
Trang 9- Triển khai xây dựng.
- Kết luận và hướng phát triển.
Chương 2 Nghiên cứu tổng quan2.1Các dự án tương tự
Các dự án tương tự:- Smart Parking.- Iparking.- MyParking.- Pakme.
2.2Các phần mềm lập trình
Sau khi tìm hiểu các dự án tương tự nhóm thấy được sự nổi bật củaba phần mềm được ứng dụng để phát triển ứng dụng IOT là:
- Android Studio.- Arduino.
Trang 10HTML không những cho phép nhúng thêm các đối tượng hình ảnh,âm thanh mà còn cho phép nhúng các kịch bản vào trong đó như các ngônngữ kịch bản như Javascript để tạo hiệu ứng động cho trang web Đểtrình bày trang web hiệu quả hơn thì HTML cho phép sử dụng kết hợpvới CSS
2.3.2 Ngôn ngữ CSS.
CSS (Cascading Style Sheets) là một ngôn ngữ quy định cách trình cho các tài liệu viết bằng HTML, XHTML, XML, SVG, hay UML,…CSSquy định cách hiển thị của các thẻ HTML bằng cách quy định các thuộctính của các thẻ đó (font chữ, kích thước, màu sắc ) CSS có cấu trúcđơn giản và sử dụng các từ tiếng anh để đặt tên cho các thuộc tính CSSkhi sử dụng có thể viết trực tiếp xen lẫn vào mã HTML hoặc tham chiếutừ một file css riêng biệt Hiện nay CSS thường được viết riêng thànhmột tập tin với mở rộng là “.css” Chính vì vậy mà các trang web có sửdụng CSS thì mã HTML sẽ trở nên ngắn gọn hơn Ngoài ra có thể sửdụng một tập tin CSS đó cho nhiều website tiết kiệm rất nhiều thời gianvà công sức Một đặc điểm quan trọng đó là tính kế thừa của CSS do đósẽ giảm được số lượng dòng code mà vẫn đạt được yêu cầu
2.3.3 Ngôn ngữ lập trình PHP.
PHP: Hypertext Preprocessor, thường được viết tắt thành PHP làmột ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùngđể phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng chomục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúngvào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độnhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựngsản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đãnhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thếgiới.
Trang 112.3.4 Ngôn ngữ lập trình JavaScript.
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trìnhthông dịch được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ nàyđược dùng rộng rãi cho các trang web (phía người dùng) cũng như phíamáy chủ (với Nodejs) Nó vốn được phát triển bởi Brendan Eich tại Hãngtruyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tênthành LiveScript, và cuối cùng thành JavaScript Giống Java, JavaScriptcó cú pháp tương tự C, nhưng nó gần với Self hơn Java .js là phần mởrộng thường được dùng cho tập tin mã nguồn JavaScript.
2.3.5 Ngôn ngữ lập trình Java.
Java (phiên âm Tiếng Việt: "Gia-va") là một ngôn ngữ lập
trình hướng đối tượng (OOP) và dựa trên các lớp (class)[9] Khác với
phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã
nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết
kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi
trường thực thi (runtime environment) chạy.
Trước đây, Java chạy chậm hơn những ngôn ngữ dịch thẳng ra mã
máy như C và C++, nhưng sau này nhờ công nghệ "biên dịch tại chỗ"
-Just in time compilation, khoảng cách này đã được thu hẹp, và trong mộtsố trường hợp đặc biệt Java có thể chạy nhanh hơn Java chạy nhanh hơn
những ngôn ngữ thông dịch như Python, Perl, PHP gấp nhiều lần Javachạy tương đương so với C#, một ngôn ngữ khá tương đồng về mặt cú
pháp và quá trình dịch/chạy.
Cú pháp Java được vay mượn nhiều từ C & C++ nhưng có cú pháphướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đóviệc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn côngsửa lỗi hơn Nhưng về lập trình hướng đối tượng thì Java phức tạp hơn.
Trang 122.3.6 Ngôn ngữ lập trình C.
Ngôn ngữ lập trình C là một ngôn ngữ mệnh lệnh được phát triển từđầu thập niên 1970 bởi Dennis Ritchie để dùng trong hệ điều hành UNIX.Từ đó, ngôn ngữ này đã lan rộng ra nhiều hệ điều hành khác và trở thànhmột những ngôn ngữ phổ dụng nhất C là ngôn ngữ rất có hiệu quả vàđược ưa chuộng nhất để viết các phần mềm hệ thống, mặc dù nó cũngđược dùng cho việc viết các ứng dụng Ngoài ra, C cũng thường đượcdùng làm phương tiện giảng dạy trong khoa học máy tính mặc dù ngônngữ này không được thiết kế dành cho người nhập môn.
C là một ngôn ngữ lập trình tương đối nhỏ gọn vận hành gần vớiphần cứng và nó giống với ngôn ngữ Assembler hơn hầu hết các ngônngữ bậc cao Hơn thế, C đôi khi được đánh giá như là "có khả năng diđộng", cho thấy sự khác nhau quan trọng giữa nó với ngôn ngữ bậcthấp như là Assembler, đó là việc mã C có thể được dịch và thi hànhtrong hầu hết các máy tính, hơn hẳn các ngôn ngữ hiện tại trong khi đóthì Assembler chỉ có thể chạy trong một số máy tính đặc biệt Vì lý donày C được xem là ngôn ngữ bậc trung.
C đã được tạo ra với một mục tiêu là làm cho nó thuận tiện để viếtcác chương trình lớn với số lỗi ít hơn trong mẫu hình lập trình thủ tục màlại không đặt gánh nặng lên vai người viết ra trình dịch C, là nhữngngười bề bộn với các đặc tả phức tạp của ngôn ngữ.
2.4Cơ sở dữ liệu Firebase Realtime Database
Firebase Realtime Database là một cơ sở dữ liệu NoSQL được lưutrữ đám mây cho phép bạn lưu trữ và đồng bộ dữ liệu Dữ liệu được lưutrữ dưới dạng JSON và được đồng bộ hóa theo thời gian thực cho mọimáy kết nối.
Trang 13Khi bạn xây dựng các ứng dụng đa nền tảng với SDK iOS, Androidvà JavaScript, tất cả các client của bạn sẽ chia sẻ một phiên bản RealtimeDatabase và tự động cập nhật với dữ liệu mới nhất Do đó đối với cácứng dụng di động yêu cầu trạng thái đồng bộ hóa giữa các máy trong thờigian thực thì đây là một giải pháp hiệu quả và có độ trễ thấp.
2.5Các chức năng hệ thống
2.5.1 Chức năng cho khách hàng.Các chức năng dành khách hàng:
- Xem danh sách các bãi đậu xe.- Xem các bãi đậu xe trên bản đồ.- Xem chi tiết của một bãi đậu xe.
- Xem chỉ đường đến từ vị trí khách hàng tới bãi đậu xe.- Đăng ký tài khoản.
- Đăng nhập.- Đăng xuất
2.5.2 Chức năng cho người quản lý.
Các chức năng dành cho người quản trị:
- Quản lý danh sách bãi đổ xe ( Thêm, sửa, xóa …).- Quản lý khách hàng.
- Đăng nhập.- Đăng xuất.
Vì kết quả nghiên cứu cuối cùng là tạo ra một sản phẩm áp dụng chothực tế, nên nhóm đã rất cẩn thận và nghiên cứu kỹ càng Độ chính xác,bền bỉ nhằm đáp ứng nhu cầu của người dùng.
Trang 14Chương 3 Phân tích thiết kế hệ thống3.1Sơ đồ Use Case
3.1.1 Sơ đồ Use case Người sử dụng.
Hình 2: Sơ đồ use case của người sử dụng.3.1.2 Sơ đồ Use case Người quản lý.
Hình 3: Sơ đồ use case của Người quản lý
- Người sử dụng:
Trang 15+ Đăng nhập/ Đăng ký/Đăng xuất.+ Hiển thị các bãi đỗ xe trên bản đồ.+ Xem danh sách các bãi đổ xe.
+ Xem thông tin chi tiết của một bãi đổ xe.+ Xem thông tin cá nhân.
+ Cập nhật thông tin cá nhân.+ Chỉ đường.
+ Hiển thị trạng thái.
- Người quản lý:
+ Đăng nhập/ Đăng ký/Đăng xuất.+ Quản lý danh sách các bãi đậu xe.+ Quản lý danh sách khách hàng.
3.3Mô tả use case
3.3.1 Mô tả use case Người sử dụng.
Trang 16- Dữ liệu vào: Tên, giới tính, địa chỉ đang sống, tuổi, tàikhoản và mật khẩu.
o Hiển thị các bãi đổ xe trên bản đồ
- Mô tả: Hiển thị các bãi đổ xe trên bản đồ, và vị trí hiện tạicủa người dùng.
- Tác nhân: Người sử dụng.- Dữ liệu vào:
+ Địa chỉ người dùng.
+ Quyền cho phép bật ví trị người dùng.+ Các bãi đổ xe đăng ký với Smart Parking.- Kết quả:
+ Hiển thị chính xác vị trí các bãi đổ xe xung quanh vị trícủa người dùng nếu cho phép bật vị trí.
+ Hiển thị các bãi đổ xe trên bản đồ tại trung tâm thành phốngười dùng đã cung cấp trước nếu người dùng không chophép quyền bật vị trí.
- Quá trình xử lý: Đăng nhập => Chọn khu vực đang sống =>Giao diện bản đồ các bãi đổ xe.
o Xem danh sách các bãi đổ xe
Trang 17- Mô tả: Hiển thị các bãi đổ xe đã đăng ký với Smart Parking.- Kết quả:
+ Hiển thị danh sách tất cả bãi đổ xe nếu người dùng chọn.+ Không hiển thị danh sách nếu người dùng không chọn.- Quá trình xử lý: Đăng nhập => Chọn xem danh sách =>
Xem danh sách bãi đổ xe
o Xem thông tin chi tiết của một bãi đổ xe.
- Mô tả: Khi người dùng chọn bãi đổ xe trên bản đồ Sau đóhiển thị thông tin chi tiết của bãi đổ xe đó ( sức chứa, số ôcòn trống, địa điểm, giá cả… ).
- Tác nhân: Người sử dụng.- Dữ liệu vào: ID của bãi đổ xe.- Kết quả:
+ Hiển thị thông tin chi tiết một bãi đổ xe nếu người dùngđã chọn trên bản đồ, hoặc chọn bãi đỗ xe đó trong danh sáchbãi đổ xe.
+ Không hiển thị nếu người dùng không chọn.
- Quá trình xử lý: Đăng nhập => Chọn khu vực => Xem cácbãi đổ xe => Chọn vào tên của bãi đổ xe => Thông tin chitiết bãi đổ xe.
o Sửa thông tin cá nhân
- Mô tả: Hiển thị form để cập nhật lại thông tin cá nhân.- Tác nhân: Người sử dụng.
- Dữ liệu vào:+ ID người dùng.+ Nội dung sửa.
- Kết quả: Cập nhật lại thông tin của người dùng.
Trang 18- Quá trình xử lý: Đăng nhập => Xem thông tin cá nhân =>Hiển thị form thông tin => Cập nhật lại những thông tinngười dùng sửa.
o Chỉ đường
- Mô tả: Chỉ đường từ vị trí của người dùng đền vị trí bãi đỗxe mà đường dùng đã chọn.
- Tác nhân: Người sử dụng.- Dữ liệu vào:
+ Vị trí người dùng.+ Vị trí bãi đổ xe.- Kết quả:
+ Hiển thị chỉ đường trên bản đồ nếu người dùng chọn vàochỉ đường trong chi tiết của một bãi đỗ xe.
+ không hiển thị chỉ đường nếu người dùng không chọn vàochỉ đường trong chi tiết của một bãi đỗ xe.
Trang 19- Quá trình xử lý: Chi tiết bãi đỗ xe => Chọn chỉ dường =>Hiển thị chỉ đường của hai vị trí trong bản đồ.
3.3.2 Mô tả use case Người quản lý.
o Quản lý danh sách các bãi đậu xe
- Mô tả: Quản lý danh sách các bãi đổ xe: thêm, sửa, xóa…- Tác nhân: Người quản lý.
Trang 203.4.1 Biểu đồ hoạt động của Người sử dụng.
o Biểu đồ hoạt động cho use case Đăng nhập
Hình 4: Biểu đồ hoạt động cho use Đăng nhập.
Trang 21o Biểu đồ hoạt động cho Use case Đăng ký
Hình 5: Biểu đồ hoạt động của Use case Đăng ký
o Biểu đồ hoạt động của Use case Đăng xuất
Hình 6: Biểu đồ hoạt động của Use case Đăng xuất
Trang 22o Biểu đồ hoạt động của Use case Hiển thị các bãi đổ xe trên bản đồ
Hình 7: Biểu đồ hoạt động của Use case HIển thị các bãi đổ xe trên bản đồ
o Biểu đồ hoạt động của Use case Xem danh sách các bãi đổ xe
Hình 8: Biểu đồ hoạt động của Use case Xem danh sách bãi đổ xe.