Đây là mô tả
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
ĐỒ ÁN TỐT NGHIỆP
Website quản lý chuỗi võ đường
Karate League Dojo
NGUYỄN VĂN ƯỚC
uoc.nv166995@sis.hust.edu.vn
Ngành Cử nhân Công nghệ Chuyên ngành Công nghệ thông tin
Giảng viên hướng dẫn: TS Vũ Thị Hương Giang
Viện: Công nghệ thông tin – Truyền thông
Trang 2Họ và tên sinh viên: Nguyễn Văn Ước Điện thoại liên lạc: 0375933684 Email: uocnv.soict.hust@gmail.com
Lớp: CN CNTT 2 K61 Hệ đào tạo: Cử nhân công nghệ
Tôi – Nguyễn Văn Ước – cam kết Đồ án Tốt nghiệp (ĐATN) là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của TS Vũ Thị Hương Giang Các kết quả nêu trong ĐATN
là trung thực, là thành quả của riêng tôi, không sao chép theo bất kỳ công trình nào khác Tất cả những tham khảo trong ĐATN – bao gồm hình ảnh, bảng biểu, số liệu, và các câu từ trích dẫn – đều được ghi rõ ràng và đầy đủ nguồn gốc trong danh mục tài liệu tham khảo Tôi xin hoàn toàn chịu trách nhiệm với dù chỉ một sao chép vi phạm quy chế của nhà trường
Hà Nội, ngày tháng năm
Tác giả ĐATN
Họ và tên sinh viên
Lời cam kết
Trang 3“Cuộc sống luôn cho bạn lựa chọn con đường bạn sẽ đi
Với tôi, tôi chọn sống theo đam mê của mình.”
Câu nói này chính là châm ngôn sống của tôi kể từ khi tôi bắt đầu bước sang tuổi trưởng thành - tuổi 18 Xuất phát là một học sinh chuyên lý nhưng lại đam mê lập trình Từ một cậu học sinh chưa biết gì về máy tính, tôi được các thầy cô Trung học chỉ dạy cho biết thế nào giải thuật, ngôn ngữ lập trình là gì và thế nào là code Để rồi từ đó, tôi lại càng yêu thích lập trình hơn và quyết định chọn ngành Công nghệ thông tin là ngành để gắn bó với quãng đời sinh viên cũng có thể là cả sự nghiệp của mình
Trở thành sinh viên ngành Công nghệ thông tin của Đại học Bách Khoa Hà Nội – một trong những ngôi trường danh tiếng bậc nhất Việt Nam có lẽ là cái duyên và cũng có lẽ là may mắn Đến giờ tôi vẫn còn nhớ như in cái cảm giác trên tay cầm giấy báo nhập học bước qua cánh cổng Parabol để đến tòa C1 để đăng ký nhập học Cái cảm giác vui sướng, hồi hộp pha lẫn chút choáng ngợp bởi sự hiện đại và rộng lớn của ngôi trường mà mình sẽ gắn bó suốt quãng đời sinh viên Thật khó để diễn tả chính xác và đầy đủ hết được cảm xúc của tôi lúc đó!
Ấy vậy mà thấm thoát cũng đã bốn năm trôi qua, tôi bây giờ không còn là cậu tân sinh viên non trẻ ngày nào nữa mà đang bước những bước đi cuối cùng của quãng đời sinh viên của mình Bốn năm không phải một khoảng thời gian quá dài nhưng cũng là đủ để lại trong tôi những kỷ niệm không thể phai nhạt về Bách Khoa
“Bách Khoa trong bạn là gì?”
Đây là câu hỏi mà có lẽ sẽ không bao giờ đếm được có bao nhiêu câu trả lời bởi Bách Khoa trong mỗi chúng ta đều có những nét riêng, kỉ niệm riêng và cảm nhận riêng Với tôi, Bách Khoa không quá ồn ào và sôi nổi Bách Khoa trong tôi là những bài thí nghiệm vật lý
tỉ mỉ từng con số, là đồ án phải thức thông đêm để kịp báo cáo, là những lần trượt học bổng vì không qua môn Những nguyên lý cơ bản của chủ nghĩa Mác-Lênin, là những lần gào khản tiếng cổ vũ đội tuyển bóng đá của trường, là cảm giác lo lắng trước mỗi kỳ thi rồi thở phào nhẹ nhõm khi xem được điểm ở sảnh D3 và là những rung động tuổi sinh viên Tất cả đã tạo nên một Bách Khoa trọn vẹn trong tôi
Lời cảm ơn
Trang 4Để có thể đi được một chặng đường dài đến thời điểm hiện tại, tôi không thể không gửi lời tri ân đến các thầy cô, cán bộ nhân viên Trường Đại học Bách Khoa nói chung và Viện Công nghệ thông tin và truyền thông nói riêng đã giúp đỡ và truyền đạt kiến thức cả về chuyên môn và kỹ năng làm việc để tôi hoàn thiện bản thân và tự tin vững bước trên con đường sự nghiệp sắp tới Đặc biệt, tôi xin gửi lời cảm ơn chân thành đến TS Vũ Thị
Hương Giang, giáo viên trực tiếp hướng dẫn đồ án tốt nghiệp của tôi Người đã hướng dẫn tôi bằng sự nhiệt huyết và tận tâm của mình Cô đã giúp tôi định hướng, chỉnh sửa và hoàn thiện đồ án tốt nghiệp một cách tốt nhất và chỉn chu nhất Tôi cảm thấy thực sự may mắn khi được cô hướng dẫn mình làm đồ án tốt nghiệp Tôi xin cảm ơn anh Nguyễn Văn Hiệp, anh trai tôi, người đã dẫn dắt tôi từ những bước đầu tiên và luôn giúp đỡ tôi giải quyết những vấn đề vướng mắc trong quá trình xây dựng đồ án này Tôi xin cảm ơn thầy Trần Mạnh Dũng, chủ nhiệm võ đường Karate League Dojo, người đã ươm mầm cho ý tưởng của đề tài này, đã giúp đỡ và trao rất nhiều cơ hội cho tôi trong quá trình tập luyện tại võ đường Tôi cũng xin cảm ơn các thành viên của võ đường Karate Nông Nghiệp – K.L.D đã giúp đỡ tôi trong quá trình đóng góp ý kiến, phản hồi lỗi để tôi kịp thời chỉnh sửa và cải tiến Và đặc biệt, tôi xin cảm ơn các bạn Lê Anh Tuấn, Bùi Trần Phương Thảo, Lý Văn Dưỡng đã luôn đồng hành và giúp đỡ tôi trong suốt 4 năm đại học vừa qua Cảm ơn các bạn rất nhiều!
Trang 5Ngày nay, song song với việc phát triển nhanh chóng của các công ty cả về số lượng và quy
mô thì nhu cầu về quảng bá hình ảnh cũng như quản lý là rất lớn Có khá nhiều cách để đáp ứng nhu cầu nói trên như chạy quảng cáo trên Facebook, Youtube, phát tờ rơi, quản lý trên giấy tờ hay ứng dụng offline….Tuy nhiên, trong thời đại internet phát triển như ngày nay thì việc có một website riêng là điều tối ưu và cần thiết
Hiện tại, võ đường Karate League Dojo đang quản lý mọi thứ trên giấy tờ và quảng bá hình ảnh trên Facebook, Youtube với mỗi cơ sở lại có một trang Facebook riêng, điều này làm cho việc quản lý bị phân mảnh và khó kiểm soát Quy trình đăng ký tập luyện còn hạn chế, khi võ sinh muốn đăng ký không tìm thấy thông tin về quy trình đăng ký và các chương trình khuyến mại ưu đãi Võ sinh tập luyện cũng không nắm bắt được các thông tin của cá nhân như lịch sử nộp học phí, thành tích thi đấu cá nhân, điểm thi…
Website quản lý chuỗi võ đường Karate League Dojo sẽ giúp quảng bá hình ảnh, thông tin các cơ sở một các tập trung không riêng rẽ, cung cấp một cách nhìn tổng quan về chuỗi võ đường, giúp việc tìm kiếm thông tin, tài liệu tập luyện dễ dàng Quy trình đăng ký tập luyện
rõ ràng, thuận tiện Giúp võ sinh nắm bắt được các thông tin cá nhân Cung cấp các chức năng quản lý tập trung, hạn chế rủi ro sai sót của việc quản lý trên giấy tờ truyền thống Ngoài ra bổ sung các chức năng nên có của một hệ thống tập luyện, giảng dạy như đăng ký mượn phòng, xếp hạng thi đua rèn luyện, tích hợp việc nộp phí online
Về vấn đề xây dựng một website, hiện nay cũng có rất nhiều hướng để phát triển với nhiều ngôn ngữ khác nhau như C#, Java hay PHP… trên các framework đa dạng khác nhau Trong khuôn khổ của ĐATN, tôi sẽ trình bày các vấn đề về xây dựng một website bằng ngôn ngữ PHP trên framework Laravel, một trong những ngôn ngữ phổ biến được nhiều lập trình viên lựa chọn bởi sự tiện lợi, dễ dàng sử dụng và một cộng đồng hỗ trợ phát triển mạnh mẽ ĐATN sẽ cung cấp một cách đầy đủ về quy trình phát triển một website cụ thể từ bước thiết
kế đến bước triển khai thực tế
Website hiện đang được triển khai thử nghiệm tại cơ sở Karate Nông Nghiệp – K.L.D tại Học viện Nông nghiệp Việt Nam của hệ thống Karate League Dojo với số lượng người dùng tham gia thử nghiệm, đóng góp phản hồi khoảng 50 người Kết quả bước đầu chạy thử nghiệm trong tháng đầu có khoảng 90% người dùng phản hồi tốt cho các chức năng của
Tóm tắt
Trang 6Lời cam kết ii
Lời cảm ơn iii
Tóm tắt v
Mục lục vi
Danh mục hình vẽ x
Danh mục bảng xii
Danh mục các từ viết tắt xiii
Danh mục thuật ngữ xiv
Chương 1 Giới thiệu đề tài 1
1.1 Đặt vấn đề 1
1.2 Mục tiêu và phạm vi đề tài 2
1.3 Định hướng giải pháp 3
1.4 Bố cục đồ án 3
Chương 2 Khảo sát và phân tích yêu cầu 5
2.1 Khảo sát hiện trạng 5
2.2 Tổng quan chức năng 8
2.2.1 Biểu đồ use case tổng quan 8
2.2.2 Biểu đồ use case phân rã Quản lý phòng tập 9
2.2.3 Biểu đồ use case phân rã Quản lý sự kiện 10
2.2.4 Biểu đồ use case phân rã Quản lý học phí 11
2.2.5 Biểu đồ use case phân rã Quản lý cơ sở dữ liệu 12
Mục lục
Trang 72.2.6 Biểu đồ use case phân rã Cấu hình ứng dụng 12
2.3 Đặc tả chức năng 12
2.3.1 Đặc tả use case Đăng ký mượn phòng tập: 12
2.3.2 Đặc tả use case Xác nhận lịch mượn phòng: 13
2.3.3 Đặc tả use case Sửa thời gian hoạt động: 14
2.3.4 Đặc tả use case Thêm lịch sử học phí: 15
2.3.5 Đặc tả use case Nộp học phí online: 16
Chương 3 Công nghệ sử dụng 18
3.1 Cổng thanh toán điện tử Momo (MoMo Payment Platform API) 18
3.1.1 Phương thức thanh toán 18
3.1.2 Quy trình tích hợp 18
3.1.3 Thông tin cấu hình để kết nối với MoMo API 19
3.1.4 Bảo mật 19
3.2 Open Server Panel 19
3.2.1 Yêu cầu hệ thống 20
3.2.2 Cài đặt 20
3.2.3 Sử dụng 20
3.3 Laravel 22
3.3.1 Laravel là gì? 22
3.3.2 Tại sao nên sử dụng Laravel? 23
3.3.3 Yêu cầu server 26
3.3.4 Cài đặt 26
3.4 Voyager – The Missing Laravel Admin 27
3.4.1 Yêu cầu 27
3.4.2 Cài đặt 27
3.5 Các thư viện khác 29
Chương 4 Phát triển và triển khai ứng dụng 30
Trang 84.1 Thiết kế kiến trúc 30
4.1.1 Lựa chọn kiến trúc phần mềm 30
4.1.2 Thiết kế tổng quan 32
4.1.3 Thiết kế chi tiết gói 32
4.2 Thiết kế chi tiết 37
4.2.1 Thiết kế giao diện 37
4.2.2 Thiết kế lớp 41
4.2.3 Thiết kế cơ sở dữ liệu 47
4.3 Xây dựng ứng dụng 53
4.3.1 Thư viện và công cụ sử dụng 53
4.3.2 Kết quả đạt được 55
4.3.3 Minh hoạ các chức năng chính 55
4.4 Kiểm thử 59
4.4.1 Các kịch bản kiểm thử 59
4.4.2 Kiểm thử hộp đen 59
4.4.3 Kiểm thử hiệu năng 61
4.4.4 Tổng kết kiểm thử 62
4.5 Triển khai 63
4.5.1 Mô hình kiến trúc dịch vụ hệ thống 63
4.5.2 Web Server 63
4.5.3 Cài đặt môi trường 69
4.5.4 Triển khai ứng dụng 70
Chương 5 Các giải pháp và đóng góp nổi bật 74
5.1 Chức năng quản lý học phí 74
5.1.1 Mã giảm giá 74
5.1.2 Ưu đãi mặc định 75
5.1.3 Chính sách học phí 76
5.1.4 Quản lý nộp học phí 78
Trang 95.1.5 Nộp học phí online 80
5.2 Tính điểm rèn luyện và xếp hạng thi đua 82
5.3 Chức năng mượn phòng tập 86
5.4 Online hóa các giấy tờ, biểu mẫu 88
5.5 Thiết kế trang video giống Youtube 89
5.6 Chức năng bình luận 93
Chương 6 Kết luận và hướng phát triển 96
6.1 Kết luận 96
6.2 Hướng phát triển 96
Tài liệu tham khảo 97
Trang 10Hình 1 Biểu đồ usecase tổng quan 8
Hình 2 Biểu đồ phân rã usecase Book phòng tập 9
Hình 3 Biểu đồ usecase phân rã Quản lý sự kiện 10
Hình 4 Biểu đồ usecase phân rã Quản lý học phí 11
Hình 5 Biểu đồ usecase phân rã Quản lý cơ sở dữ liệu 12
Hình 6 Biểu đồ usecase phân rã Cấu hình ứng dụng 12
Hình 7 Biểu đồ số lượng sao trên Github của Laravel và các framework khác 23
Hình 8 Biểu đồ 15 framework miễn phí tốt nhất năm 2015 24
Hình 9 So sánh code khi sử dụng Blade của Laravel và code PHP thông thường 25
Hình 10 Mô hình kiến trúc MVC 30
Hình 11 Sơ đồ vòng đời của request 31
Hình 12 Biểu đồ gói tổng quan 32
Hình 13 Biểu đồ thiết kế gói Core Service 33
Hình 14 Biểu đồ thiết kế gói User 34
Hình 15 Biểu đồ thiết kế gói Media 34
Hình 16 Biểu đồ thiết kế gói Tuition 35
Hình 17 Biểu đồ thiết kế gói Point Training 36
Hình 18 Biểu đồ thiết kế gói Room 37
Hình 19 Các kích thước màn hình điện thoại được tối ưu hiển thị 38
Hình 20 Các kích thước màn hình máy tính bảng được tối ưu hiển thị 38
Hình 21 Vị trí các thông điệp phản hồi và thông báo với màn hình tiêu chuẩn 39
Danh mục hình vẽ
Trang 11Hình 22 Vị trí các thông điệp phản hồi và thông báo với màn hình kích thước nhỏ 40
Hình 23 Biểu đồ thiết kế lớp của gói Tuition 41
Hình 24 Biểu đồ trình tự usecase Nộp học phí 42
Hình 25 Biểu đồ trình tự usecase Thêm mới chính sách học phí 43
Hình 26 Biểu đồ thiết kế lớp của gói Point Training 44
Hình 27 Biểu đồ trình tự usecase Đăng ký xác nhận sự kiện 45
Hình 28 Biểu đồ trình tự usecase Xem điểm rèn luyện cá nhân 45
Hình 29 Biểu đồ thiết kế lớp của gói Room 46
Hình 30 Biểu đồ trình tự usecase đăng ký mượn phòng 47
Hình 31 Biểu đồ thực thể liên kết gói Core Service 48
Hình 32 Sơ đồ liên kết SQL gói Core Service 49
Hình 33 Biểu đồ thực thể liên kết các gói User, Room, Point Training và Tuition 50
Hình 34 Sơ đồ liên kết SQL các gói User, Room, Point Training, Tuition 51
Hình 35 Biểu đồ thực thể liên kết gói Media 52
Hình 36 Sơ đồ liên kết SQL gói Media 53
Hình 37 Những bản ghi của hành động truy cập trang tin tức 61
Hình 38 Biểu đồ kết quả kiểm thử hiệu năng 62
Hình 39 Summary Report của hành động truy cập trang tin tức 62
Trang 12Bảng 1 Các chức năng của website quản lý võ đường karate 6
Bảng 2 Danh sách thư viện và công cụ sử dụng 54
Bảng 3 Bảng kiểm thử chức năng quản lý học phí 59
Bảng 4 Bảng kiểm thử chức năng mượn phòng tập 61
Danh mục bảng
Trang 14BREAD Giao diện cho các chức năng CRUD
Swap Bộ nhớ RAM ảo
MVC
Mô hình thiết kế phần mềm Model – View - Controller
API
Application Programming Interface Giao diện lập trình ứng dụng
Danh mục thuật ngữ
Trang 151.1 Đặt vấn đề
Ngày nay, bên cạnh sự phát triển của thị trường, đời sống vật chất của con người cũng đã được cải thiện và mọi người bắt đầu chú trọng đến sức khỏe hơn Do đó các bộ môn thể dục thể thao hiện nay có cơ hội phát triển mạnh mẽ trong đó có các bộ môn võ thuật, điển hình
là karate
Với sự phát triển mạnh mẽ, ngày càng nhiều các cơ sở, võ đường tập luyện karate được mở cửa thu hút rất đông các bạn võ sinh tham gia tập luyện đặc biệt là lứa tuổi học sinh, sinh viên Mặc dù phát triển như vậy nhưng cũng không ít võ đường rơi vào tình trạng thiếu hụt
võ sinh cũng như công tác quản lý yếu kém dẫn đến tình trạng chết yểu Công tác quản lý là đặc biệt quan trọng đối với sự phát triển và hoạt động của một hệ thống như Karate League Dojo Cần phải quản lý các thông tin của các cơ sở về phòng tập, học phí, võ sinh, điểm thi lên kết các thông tin đó với các loại giấy tờ, chứng chỉ, thẻ thi đấu…trích xuất dữ liệu và báo cáo thống kê Quan trọng như vậy, tuy nhiên các website của các võ đường hiện tại hoặc chỉ dừng lại ở mức quản lý một cở sở nhỏ lẻ hoặc chỉ có chức năng đăng bài và hình ảnh mà chưa có quản lý Các công việc quản lý hoàn toàn làm thủ công bằng việc lưu trữ các thông tin võ sinh, lịch sử học phí trên giấy tờ, mỗi lần cần một loại giấy tờ gì đó như giấy xác nhận tập luyện, thẻ thi đấu hay giấy giới thiệu lại phải đi tìm trong tài liệu thông tin của từng võ sinh Võ sinh cũng không nắm được các thông tin như lịch sử nộp học phí, thành tích, điểm thi của mình hay những lần đổi học phí người quản lý phải ngồi tính toán lại học phí của từng võ sinh Nói chung, việc quản lý khá bất tiện và dễ dẫn đến sai sót, nhầm lẫn cho người quản lý, các thông tin được lưu trữ rời rạc và không có sự liên kết
Điều này đặt ra một vấn đề là cần có một website để quảng bá hình ảnh hiệu quả đồng thời cũng cần có một hệ thống quản lý, tương tác và kết nối giữa võ sinh và người quản lý cũng như huấn luyện viên
Giải quyết được vấn đề này không chỉ thúc đẩy sự phát triển của các võ đường karate mà còn cho các hệ thống võ thuật khác nói riêng và các hệ thống tập luyện nói chung
Chương 1 Giới thiệu đề tài
Trang 161.2 Mục tiêu và phạm vi đề tài
Hiện nay, trên thị trường đã có rất nhiều ứng dụng web với nhiều chức năng khác nhau cho các đối tượng khác nhau từ cá nhân đến tổ chức Tuy nhiên, nhu cầu về các ứng dụng web vẫn còn rất cao, đặc biệt là các ứng dụng quản lý Các ứng dụng web quản lý có thể kể đến như quản lý nhân viên, quản lý sản phẩm, quản lý giáo dục…Xong các ứng dụng trên không mang tính đặc thù và không cung cấp đầy đủ được các chức năng cần thiết cho hệ thống các
võ đường karate
Hiện nay, có khoảng 80 – 90% võ đường có website riêng nhưng nhìn chung, các trang web
đó mới chỉ đáp ứng được các nhu cầu cơ bản như đăng bài, đăng ảnh, đăng tài liệu, chưa hỗ trợ được nhiều cho việc tập luyện và giảng dạy của võ sinh và huấn luyện viên và việc quản
lý của võ đường của hệ thống Ví dụ như website của võ đường Việt Nhật tại địa chỉ http://vietnhatclub.org/ Đây chỉ là website giới thiệu, không phải website quản lý Trang web đó mới chỉ đáp ứng được các nhu cầu cơ bản như đăng bài, đăng ảnh, đăng tài liệu, chưa
có sự tương tác giữa võ sinh với hệ thống
Trong kỷ nguyên công nghệ số, với sự phát triển mạnh mẽ của internet thì một trang web quản lý online sẽ thực sự hiệu quả cho vấn đề trên, nó sẽ giúp cho hệ thống võ đường vừa quảng bá được hình ảnh, vừa giúp cho sự tương tác giữa võ sinh và người quản lý tốt hơn đồng thời giúp cho việc quản lý cũng được thuận tiện và dễ dàng hơn
Mục tiêu của ĐATN là xây dựng website cung cấp được các chức năng sau đây:
Tin tức: Các bài viết, video, tài liệu tập luyện, bình luận, thông tin các cơ sở tập luyện của hệ thống
Đăng ký tập luyện, đăng ký chuyển cơ sở tập luyện
Tính điểm rèn luyện, xếp hạng thi đua: Thông qua các sự kiện võ sinh tham gia, điểm thi và các thành tích võ sinh đạt được trong quá trình tập luyện, thi đấu sẽ xếp hạng thi đua theo năm
Trang cá nhân: Tổng hợp các thông tin của cá nhân người dùng như thông tin cá nhân, thành tích thi đấu, sự kiện đã tham gia, điểm thi đua và thứ hạng hiện tại
Quản lý dữ liệu: Dữ liệu về võ sinh, điểm thi, sự kiện, mã giảm giá, giấy tờ, chứng chỉ…
Trang 17 Ghi log: Ghi lại các lỗi của hệ thống trong quá trình hoạt động theo file của từng ngày và hoạt động truy cập của người dùng
1.3 Định hướng giải pháp
Để xây dựng một website, có rất nhiều ngôn ngữ lập trình và nhiều framework khác nhau Tuy nhiên, trong nội dung ĐATN của mình tôi lựa chọn sử dụng ngôn ngữ PHP, framework Laravel kết hợp với CSDL MySQL PHP là một ngôn ngữ lập trình phổ biến được nhiều lập trình viên lựa chọn bởi sự tiện lợi, dễ dàng sử dụng và một cộng đồng hỗ trợ phát triển mạnh
mẽ Laravel – một framework hỗ trợ phát triển các ứng dụng web theo cấu trúc model- view- controller (MVC), đứng đầu về số lượt tải trên Packagist cũng như số lượng sao đạt được trên Github
Quy trình thực hiện:
Phân tích yêu cầu người sử dụng
Phân tích quy trình nghiệp vụ
Thiết kế kiến trúc, cơ sở dữ liệu
Thiết kế giao diện
Phần còn lại của báo cáo đồ án tốt nghiệp này được tổ chức như sau
Chương 2 trình bày về kết quả khảo sát thị trường website hiện nay, đặc biệt là website quản
lý của các hệ thống giảng dạy Karate trên địa bàn Hà Nội nói riêng và Việt Nam nói chung Bên cạnh đó, chương này cũng sẽ tiến hành phân tích yêu cầu để làm rõ các đối tượng tham gia và các tính năng cần có của ứng dụng
Trong Chương 3, tôi giới thiệu về các công nghệ đã sử dụng để xây dựng phát triển website
Đó là ngôn ngữ PHP trên nền tảng framework Laravel kết hợp với package quản lý admin Voyager Đây là một bộ công cụ phát triển web mạnh mẽ, tiện lợi, dễ dàng sử dụng và hiệu quả
Từ những phân tích yêu cầu về các chức năng và công nghệ sử dụng được trình bày ở Chương
Trang 18trúc, giao diện, cơ sở dữ liệu Đồng thời, trong chương này cũng sẽ trình bày về kết quả ứng dụng thông qua các minh họa các chức năng chính, kết quả kiểm thử và quá trình triển khai ứng dụng thực tế
Tiếp theo, Chương 5 sẽ tổng hợp các giải pháp và đóng góp nổi bật của ĐATN, lần lượt các vấn đề khó khăn và các cách giải quyết vấn đề đó sẽ được trình bày trong chương này Cuối cùng, Chương 6 sẽ tổng kết lại các vấn đề, đánh giá ưu nhược điểm và nêu lên phương hướng phát triển của ứng dụng trong tương lai
Trang 192.1 Khảo sát hiện trạng
Hiện nay, trên thị trường đã có rất nhiều loại website với nhiều chức năng khác nhau cho các đối tượng khác nhau từ cá nhân đến tổ chức như website giới thiệu, website thương mại điện tử (lazada, shopee, tiki…), mạng xã hội (Facebook, Twitter, ), website tin tức (báo Tuổi trẻ, báo Thanh niên, báo Người lao động,…), website giáo dục (W3School, ), web-app (ứng dụng web) Trong số đó, nhu cầu về các ứng dụng web là cao hơn cả, đặc biệt là các ứng dụng quản lý Lý do mà các ứng dụng web quản lý phát triển như vậy là bởi sự phát triển của nền kinh tế dẫn đến sự xuất hiện nhiều hơn của các công ty, xí nghiệp Đặc biệt trong thời đại số hóa hiện nay, xu hướng chuyển dần các tác vụ quản lý từ hình thức truyền thống sang hình thức online đang được ưa chuộng Do đó, trong quá trình phát triển của mình thì một ứng dụng quản lý là cần thiết đối với một công ty Và các hệ thống giảng dạy karate cũng cần hòa mình vào xu hướng đó để phát triển Các ứng dụng web quản lý có thể
kể đến như quản lý nhân viên, quản lý sản phẩm, quản lý kho – bán sỉ lẻ, quản lý trường học, giảng viên, sinh viên, học sinh, học viên,…Xong nhìn chung, các ứng dụng web này hoặc không phù hợp, hoặc không cung cấp đầy đủ các chức năng mang tính đặc thù của loại hình giảng dạy karate Ứng dụng web có thể phù hợp nhất là ứng dụng quản lý trường học, giảng viên, sinh viên, học sinh Tuy nhiên, giữa học văn hóa và tập luyện karate tại các võ đường khác nhau rất nhiều Ví dụ như quá trình học tập của học sinh sẽ theo lộ trình của từng môn học nhưng karate không có môn học nào cả, việc thi, kiểm tra và đánh giá điểm thi cũng khác nhau dẫn đến việc quản lý điểm cũng khác nhau Ngoài việc thi, kiểm tra thông thường, các võ sinh còn tham gia các giải thi đấu, đạt được thành tích, tham gia các hoạt động của
võ đường dẫn đến nhu cầu cần lưu giữ kỉ niệm, thành tích cá nhân trong sự nghiệp karate của mình Chính sách học phí giữa học văn hóa và tập luyện karate cũng khác nhau… Các hệ thống giảng dạy karate ở Việt Nam hiện nay nói chung và trên địa bàn Hà Nội nói riêng có thể kể đến như võ đường Uy Sơn do thầy Trần Anh Sơn – huyền đai đệ tứ đẳng, trọng tài Karate Quốc gia chủ nhiệm, võ đường Karate League Dojo do thầy Trần Mạnh Dũng – huyền đai đệ tam đẳng, kiện tướng Karate Quốc gia chủ nhiệm, câu lạc bộ võ thuật Việt Nhật, câu lạc bộ Karatedo Bách Khoa,…và rất nhiều các câu lạc bộ khác Tuy phát triển
và có nhiều võ đường lớn cũng như nhu cầu cần thiết có một ứng dụng quản lý như vậy nhưng hầu hết các võ đường, câu lạc bộ hiện nay chưa có một website quản lý, quảng bá của
Chương 2 Khảo sát và phân tích yêu cầu
Trang 20võ đường có trang web riêng là rất ít Trong 4 võ đường kể trên thì chỉ câu lạc bộ võ thuật Việt Nhật có website riêng tại địa chỉ http://vietnhatclub.org/ Tuy nhiên cũng chỉ là website giới thiệu, không phải website quản lý Trang web đó mới chỉ đáp ứng được các nhu cầu cơ bản như đăng bài, đăng ảnh, đăng tài liệu, chưa có sự tương tác giữa võ sinh với hệ thống, chưa hỗ trợ được nhiều cho việc tập luyện và giảng dạy của võ sinh và huấn luyện viên tại các võ đường của hệ thống
Bảng 1 Các chức năng của website quản lý võ đường karate Các website karate hiện nay Website ĐATN sẽ xây dựng
Đăng tải bài viết, ảnh, tài liệu, video… Đăng tải bài viết, ảnh, tài liệu, video…
tài liệu, cơ sở tập luyện
Đăng ký tập luyện Đăng ký chuyển cơ sở tập luyện Đăng ký mượn phòng tập Quản lý học phí
Nộp học phí online Tính điểm rèn luyện, xếp hạng thi đua Trang cá nhân
Ghi log
Quản lý dữ liệu
Trang 21Từ những phân tích trên có thể thấy, ứng dụng web quản lý võ đường karate mang tính khả dụng và thực tế cao, cung cấp các chức năng sau:
Tin tức: Các bài viết, video, tài liệu tập luyện, bình luận, thông tin các cơ sở tập luyện của hệ thống
Đăng ký tập luyện, đăng ký chuyển cơ sở tập luyện
Tính điểm rèn luyện, xếp hạng thi đua: Thông qua các sự kiện võ sinh tham gia, điểm thi và các thành tích võ sinh đạt được trong quá trình tập luyện, thi đấu sẽ xếp hạng thi đua theo năm
Trang cá nhân: Tổng hợp các thông tin của cá nhân người dùng như thông tin cá nhân, thành tích thi đấu, sự kiện đã tham gia, điểm thi đua và thứ hạng hiện tại
Quản lý dữ liệu: Dữ liệu về võ sinh, điểm thi, sự kiện, mã giảm giá, giấy tờ, chứng chỉ…
Ghi log: Ghi lại các lỗi của hệ thống trong quá trình hoạt động theo file của từng ngày và hoạt động truy cập của người dùng
Trang 222.2 Tổng quan chức năng
2.2.1 Biểu đồ use case tổng quan
Hình 1 Biểu đồ usecase tổng quan
Trang 23Các tác nhân tham gia trong biểu đồ usecase tổng quan gồm có: Visitor (khách), Member (thành viên), Student (võ sinh), Editor (biên tập viên), Manager (quản lý) và admin Trong
đó, tác nhân Visitor là người dùng truy cập vào trang web nhưng không đăng ký tài khoản, chỉ có mục đích đọc tin tức và tài liệu, tác nhân Member là tác nhân Visitor đã có tài khoản
để truy cập vào trang web có những chức năng và nhiệm vụ riêng tùy theo từng loại quyền truy cập của tác nhân đó, tác nhân Student là tác nhân Member đã đăng ký tập luyện và đã, đang, sẽ tập luyện tại các cơ sở của hệ thống, tác nhân Editor là tác nhân Student có quyền truy cập trang admin, có nhiệm vụ đăng tải các bài viết, tài liệu, video, xác nhận lịch mượn phòng và sự kiện đã tham gia cũng như các thành tích của võ sinh, tương ứng với vai trò lớp trưởng, tác nhân Manager là tác nhân Member có quyền truy cập trang admin quản lý các thông tin về võ sinh, tài khoản, học phí, tương ứng với vai trò huấn luyện viên, tác nhân admin là tác nhân thành viên nắm toàn quyền kiểm soát trang web, cấu hình ứng dụng, quản
lý cơ sở dữ liệu của hệ thống
2.2.2 Biểu đồ use case phân rã Quản lý phòng tập
Hình 2 Biểu đồ phân rã usecase Book phòng tập
Võ sinh là tác nhân thực hiện đăng ký mượn phòng tập và hủy mượn phòng còn quản lý, biên tập viên là người xác nhận hoặc từ chối cho mượn phòng mà võ sinh đã đặt Bên cạnh
đó, admin và quản lý là người quản lý hệ thống phòng tập về địa điểm phòng, thời gian hoạt động Biên tập viên cũng quản lý thời gian hoạt động của phòng tập cùng với quản lý
Trang 242.2.3 Biểu đồ use case phân rã Quản lý sự kiện
Hình 3 Biểu đồ usecase phân rã Quản lý sự kiện
Quản lý sự kiện cùng với quản lý điểm thi, quản lý thành tích và nhập số ngày nghỉ là những usecase quan trọng của chức năng tổng hợp điểm rèn luyện và xếp hạng thi đua của ứng dụng, Biên tập viên là tác nhân chính trong usecase này Võ sinh là tác nhân thực hiện usecase đăng ký xác nhận các sự kiện đã tham gia để tích lũy điểm rèn luyện của mình và biên tập viên là tác nhân sẽ xác nhận hoặc từ chối điều đó
Trang 252.2.4 Biểu đồ use case phân rã Quản lý học phí
Hình 4 Biểu đồ usecase phân rã Quản lý học phí
Tham gia vào usecase gồm tác nhân quản lý là tác nhân chính Usecase Quản lý học phí bao gồm các usecase Quản lý ưu đãi mặc định, Quản lý mã giảm giá, Quản lý chính sách học phí, Quản lý đăng ký chuyển cơ sở, Thêm lịch sử phọc phí Trong đó, tác nhân võ sinh thực hiện usecase Đăng ký chuyển cơ sở và tác nhân quản lý sẽ xác nhận hoặc từ chối điều đó Khi chuyển cơ sở tập luyện, do mức chênh lệch học phí nên cần phải tính toán lại học phí Các usecase Quản lý ưu đãi mặc định, Quản lý mã giảm giá, Quản lý chính sách học phí mục đích để bổ trợ cho usecase thêm lịch sử học phí
Trang 262.2.5 Biểu đồ use case phân rã Quản lý cơ sở dữ liệu
Hình 5 Biểu đồ usecase phân rã Quản lý cơ sở dữ liệu
Admin là tác nhân thực hiện usecase này Quản lý BREAD là usecase cho phép admin tạo
ra các giao diện CRUD cơ bản của một bảng dữ liệu, cấu hình hiển thị và các các thông số khác của các trường dữ liệu của bảng
2.2.6 Biểu đồ use case phân rã Cấu hình ứng dụng
Hình 6 Biểu đồ usecase phân rã Cấu hình ứng dụng
Admin là tác nhân thực hiện usecase này Quản lý Menu cho phép Admin tạo ra các nội dung của menu với các icon, nội dung và đường dẫn Quản lý cài đặt ứng dụng là usecase cho phép admin tạo ra các cài đặt là các thông số hay biến, giá trị khởi tạo cho ứng dụng như logo, ảnh bìa, slogan, trọng số điểm rèn luyện, ngày chốt điểm…
2.3 Đặc tả chức năng
2.3.1 Đặc tả use case Đăng ký mượn phòng tập:
Tác nhân: Võ sinh
Trang 27 Mô tả: Cho phép võ sinh đăng ký mượn phòng tập ngoài giờ tập luyện
Tiền điều kiện: Tác nhân đã đăng nhập dưới quyền võ sinh, tài khoản đã được xác thực và trạng thái đang tập luyện
Luồng sự kiện chính:
1 Tác nhân chọn chức năng mượn phòng tập
2 Tác nhân chọn tab mượn phòng
7 Tác nhân chọn phòng muốn đăng ký mượn
8 Form đặt phòng hiển thị với thông tin phòng và thời gian trống
9 Tác nhân điều chỉnh lại thời gian mượn nếu muốn
10 Nếu tác nhân nhấn nút đặt phòng thực hiện bước 11, nếu không quay lại bước
7
11 Hệ thống lưu thông tin đặt phòng và gửi thông báo cho quản lý nếu thời gian mượn phòng hợp lệ Nếu thời gian mượn phòng không hợp lệ hoặc quá trình lưu thông tin không thành công, thực hiện luồng sự kiện rẽ nhánh A1
12 Usecase kết thúc
Luồng sự kiện rẽ nhánh:
Luồng sự kiện rẽ nhánh A1: Thời gian mượn phòng không hợp lệ hoặc quá trình lưu thông tin không thành công
1 Trở lại giao diện mượn phòng tập và thông báo lỗi
2 Quay lại bước 2 trong luồng sự kiện chính
Hậu điều kiện: Thông tin mượn phòng được lưu vào CSDL và gửi thông báo email thành công đến quản lý
2.3.2 Đặc tả use case Xác nhận lịch mượn phòng:
Tác nhân: Quản lý
Mô tả: Cho phép tác nhân quản lý xác nhận các lịch mượn phòng phù hợp
Tiền điều kiện: Tác nhân đăng nhập dưới quyền quản lý và có lịch mượn phòng cần được xác nhận
Luồng sự kiện chính:
1 Tác nhân chọn chức năng quản lý đặt phòng trong trang quản lý
2 Hệ thống hiển thị bảng thống kê các lịch mượn phòng
3 Tác nhân chọn lịch mượn phòng muốn xác nhận
Trang 284 Nếu tác nhân nhấn nút xác nhận, thực hiện bước 5 Nếu tác nhân nhấn nút chi tiết, thực hiện luồng sự kiện rẽ nhánh A1
5 Hệ thống kiểm tra thời gian mượn phòng với thời gian trống hiện tại của phòng Nếu thời gian hợp lệ, thực hiện bước 6 Nếu thời gian không hợp lệ, thực hiện luồng sự kiện rẽ nhánh A2
6 Hệ thống chuyển trạng thái của lịch mượn phòng sang đã được chấp nhận và thông báo lịch mượn đã được xác nhận cho tác nhân võ sinh
7 Quay lại giao diện thống kê các lịch mượn phòng
8 Usecase kết thúc
Luồng sự kiện rẽ nhánh:
Luồng sự kiện rẽ nhánh A1: Tác nhân nhấn nút chi tiết
1 Hệ thống hiển thị giao diện thông tin chi tiết của lịch mượn phòng
2 Nếu tác nhân nhấn nút xác nhận, thực hiện bước 5 trong luồng sự kiện chính Nếu tác nhân nhấn nút quay lại, quay lại bước 2 trong luồng sự kiện chính Luồng sự kiện rẽ nhánh A2: Thời gian mượn phòng không hợp lệ
1 Quay lại giao diện bảng thống kê lịch mượn phòng và thông báo lỗi
1 Tác nhân chọn chức năng quản lý thời gian hoạt động trong trang quản lý
2 Hệ thống hiển thị bảng thống kê thời gian hoạt động
3 Tác nhân nhấn chọn chỉnh sửa tải thời gian cần chỉnh sửa
4 Tác nhân thay đổi thông tin thời gian
8 Hệ thống lưu thông tin về thời gian hoạt động mới vào CSDL
9 Quay lại giao diện thống kê thời gian hoạt động và thông báo cập nhật thành công
Trang 2910 Usecase kết thúc
Luồng sự kiện rẽ nhánh:
Luồng sự kiện rẽ nhánh A1: khung thời gian mới không hợp lệ
1 Quay lại giao diện bảng thống kê thời gian hoạt động và thông báo lỗi
2 Usecase kết thúc
Hậu điều kiện: Trạng thái của các lịch mượn không hợp lệ với khung thời gian mới (nếu có) phải được chuyển trạng thái sang từ chối và gửi thông báo email thành công đến võ sinh đăng ký lịch mượn phòng đó
2.3.4 Đặc tả use case Thêm lịch sử học phí:
Tác nhân: Quản lý, võ sinh
Mô tả: Cho phép tác nhân quản lý thêm lịch sử học phí mới khi võ sinh nộp học phí offline
Tiền điều kiện: Tác nhân đăng nhập dưới quyền quản lý
Luồng sự kiện chính:
1 Tác nhân chọn chức năng thêm lịch sử học phí trong trang quản lý
2 Hệ thống hiển thị bảng thống kê lịch sử học phí
3 Tác nhân nhấn nút thêm mới
4 Hệ thống hiển thị giao diện thêm mới lịch sử học phí
5 Tác nhân chọn võ sinh và nhập số tháng nộp
6 Tác nhân nhấn nút kiểm tra thông tin học phí
7 Hệ thống tính toán học phí và hiển thị thông tin học phí
8 Nếu võ sinh có sử dụng mã giảm giá, thực hiện luồng sự kiện phụ B1 Nếu không, thực hiện bước 9
9 Tác nhân nhập số tiền khách đưa
10 Tác nhân nhấn nút thanh toán
11 Hệ thống tính toán tiền dư
12 Tác nhân điều chỉnh số tiền trả lại và nhập tên người thu
13 Tác nhân nhấn nút lưu lại
14 Hệ thống lưu thông tin lịch sử học phí vào CSDL và thông báo email đến võ sinh
15 Quay lại giao diện thống kê lịch sử học phí và thông báo thêm thành công
16 Usecase kết thúc
Luồng sự kiện phụ:
Luồng sự kiện phụ B1: Võ sinh có áp dụng mã giảm giá
1 Tác nhân chọn các mã giảm giá võ sinh muốn áp dụng
2 Tác nhân nhấn nút áp dụng
Trang 303 Hệ thống kiểm tra tính hợp lệ của các mã giảm giá (1 loại mã giảm giá chỉ được sử dụng 1 mã) Nếu hợp lệ thực hiện bước 4, nếu không hợp lệ thông báo lỗi
4 Hệ thống tính toán lại học phí và hiển thị thông tin học phí
5 Thực hiện bước 9 trong luồng sự kiện chính
Hậu điều kiện: Các mã giảm giá sử dụng được chuyển trạng thái sang đã sử dụng và gửi email thông báo thành công đến võ sinh
2.3.5 Đặc tả use case Nộp học phí online:
Tác nhân: Võ sinh
Mô tả: Cho phép võ sinh nộp học phí thông qua cổng thanh toán online Momo
Tiền điều kiện: Tác nhân đăng nhập dưới quyền võ sinh, tài khoản đã được xác thực
và có tài khoản ví điện tử Momo
Luồng sự kiện chính:
1 Tác nhân chọn chức năng nộp học phí trong trang lịch sử học phí
2 Hệ thống hiển thị form thanh toán học phí online
3 Tác nhân nhập số tháng muốn nộp rồi nhấn nút kiểm tra
4 Hệ thống tính toán học phí và hiển thị thông tin học phí
5 Nếu võ sinh có sử dụng mã giảm giá, thực hiện luồng sự kiện phụ B1 Nếu không, thực hiện bước 6
6 Tác nhân nhấn nút thanh toán
7 Hệ thống chuyển tác nhân đến trang thanh toán của Momo
8 Tác nhân tiến hành thanh toán bằng hình thức đăng nhập tài khoản Momo hoặc quét mã QR từ ứng dụng Momo
9 Nếu giao dịch thành công thực hiện bước 10 Nếu có lỗi trong giao dịch, thực hiện luồng sự kiện rẽ nhánh A1
10 Hệ thống hiển thị giao diện hóa đơn thanh toán học phí
11 Tác nhân nhấn nút in hóa đơn để tải hóa đơn về
12 Tác nhân nhấn nút quay lại
13 Quay lại trang lịch sử học phí
14 Usecase kết thúc
Luồng sự kiện rẽ nhánh:
Luồng sự kiện rẽ nhánh A1: Có lỗi trong giao dịch thanh toán Momo
1 Quay lại trang lịch sử học phí và thống báo lỗi
2 Usecase kết thúc
Luồng sự kiện phụ:
Luồng sự kiện phụ B1: Võ sinh có áp dụng mã giảm giá
1 Tác nhân chọn các mã giảm giá võ sinh muốn áp dụng
Trang 312 Tác nhân nhấn nút áp dụng
3 Hệ thống kiểm tra tính hợp lệ của các mã giảm giá (1 loại mã giảm giá chỉ được sử dụng 1 mã) Nếu hợp lệ thực hiện bước 4, nếu không hợp lệ thông báo lỗi
4 Hệ thống tính toán lại học phí và hiển thị thông tin học phí
5 Thực hiện bước 6 trong luồng sự kiện chính
Hậu điều kiện: Các mã giảm giá sử dụng được chuyển trạng thái sang đã sử dụng và gửi email thông báo thành công đến võ sinh và quản lý
Trang 323.1 Cổng thanh toán điện tử Momo (MoMo Payment Platform API)
MoMo Payment Platform API là giải pháp thanh toán cho các đơn vị kinh doanh, cho phép khách hàng sử dụng tài khoản Ví MoMo để thanh toán các dịch vụ trên nhiều nền tảng khác nhau: Desktop Website, Mobile Website, Mobile Application, POS, Pay In Bill, Web In App MoMo
3.1.1 Phương thức thanh toán
Cổng thanh toán MoMo (All In One): Áp dụng đối tác có thanh toán trên nền tảng Website, Mobile, Smart TV,
Thanh toán App-In-App: Áp dụng cho đối tác có ứng dụng di động (android/ios) muốn mở trực tiếp ứng dụng MoMo để thanh toán
Thanh toán POS: Áp dụng cho đối tác có hệ thống bán hàng bằng máy POS Thu ngân dùng máy scan để quét "MÃ THANH TOÁN" trên app MoMo để thanh toán
Thanh toán QR Code: Đối tác tạo QR code theo định dạng MoMo cung cấp, khách hàng chỉ cần dùng app MoMo để quét và thanh toán
3.1.2 Quy trình tích hợp
Bước 1: Đăng ký tài khoản doanh nghiệp
Hoàn thành quá trình đăng ký với đầy đủ thông tin, trạng thái mặc định của doanh nghiệp sẽ
là chưa xác thực Thông tin tích hợp mặc định sẽ môi trường Test
Bước 2: Tham khảo và lựa chọn phương thức thanh toán muốn áp dụng cho ứng dụng Bước 3: Tiến hành tích hợp theo tài liệu của từng phương thức thanh toán
Bước 4: Tiến hành kiểm thử phần mềm, tham khảo các testcase của MoMo cung cấp để
kiểm tra các lỗi phổ biến trong quá trình thanh toán
Bước 5: Sau khi hoàn thành tích hợp và kiểm thử, MoMo sẽ xác thực dịch vụ của bạn trên
môi trường test trước khi lên production
Chương 3 Công nghệ sử dụng
Trang 33Bước 6: Sau khi được xác nhận, tài khoản doanh nghiệp sẽ được chuyển sang trạng thái đã
xác thực
Bước 7: Thay đổi các thông tin tích hợp theo môi trường production
Bước 8: Triển khai dịch vụ thanh toán cho khách hàng
3.1.3 Thông tin cấu hình để kết nối với MoMo API
Partner Code: Thông tin để định danh tài khoản doanh nghiệp
Access Key: Cấp quyền truy cập vào hệ thống MoMo
Secret Key: Dùng để tạo chữ ký điện tử signature
Public Key: Sử dụng để tạo mã hoá dữ liệu bằng thuật toán RSA
Mã hóa RSA: Là một thuật toán mật mã hóa khóa công khai để bảo vệ thông tin trên đường truyền Sử dụng một cặp key (public key và private key) để mã hóa và giải
mã dữ liệu Đối tác dùng public key do MoMo cung cấp để mã hóa data theo định dạng của MoMo, MoMo sẽ giải mã bằng private key
3.2 Open Server Panel
Open Server Panel là một nền tảng máy chủ di động và môi trường phần mềm được tạo riêng cho các nhà phát triển web có tính đến các đề xuất và mong muốn của lập trình viên
Open Server Panel hỗ trợ đa dạng:
Các hệ thống quản lý cơ sở dữ liệu như:
Trang 34OSPanel hoàn toàn miễn phí Download file cài đặt tại https://ospanel.io/download/
Sau khi tải về, chạy file cài đặt, chọn ổ đĩa để cài đặt
3.2.3 Sử dụng
Sau khi cài đặt, tại ổ đĩa vừa cài đặt xuất hiện thư mục OSPanel Để bắt đầu OSPanel, chạy tệp OSPanel.exe Nếu có thể, chương trình chỉ nên được chạy dưới quyền quản trị viên Sau khi bắt đầu chương trình, một biểu lá cờ đỏ trong khay Windows (khu vực gần đồng hồ
hệ thống) Để bật máy chủ web, nhấp chọn vào biểu tượng lá cờ đỏ Một menu xuất hiện như sau:
Trang 35Nhấn chọn Run server có biểu tượng lá cờ màu xanh Chờ đến khi lá cờ màu đỏ chuyển
sang màu xanh thì Server ảo đã sẵn sàng Khi Server đang chạy, có thể tắt Server hoặc chạy
lại Server bằng việc nhấp chọn Stop server hoặc Restart server
Trong lần đầu sử dụng cần tiến hành tùy chỉnh các cài đặt và tạo domain cho project web
Trong menu chọn Settings, chọn tab Modules để tùy chỉnh môi trường cho Server như:
Tiếp tục chọn tab Domains để cài đặt tên miền cho project:
Trang 36Tại thẻ Domain management chọn Manual + Autosearch, sau đó nhập domain muốn sử dụng vào thẻ Domain name chọn thư mục public của project tương ứng với tên domain trong thư mục domains của thư mục cài đặt OSPanel
Nhấn chọn Save để lưu lại các tùy chỉnh
Sau đó, ta có thể chạy project web chỉ cần truy cập domain đã khai báo trong cài đặt
3.3 Laravel
3.3.1 Laravel là gì?
Laravel là một PHP Framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell, được ra mắt vào tháng 6 năm 2011 và nhằm mục tiêu hỗ trợ phát triển các ứng dụng web theo cấu trúc model- view- controller (MVC) Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu- rõ ràng, một hệ thống đóng gói Modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Đối với mỗi developer, đặc biệt là PHP developer chắc hẳn ai cũng biết đến Laravel, framework đứng đầu về số lượt tải trên Packagist cũng như số lượng sao đạt được trên Github Từ khi ra mắt cho đến nay, Laravel đã phát triển một cách mạnh mẽ, vượt qua những framework khác và vươn lên trở thành framework PHP có thể nói được ưa chuộng và được cộng đồng sử dụng nhiều nhất khi phát triển web với PHP
Dưới đây là biểu đồ cho thấy sự tăng trưởng về số lượng sao trên Github của Laravel so với một số framework khác:
Trang 37Hình 7 Biểu đồ số lượng sao trên Github của Laravel và các framework khác
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework phổ biến nhất, Laravel đã giành vị trí quán quân cho PHP framework phổ biến nhất năm
2015, theo sau lần lượt là Symfony2, Nette, CodeIgniter, Yii2 vào một số khác Trước đó, Tháng 8 năm 2014, Laravel đã trở thành project PHP phổ biến nhất và được theo dõi nhiều nhất trên Github
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github
3.3.2 Tại sao nên sử dụng Laravel?
Mặc dù ra đời muộn hơn so với CakePHP và Codeigniter nhưng Laravel đã nhanh chóng được cộng đồng lập trình viên đón nhận và sử dụng nên chỉ đến khoảng giữa năm 2013 nó
đã đứng đầu bảng xếp hạng đánh giá sao trên Github Sự ra đời của Laravel như một luồng gió mới thổi vào cộng đồng framework PHP Nó có thể giải quyết tốt những web project lớn Rất nhiều công ty đã sử dụng nó để phát triển các sản phẩm cho công ty của họ
Trang 38Hình 8 Biểu đồ 15 framework miễn phí tốt nhất năm 2015
Sở dĩ Laravel phát triển nhanh chóng và mạnh mẽ như vậy là nhờ vào các đặc điểm mà nó cung cấp:
Dễ dàng sử dụng: Lý do đầu tiên khiến Laravel nhanh chóng được cộng đồng lập
trình viên đón nhận và sử dụng nhiều là do nó rất dễ để sử dụng Ngay cả khi lập trình viên mới chỉ có những kiến thức cơ bản nhất về lập trình web với PHP thì việc bắt đầu sử dụng Laravel cũng chỉ mất vài giờ là có thể bắt tay vào làm việc với một project nhỏ Document mà laravel cung cấp trên trang chủ được viết rất rõ ràng và
dễ hiểu giúp người dùng nhanh chóng tìm được những gì mình cần
Mã nguồn mở: Laravel là một framework mã nguồn mở và hoàn toàn miễn phí
Toàn bộ code của nó được đặt trên Github, người dùng có thể dễ dàng pull về và xem cách nó hoạt động như thế nào và sử dụng ngay
Blade template: Laravel sử dụng cung cấp cho người dùng một template engine gọi
là blade và các công cụ như Elixir giúp bạn dễ dàng quản lý các assets ( biên dịch, ghép nối, nén ), cũng như chia nhỏ code HTML ra thành nhiều phần Giúp cho việc thiết kế cũng như quản lý các assets trở nên vô cùng đơn giản, người dùng có thể sử dụng code php bên trong file giao diện của mình một cách thuận lợi và không bị rối mắt như sử dụng cặp thẻ <?php ?> thông thường:
Trang 39Hình 9 So sánh code khi sử dụng Blade của Laravel và code PHP thông thường
Xây dựng theo mô hình MVC: Laravel sử dụng MVC pattern để xây dựng
framework Nó đảm bảo rằng các code được trình bày logic và hợp lý Dễ dàng để
có thể hiểu được nó Vì vậy nó làm cho web project trở nên dễ quản lý cũng như phát triển về lâu dài
Libraries and configuration: Laravel tạo điều kiện cho các developer có thể thay
đổi tùy chọn và cấu hình để phù hợp với nhiều môi trường Các developer cũng có thể viết các gói ( package ) có thể là một tính năng hay một đoạn code gì đó Nó dễ dàng được khai báo trong Laravel thông qua các provider Chính điều này, với số lượng các developer đông đảo thì số lượng package mà Laravel có ngày càng tăng lên Chúng ta có thể dễ dàng tìm được một vài đoạn code cũng như một vài tính năng
mà chúng ta mong muốn trong project chỉ trong vài phút Nó tiết kiệm hơn so với
việc phải ngồi viết code cho tính năng đó Ví dụ, chỉ với một câu lệnh đơn giản: $php
artisan make:auth, chúng ta đã dựng được toàn bộ các tính năng như đăng nhập,
đăng xuất, đăng ký, quên mật khẩu mà không cần code thêm bất kỳ dòng code nào, chúng ta cũng có thể chỉnh sửa lại logic sao cho phù hợp với nhu cầu cá nhân
Trang 40 Các tính năng bảo mật: Để giúp lập trình viên có thể tập trung thời gian vào việc
phát triển các tính năng, Laravel cung cấp sẵn cho người dùng các tính năng bảo mật
cơ bản như:
1 ORM của Laravel sử dụng PDO thay vì mysqli để chống lại tấn công SQL Injection
2 Laravel sử dụng một field token ẩn để chống lại tấn công kiểu CSRF
3 Các biến được đưa ra view mặc định đều được Laravel escape để tránh tấn công XSS
Cộng đồng phát triển mạnh mẽ: Trong quá trình làm việc chúng ta có thể gặp rất
nhiều những vấn đề, bug phát sinh nhưng chưa tìm được câu trả lời Những vướng mắc đó có thể đã được người khác khắc phục, giải quyết và chúng ta có thể sử dụng đáp án đó hoặc đặt câu hỏi trên các diễn đàn thì cộng đồng đông đảo người sử dụng Laravel sẽ hỗ trợ chúng ta trong việc giải quyết chúng
3.3.3 Yêu cầu server
Sau khi cài đặt xong Composer, Server, Git
Bước 1: Truy cập vào domains của OSPanel
Bước 2: Nhấn phím “shift” và click chuột phải chọn “open powershell window here” Bước 3: Gõ lệnh composer create-project prefer-dist laravel/laravel blog
(Chú ý: Blog là tên Project mà bạn muốn cài – có thể thay đổi)
Bước 4: Mở file env cấu hình thông tin db, url cho ứng dụng
Bước 5: Tạo cơ sở dữ liệu MySQL