VIỆN ĐẠI HỌC MỞ HÀ NỘI Cộng hòa xã hội chủ nghĩa Việt Nam Hà Nội, ngày 03 tháng 01 năm 2016 NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP Tên đề tài: Xây dựng hệ thống quản lý dịch vụ vận chuyển hàng h
Trang 1VIỆN ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội - 2016
Chuyên ngành: Công nghệ Thông tin
XÂY DỰNG HỆ THỐNG QUẢN LÝ DỊCH VỤ VẬN CHUYỂN
Trang 2VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội - 2016
Giảng viên hướng dẫn:
TS Đinh Tuấn Long
ĐỖ KHÁNH TÙNG
XÂY DỰNG HỆ THỐNG QUẢN LÝ VẬN CHUYỂN HÀNG HÓA
CÔNG CỘNG Chuyên ngành: Công nghệ Thông tin
Trang 3VIỆN ĐẠI HỌC MỞ HÀ NỘI Cộng hòa xã hội chủ nghĩa Việt Nam
Hà Nội, ngày 03 tháng 01 năm 2016
NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
Tên đề tài: Xây dựng hệ thống quản lý dịch vụ vận chuyển hàng hóa công
cộng
Giảng viên hướng dẫn: TS Đinh Tuấn Long
Xây dựng được hệ thống quản lí dịch vụ vận chuyển hàng hóa công cộng để:
- Hệ thống xử lý lưu trữ dữ liệu trên server khi nhận được thông tin khách hàng từ ứng dụng gửi lên
- Hệ thống quản lý thông tin khách hàng và lái xe khi đã đăng ký tài khoản, thuận tiện cho việc tra cứu, tìm kiếm
- Quản lý được về các đơn đặt xe và hàng hóa của khách hàng Trong mỗi phần quản lý, sẽ có các chức năng sắp xếp, tìm kiếm theo từng mục đích khác nhau
- Ngoài ra người quản lý cũng nắm được về các loại phương tiện hiện đang có trên hệ thống, hay các phương tiện đã đăng ký của lái xe
- Sử dụng ngôn ngữ lập trình PHP, Joomla Framework để xây dựng giao diện và các chức năng quản trị của website
- Cơ sở dữ liệu dùng Mysql để thao tác với cơ sở dữ liệu
Trang 4Nội dung và đề cương đồ án đã được Hội đồng chuyên ngành thông qua ngày
17 tháng 12 năm 2015
Trang 5LỜI NÓI ĐẦU Hiện nay, việc vận chuyển hàng hóa là một nhu cầu rất thực tế ở các khu vực thành phố có nhiều dân cư Các nhu cầu về việc di chuyển hàng hóa từ nơi này đến nơi khác, việc vận chuyển những đồ đạc kích thước lớn cần đến những phương tiện chuyên chở
Hiện nay với việc phát triển mạnh về các ứng dụng di dộng trên điện thoại thông minh, người dùng có thể tải và cài đặt để sử dụng ứng dụng một cách nhanh chóng và thuận tiện
Trên hệ thống quản lý, những thông tin về đơn đặt xe, thông tin khách hàng, hàng hóa, ngày giờ sẽ được lưu trữ để phục vụ cho người quản lý cũng như cần cho công ty sử dụng sau này Hiện nay, một số công ty vẫn sử phương pháp thủ công như lưu trữ qua giấy tờ, sổ sách,… Điều này cũng dễ xảy ra việc mất mát dữ liệu, không chính xác thông tin Khi cần tìm lại đơn đặt hàng hay thông tin khách hàng đã từng sử dụng dịch vụ với công ty sẽ rất khó khăn
và mất thời gian Chính vì thế, sự ra đời của các phần mềm hỗ trợ quản lý cũng phát triển theo, giúp phục vụ và đáp ứng nhiều cho con người làm việc hiệu quả hơn, đỡ tốn công sức hơn Giúp việc quản lý công việc chặt chẽ hơn, chống được những thất thoát về tư liệu, tài chính cũng như hàng hóa của khách hàng
Mục đích của luận án này là cung cấp một hệ thống quản lý được những vấn
đề khi vận chuyển hàng hóa như khách hàng, hàng hóa, đơn đặt hàng, các phương tiện vận chuyển
Trang 6MỤC LỤC
Chương 1 CƠ SỞ LÝ THUYẾT CỦA ĐỒ ÁN 1
1 Giới thiệu chung 1
1.1 Giới thiệu ngôn ngữ lập trình PHP 1
1.2 Giới thiệu mã nguồn mở Joomla 10
2 Thư viện và phần mềm sử dụng: 16
Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 17
1 Định nghĩa bài toán 17
2 Đối tượng sử dụng 19
3 Cây phân rã chức năng 20
4 Phân tích thiết kế 21
Chương 3 THIẾT KẾ HỆ THỐNG 33
1 Thiết kế cơ sở dữ liệu 33
2 Mô hình quan hệ 42
Chương 4 GIAO DIỆN 44
1 Giao diện hệ thống quản lý 44
2 Giao diện ứng dụng trên mobile 55
Trang 7Từ đó xây dựng hệ thống quản lý hàng hóatrên server dựa trên kiến thức đã tìm hiểu được
Trang 8DANH MỤC CHỮ VIẾT TẮT
Management System
“Hệ thống quản trị nội dung nhằm mục đích giúp dễ dàng quản lý, chỉnh sửa nội dung Nội dung ở đây
có thể là tin tức điện tử, báo chí hay các media hình ảnh, video, ” [1]
2
3
4
5
Trang 9DANH MỤC BẢNG
Bảng 3.1 Đặc tả cơ sở dữ liệu bảng Order 32
Bảng 3.2 Đặc tả cơ sở dữ liệu bảng Customer 33
Bảng 3.3 Đặc tả cơ sở dữ liệu bảng Customer_doc 34
Bảng 3.4 Đặc tả cơ sở dữ liệu bảng User 35
Bảng 3.5 Đặc tả cơ sở dữ liệu bảng Package 37
Bảng 3.6 Đặc tả cơ sở dữ liệu bảng Vehicle 38
Bảng 3.7 Đặc tả cơ sở dữ liệu bảng Vehicle_type 39
Bảng 3.8 Đặc tả cơ sở dữ liệu bảng Transaction 40
Trang 10DANH MỤC HÌNH VẼ
Hình 1.1 Giới thiệu về PHP 1
Hình 1.2.Hoạt động của PHP 7
Hình 1.3.Mô hình Client/Server 8
Hình 1.4.Mô hình MVC 11
Hình 1.5.Giới thiệu về RESTful API 13
Hình 2.1 Sơ đồ phân rã chức năng BFD 20
Hình 2.2 Sơ đồ luồng dữ liệu mức khung cảnh 21
Hình 2.3 Sơ đồ luồng dữ liệu mức đỉnh 22
Hình 2.4 Sơ đồ luồng dữ liệu mức đỉnh Quản lí Client 22
Hình 2.5 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Đăng nhập/Đăng kí” 23
Hình 2.6 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Đặt xe” 24
Hình 2.7 Sơ đồ luồng dữ liệu mức đỉnh Quản lí Server 25
Hình 2.8 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý đặt xe” 26
Hình 2.9 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý khách hàng” 27
Hình 2.10 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý phương tiện” 28
Hình 2.11 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý loại phương tiện” 29
Hình 2.12 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý hàng hóa”30 Hình 2.13 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Quản lý giá” 30
Hình 2.14 Sơ đồ luồng dữ liệu mức dưới đỉnh chức năng “Thống kê” 31
Hình 3.1 Cơ sở dữ liệu bảng Order 33
Hình 3.2 Cơ sở dữ liệu bảng Customer 34
Trang 11Hình 3.3 Cơ sở dữ liệu bảng Customer_doc 35
Hình 3.4 Cơ sở dữ liệu bảng User 36
Hình 3.5 Cơ sở dữ liệu bảng Package 37
Hình 3.6 Cơ sở dữ liệu bảng Vehicle 38
Hình 3.7 Cơ sở dữ liệu bảng Vehicle_type 40
Hình 3.8 Cơ sở dữ liệu bảng Transaction 40
Hình 3.9 Sơ đồ cơ sở dữ liệu 41
Trang 12Chương 1 CƠ SỞ LÝ THUYẾT CỦA ĐỒ ÁN
1 Giới thiệu chung
1.1 Giới thiệu ngôn ngữ lập trình PHP
PHP - viết tắt hồi quy của "Hypertext Preprocessor", là một ngôn ngữ lập trình kịch bản được chạy ở phía Server nhằm sinh ra mã html trên client PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools' Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
Hình 1.1.Giới thiệu về PHP
Trang 13PHP/FI
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản
và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước
đó Lý do chính mà họ đã tạo ra phiên bản này là do họ nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác
và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Trang 14Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và
đề xuất các mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0 Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của
"PHP: Hypertext Preprocessor"
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các
Trang 15cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế
để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người
sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL
và tài liệu kĩ thuật cho PHP
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1
và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev
và Andi viết Zend Engine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot
Trang 16đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì
đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta
4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL
PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố
Trang 17rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện PECL
Hiện nay, PHP đã trải qua rất nhiều phiên bản và được tối ưu hóa cho các ứng dụng web, với cách viết mã rõ rãng, tốc độ nhanh, dễ học nên PHP đã trở thành một ngôn ngữ lập trình web rất phổ biến và được ưa chuộng
PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux (LAMP)
• Apache là một phần mềm web server có nhiệm vụ tiếp nhận yêu cầu từ trình duyệt người dùng sau đó chuyển giao cho PHP xử lý và gửi trả lại cho trình duyệt
• MySQL cũng tương tự như các hệ quản trị cơ sở dữ liệu khác (Postgress, Oracle, SQL server ) đóng vai trò là nơi lưu trữ và truy vấn dữ liệu
• Linux: Hệ điều hành mã nguồn mở được sử dụng rất rộng rãi cho các webserver Thông thường các phiên bản được sử dụng nhiều nhất là RedHat Enterprise Linux, Ubuntu
- PHP hoạt động như thế nào?
Khi người sử dụng gọi trang PHP, Web Server sẽ triệu gọi PHP Engine để thông dịch trang PHP và trả kết quả cho người dùng như hình bên dưới
Trang 18Hình 1.2.Hoạt động của PHP
Giới thiệu về mô hình Client-Server
Thuật ngữ server được dùng cho những chương trình thi hành như một dịch
vụ trên toàn mạng Các chương trình server này chấp nhận tất cả các yêu cầu hợp lệ đến từ mọi nơi trên mạng, sau đó nó thi hành dịch vụ và trả kết quả về máy yêu cầu
Một chương trình được coi là client khi nó gửi các yêu cầu tới máy có chương trình server và chờ đợi câu trả lời từ server Chương trình server và client nói chuyện với nhau bằng các thông điệp (messages) thông qua một cổng truyền thông liên tác IPC (Interprocess Communication) Để một chương trình server
và một chương trình client có thể giao tiếp được với nhau thì giữa chúng phải
Trang 19có một chuẩn để nói chuyện, chuẩn này được gọi là giao thức Nếu một chương trình client nào đó muốn yêu cầu lấy thông tin từ server thì nó phải tuân theo giao thức mà server đó đưa ra
Một máy tính chứa chương trình Server dược coi là máy chủ hay máy phục vụ (Server) và máy chứa chương trình Client là máy khách mô hình trên mạng
mà các máy chủ và máy khách giao tiếp với nhau theo một hoặc nhiều dịch vụ được gọi là mô hình Client/Server
Mô hình Client/Server
Thực tế mô hình Client/Server là sự mở rộng tự nhiên và tiện lợi cho việc truyền thông tiến trình trên các máy tính cá nhân, mô hình này cho phép xây dựng các chương trình Client/Server một cách dễ dàng và sử dụng chúng để liên lạc vứi nhau đạt hiệu quả hơn Mô hình Client/Server như sau:
Hình 1.3.Mô hình Client/Server Đây là mô hình tổng quát nhất, trên thực tế thì Server có thể được nối với nhiều Server khác nhằm làm việc hiệu quả và nhanh chóng hơn Khi nhận được yêu cầu từ Server này có thể gửi tiếp yêu cầu vừa nhận được cho một Server khác ví dụ như database Server vì bản thân nó không thể xử lí yêu cầu này được
Trang 20Với mô hình trên thì mô hình Client/Server chỉ mang đặc điểm của phần mềm không liên quan đến phần cứng mặc dù trên thực tế yêu cầu cho một máy Server là cao hơn rất nhiều so với máy Client Lý do bởi vì máy Server phải quản lý rất nhiều các yêu cầu từ các Client khác nhau trên mạng máy tính
Trong mô hình Client/Server, người ta còn định nghĩa cụ thể cho một máy client là một máy trạm mà chỉ được sử dụng bởi 1 người dùng với để muốn thể hiện tính độc lập cho nó Máy client có thể sử dụng các hệ điều hành bình thường như Win9x, DOS, OS/2 Bản thân mỗi một client cũng đã được tích hợp nhiều chức năng trên hệ điều hành mà nó chạy, nhưng khi được nối vào một mạng LAN, WAN theo mô hình client/server thì nó còn có thể sử dụng thêm các chức năng do hệ điều hành mạng (NOS) cung cấp với nhiều dịch vụ khác nhau (cụ thể là các dịch vụ do các server trên mạng này cung cấp), ví dụ như nó có thể yêu cầu lấy dữ liệu từ một server hay gửi dữ liệu lên server đó Thực tế trong các ứng dụng của mô hình client/server, các chức năng hoạt động chính là sự kết hợp giữa client và server với sự chia sẻ tài nguyên, dữ liệu trên cả 2 máy Vai trò của client Trong mô hình client/server, client được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ
Trang 21cung cấp và server đượ
cầu của các clients Đi
nó trong một mô hình c
server trong một mô hình khác Ví d
một client bình thường trong m
phép bạn xây dựng các trang web và các
Nhiều khía cạnh, bao g
ợc coi như là người cung cấp dịch vụ để
ều quan trọng là phải hiểu được vai trò ho
t mô hình cụ thể, một máy client trong mô hình này l
t mô hình khác Ví dụ cụ thể như một máy trạm làm vi
ng trong mạng LAN nhưng đồng thời nó có th
ủ (printer server) cung cấp dịch vụ in ấn từ
ử dụng Client được hiểu như là bề nổi củ
u có thông tin vào hoặc ra thì chúng sẽ được hiể
ã nguồn mở Joomla
Hình 1.4.Giới thiệu về CMS Joomla
ng quản lý nội dung được trao giải thưởng (CMS), cho
ng các trang web và các ứng dụng trực tuy
nh, bao gồm cả việc dễ sử dụng và mở rộng của nó
trả lời các yêu
c vai trò hoạt động của
t máy client trong mô hình này lại có thể là
Trang 22Joomla! trở thành các phần mềm trang web phổ biến nhất Cái tốt nhất, Joomla là một giải pháp mã nguồn mở đó là tự do có sẵn cho tất cả mọi người [2]
Joomla được sử dụng trên khắp thế giới đến các trang web điện Web của tất
cả các hình dạng và kích cỡ Ví dụ như:
- Các trang web của công ty hoặc cổng thông tin;
- Mạng nội bộ của công ty và Extranet;
- Trực tuyến tạp chí, báo chí, và các ấn phẩm;
- Thương mại điện tử và đặt phòng trực tuyến;
- Ứng dụng chính phủ;
- Website doanh nghiệp nhỏ;
- Phi lợi nhuận và các trang web tổ chức;
- Cổng thông tin dựa vào cộng đồng;
- Trang web trường học;
- …
Mô hình MVC trong Joomla
Trang 23MVC là viết tắt của Model
Model: Là thành phần chịu trách nhiệm xử lý các thao tác trên Database
thông qua View
ển thị thông tin trên website, sau khi đi qua Controller
từ phía model thì View là bước cuối cùng
lý các thao tác trên Database
đi qua Controller
i cùng để chuyển
Trang 24- Controller: Là phần điều hướng các yêu cầu tới những tác vụ tương ứng Controller là một phần không thể thiếu ở bất cứ framework nào Vì nó có trách nhiệm gửi và nhận yêu cầu từ hệ thống tới người sử dụng
Phát triển các extension với Joomla
Joomla Extensions là các thành phần mở rộng của Joomla, đó là các gói ứng dụng được phát triển bởi Joomla! hoặc các hãng thứ ba nhằm bổ sung và tăng cường tính năng cho Joomla! giúp người sử dụng nhanh chóng triển khai một
hệ thống website phức tạp với nhiều chức năng, dịch vụ khác nhau
- Các loại Extension Joomla
+ Component: Đây là ứng dụng thực hiện một chức năng lớn (tương tác với người sử dụng ở mức cao) VD như: Quản lý tin bài, quản lý quảng cáo, quản lý sản phẩm, quản lý download
+ Module: Chủ yếu nhằm mục đích hiển thị thông tin (tương tác với người
sử dụng ở mức thấp) VD như: tin mới nhất, tin đọc nhiều nhất, đếm số lượt truy cập
+ Plugin: Nhằm thực hiện những chức năng đặc biệt hoặc giúp tự động hóa một số quy trình, công đoạn VD như: Cung cấp trình soạn thảo, xử lý chứng thực quyền hạn, tự động thay thế các đoạn mã chèn video, flash, mp3
+ Template: Gói giao diện tạo nên bố cục và hình hài của Website
+ Language: Gói ngôn ngữ bản địa
+ Tools: Các công cụ hỗ trợ khác
Trang 25Giới thiệu về RESTful API
Hình 1.5.Giới thiệu về RESTful API
REST (Representational State Transfer) đã được chọn sử dụng rộng rãi thay cho Web service dựa trên SOAP và WSDL
REST không thu hút được nhiều sự chú ý khi lần đầu tiên giới thiệu vào năm
2000 bởi Roy Fielding trong luận án của ông "Architectural Styles and the Design of Network-based Software Architectures" (Phong cách kiến trúc và thiết kế kiến trúc phần mềm dựa trên mạng) tại Đại học California
Một số nguyên tắc cơ bản khi thiết kế :
• Sử dụng các phương thức HTTP một cách rõ ràng
• Phi trạng thái
• Hiển thị cấu trúc thư mục như URls
• Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai
Một đặc tính quan trọng của dịch Web service RESTful là sử dụng một cách
rõ ràng các phương thức HTTP theo cách một giao thức được xác định bởi
Trang 26RFC 2616 Ví dụ HTTP GET được xác định như là một phương thức sinh ra
số liệu được sử dụng có chủ đích bởi các ứng dụng người dùng để thu thập tài nguyên, dữ liệu từ một máy chủ, hoặc thực thi một truy vấn mà máy chủ sẽ tìm kiếm và phản hồi cùng với một gói thông tin tương thích
REST yêu cầu các nhà phát triển sử dụng phương thức HTTP một cách rõ ràng theo cách tương thích với giao thức chuẩn Nguyên lý thiết kế REST cơ bản này thiết lập một ánh xạ 1-1 giữa các hành động tạo, đọc, cập nhật và xoá (CRUD) các quá trình vận hành và các phương thức HTTP Theo cách ánh xạ này thì:
• Để tạo một tài nguyên trên máy chủ, bạn cần sử dụng phương thức POST
• Để truy xuất một tài nguyên, sử dụng GET
• Để thay đổi trạng thái một tài nguyên hoặc để cập nhật nó, sử dụng PUT
• Để huỷ bỏ hoặc xoá một tài nguyên, sử dụng DELETE
Một lỗ hổng trong thiết kế vốn có trong các Web API là việc sử dụng các phương thức HTTP mà không có mục đích trước Ví dụ lệnh URI trong một lệnh HTTP GET thường xác định một tài nguyên cụ thể Hoặc một chuỗi truy vấn trong một lệnh URI bao gồm một nhóm các tham số xác định tiêu chí tìm kiếm được máy chủ sử dụng để tìm các tài nguyên phù hợp Ít nhất điều này cho thấy HTTP/1.1 miêu tả GET như thế nào Nhưng có nhiều trường hợp Web APIs không được tốt lắm, do sử dụng HTTP GET để khởi động một vài tác vụ trên máy chủ — ví dụ, thêm các bản ghi vào một cơ sở dữ liệu Trong các trường hợp này, phương thức GET-yêu-cầu-URI đã không được sử dụng đúng đắn hoặc chưa sử dụng đầy đủ
Phi trạng thái
Trang 27Các Web service REST cần được điều chỉnh về quy mô để đáp ứng được các yêu cầu ngày càng cao về chất lượng thực hiện Các khu vực lưu trữ của máy chủ với khả năng cân bằng tải và vượt qua sự mất mát, các bức ngăn (tường lửa) và các cổng được sắp xếp theo một phương thức đặc thù nhằm tạo ra một cấu trúc dịch vụ bền vững cho phép chuyển tiếp yêu cầu từ một máy chủ tới máy chủ khác khi cần để giảm tổng thời gian phản hồi của một yêu cầu Web service Sử dụng máy chủ trung gian nhằm nâng cao mức yêu cầu dịch vụ mạng REST của khách hàng để gửi các yêu cầu hoàn chỉnh và độc lập, có nghĩa là gửi các yêu cầu bao gồm tất cả dữ liệu cần thiết để đáp ứng sao cho các thành phần trong các máy chủ trung gian có thể gửi tiếp đi, gửi theo tuyến
và cân bằng tải mà không cần các trạng thái được kiểm soát bên trong giữa các yêu cầu
Một yêu cầu hoàn chỉnh, độc lập không đòi hỏi máy chủ để thu thập được bất
kỳ ngữ cảnh hoặc trạng thái của ứng dụng nào trong lúc xử lý yêu cầu Một ứng dụng (hoặc máy khách) Web service RESTchứa ở phần đầu và phần thân trang HTTP của một yêu cầu tất cả các tham số, ngữ cảnh và dữ liệu cần thiết bởi thành phần bên ngoài máy chủ để đưa ra một phản hồi Phi trạng thái theo nghĩa này nâng cao tính hiệu quả của dịch vụ Web, đơn giản hoá thiết kế và
sự thi hành của các thành phần của máy chủ vì khi máy chủ không có trạng thái sẽ huỷ bỏ nhu cầu để đồng bộ hoá các mảng dữ liệu với một ứng dụng bên ngoài
Trang 28- Hệ quản trị cơ sở dữ liệu MySql
Thư viện sử dụng trong chương trình:
- Bootstrap: thư viện CSS
- Thư viện googlemap
1 Định nghĩa bài toán
Bài toán được sử dụng là áp dụng Công nghệ thông tin vào ngành dịch
vụ vận chuyển hàng hóa công cộng
Hệ thống gồm: Các chức năng về quản lý đặt xe, quản lý khách hàng, quản lý
về hàng hóa, quản lý phương tiện, quản lý loại phương tiện, quản lí thanh toán
Hiện nay, ở các khu vực thành phố có nhiều dân cư, nhu cầu về việc di chuyển hàng hóa từ nơi này đến nơi khác, việc di chuyển những đồ đạc kích thước lớn là rất cần thiết Theo các hình thức vận chuyển truyền thống, khách hàng khi có nhu cầu vận chuyển sẽ phải tìm thông tin bên cung cấp dịch vụ và liên lạc với họ, sau đó sẽ gặp trực tiếp để thương lượng và tiến hành vận chuyển
Trang 29Với thời đại phát triển mạnh mẽ về ứng dụng trên smartphone ngày càng nhiều, đã ra đời rất nhiều ứng dụng giúp ích rất nhiều cho những hoạt động của cuộc sống
Trong một ngày có thể có rất nhiều những đơn đặt xe của khách hàng Những thông tin về đơn đặt xe, thông tin khách hàng, hàng hóa, ngày giờ cần phải được lưu trữ thông qua phần mềm sẽ giúp ịch việc phục vụ cho khách hàng cũng như nhu cần cho công ty sử dụng sau này
Một số công ty hiện vẫn đang sử dụng các phương pháp thủ công như lưu trữ qua giấy tờ, sổ sách,… Điều này cũng dễ xảy ra việc mất mát dữ liệu, không chính xác Khi cần tìm lại đơn hàng hay thông tin khách hàng đã từng có sử dụng với công ty sẽ rất khó khăn và mất thời gian
Cùng với sự phát triển nhanh chóng của CNTT nói chung, các phần mềm cũng phát triển theo, phục vụ ngày càng nhiều cho con người làm việc ngày càng hiệu quả hơn, đỡ tốn công sức hơn và quản lý được công việc một cách chặt chẽ hơn, chống được những thất thoát về tư liệu, tài chính cũng như quản
lý hàng hóa Quản lý vận chuyển hàng hóa công cộng là một phần mềm như vậy
khách hàng khi thông tin đặt xe được lưu trữ một cách có hệ thống và chính xác, tăng hiệu quả trong việc vận chuyển
- Giảm thiểu tối đa sự phức tạp về mặt giấy tờ, chi phí vận chuyển so với hình thức khác, đảm bảo nhanh chóng, chính xác trong quá trình quản lý, giúp người quản trị luôn nắm được thông tin chính xác về họat động của hệ thống
Trang 30Trong phạm vi đồ án, tác giả làm toàn bộ hầu hết các chức năng chính trên server như Đăng nhập/đăng kí, Quản lý Đặt xe, Quản lý Phương tiện, Loại phương tiện, Khách hàng, Hàng hóa và Giá
• Chức năng đăng nhập: Tại đây người dùng sẽ sử dụng tài khoản để đăng nhập vào ứng dụng Nếu người dùng chưa có tài khoản thì có thể sử dụng nút register để chuyển đến giao diện đăng ký tài khoản
- Đặt xe
Người dùng sau khi đăng nhập trên ứng dụng thành công, sẽ có thể thấy được giao diện bản đồ Chỉ cần chọn địa điểm bắt đầu và kết thúc, ứng dụng sẽtự động tính toán khoảng cách và mức phí phải trả Người dùng sau khi lựa chọn địa điểm, sẽ điền thông tin về hàng hóa cần vận chuyển và thông tin cụ thể của người nhận hàng
Sau khi thanh toàn thành công, như vậy đơn đặt xe của khách hàng đã thành công Toàn bộ thông tin đặt xe sẽ được lưu trữ trên server
Người dùng quản trị: Được quản trị cấp quyền truy cập vào hệ thống quản trị để thực hiện các chức năng tương ứng với quyền của mình Một số chức năng chính là:
- Quản lý khách hàng
Trang 31Tại giao diện quản lý Khách hàng, người quản trị có thể xem tất cả thông tin
về các khách hàng đã đăng kí trên hệ thống
- Quản lý đơn đặt xe
Tại giao diện quản lý Đặt xe, người quản trị có thể xem tất cả thông tin về các đơn đặt xe thành công được lưu trữ trên hệ thống
- Quản lý phương tiện
Tại giao diện quản lý Phương tiện, người quản trị có thể quản lý tất cả thông tin về các phương tiện đã đăng tiện của lái xe trên hệ thống như tên xe, loại phương tiện, dung tích, số xe,…
- Quản lý loại phương tiện
Tại giao diện quản lý Loại phương tiện, người quản trị có thể xem tất cả thông tin về tất cả các loại phương tiện của hệ thống như tên loại phương tiện, mô
tả, hình ảnh,…
- Quản lý hàng hóa: người quản trị có thể quản lý về các loại hàng hóa có sẵn trên hệ thống Người dùng sử dụng trên ứng dụng sẽ có thể chọn hàng hóa
có sẵn trên hệ thống hoặc tự điền loại hàng hóa mới khi đặt xe
- Quản lý thanh toán: Người quản trị có thể xem tất cả thông tin về thanh toán của khách hàng
• Quản trị (Super User) Là người có quyền cao nhất, truy cập vào hệ thống để thực hiện các chức năng
3. Cây phân rã chức năng
Trang 32Hình 2.1 Sơ đồ phân rã chức năng BFD
4 Phân tích thiết kế
- Sơ đồ luồng dữ liệu mức khung cảnh
Mô tả luồng dữ liệu vào ra giữa các thành phần trong hệ thống
Hình 2.2.Sơ đồ luồng dữ liệu mức khung cảnh
Trang 33- Sơ đồ luồng dữ liệu mức đỉnh
Hình 2.3 Sơ đồ luồng dữ liệu mức đỉnh
- Sơ đồ luồng dữ liệu mức đỉnh Quản lí Client
Khách hàng khi sử dụng trên ứng dụng có thể đăng kí, đăng nhập và sử dụng ứng dụng để đặt xe Mọi thông tin về đăng kí hay đặt xe sẽ được lưu trữ toàn
bộ trên hệ thống server
Trang 34Hình 2.4 Sơ đồ luồng dữ liệu mức đỉnhQuản lí Client
• Sơ đồ luồng dữ liệu mức dưới đỉnhĐăng nhập/Đăng kí
Khách hàng có chức năng là Đăng nhập và Đăng kí
Khi đăng kí, thông tin khách hàng sẽ được lưu trữ toàn bộ lên server của hệ thống Khi đăng nhập, ứng dụng sẽ kiểm tra thông tin tài khoản với những thông tin đã đăng kí trong cơ sở dữ liệu và trả lại kết quả đăng nhập có thành công hay không
Trang 35Hình 2.5 Sơ đồ luồng dữ liệu mức dưới đỉnh Đăng nhập/Đăng kí
• Sơ đồ luồng dữ liệu mức dưới đỉnhĐặt xe
Sơ đồ mô tả chức năng đặt xe của khách hàng:
- Khách hàng tìm kiếm địa điểm cho điểm bắt đầu và kết thúc, chọn loại phương tiện để vận chuyển Ứng dụng sẽ tìm những lái xe đang hoạt động với loại phương tiện này ở vị trí gần nhất để gợi ý cho khách hàng
- Tiếp theo, khách hàngsẽ phải chọn thông tin các loại hàng hóa cần vận chuyển
- Sau khi đã nhập những loại hàng hóa cần vận chuyển, sẽ tới nhập thông tin người nhận để nhận hàng
- Hệ thống sẽ tìm lái xe phù hợp cho đơn đặt xe của khách hàng Khách hàng sẽ thực hiện thanh toán để xác nhận đặt xe thành công, thông tin thanh toán và tất cả những thông tin đặt xe mà khách hàng đã nhập trên ứng dụng sẽ được lưu trữ trên server
Trang 36Hình 2.6 Sơ đồ luồng dữ liệu mức dưới đỉnh đỉnh Đặt xe
- Sơ đồ luồng dữ liệu mức đỉnhQuản lí Server
Người quản lý khi sử dụng trên server sẽ thực hiện các chức năng về
• Quản lý đăng nhập/ đăng kí
• Quản lý khách hàng
• Quản lý đặt xe
• Quản lý hàng hóa
• Quản lý phương tiện
• Quản lý loại phương tiện
• Quản lý về giá
• Quản lý về thanh toán …