1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án tốt nghiệp Công nghệ thông tin WEB quản lý chuỗi võ đường

111 76 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 111
Dung lượng 6,15 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đây là mô tả

Trang 1

TRƯỜ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 2

Họ 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 5

Ngà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 6

Lờ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 7

2.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 8

4.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 9

5.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 10

Hì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 11

Hì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 12

Bả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 14

BREAD 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 15

1.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 16

1.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 18

trú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 19

2.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 20

võ đườ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 21

Từ 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 22

2.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 23

Cá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 24

2.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 25

2.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 26

2.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 28

4 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 29

10 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 30

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 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 31

2 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 32

3.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 33

Bướ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 34

OSPanel 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 35

Nhấ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 36

Tạ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 37

Hì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 38

Hì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 39

Hì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

Ngày đăng: 15/05/2021, 16:43

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm