Đối tượng phạm vi nghiên cứu Đối tượng nghiên cứu gồm:- Nơi cho thuê sân bóng STBALL- Công nghệ: PHP, Framework Laravel- Hệ quản trị MySql Mục đích nghiên cứu:- Xác định làm rõ các vấn
TỔNG QUAN VỀ NỘI DUNG NGHIÊN CỨU
Giới thiệu chung
STBALL là nơi cho thuê sân bóng Cửa hàng này đang có chi nhánh trên địa bàn thành phố Hà Nội số 30 ngõ 7, đường Vạn Xuân, Hoài Đức, Hà Nội
Hiện nay để cải thiện chất lượng người dùng cũng như giúp người dùng đặt sân bóng một cách nhanh chóng, giúp chủ sở hữu quản lý sân bóng, thống kê một cách dễ dàng, tiết kiệm sức lao động Từ đó STBALL quyết định xây dựng nền tảng cho thuê sân bóng trên website.
Những vấn đề còn tồn tại:
- Các nơi cho thuê sân bóng hiện nay hầu như thường sẽ làm việc theo kiểu thủ công, thông tin thì ghi ở giấy giờ hoặc word, excel.
- Khách hàng muốn đặt sân sẽ thực hiện một trong các bước sau: gọi điện, ra tận nơi đặt, liên hệ qua mạng xã hội.
- Hiệu suất làm việc chưa cao Đối với những nơi lớn, nhiều sân bóng, tỉ lệ nhầm lẫn, rủi ro cao.
- Việc thống kê doanh thu, số lượng đặt sân trở thành bài toán khó.
Cơ sở lý thuyết
Sử dụng mô hình 3 lớp MVC.
MVC là viết tắt của Model – View – Controller, mô hình phần mềm này được tạo ra giúp xây và quản lý dự án phần mềm có hệ thống hơn Mô hình này đang được sử dụng rỗng rãi nhất hiện nay.
Model: có nhiệm vụ thao tác trực tiếp với cơ sở dữ liệu, nó sẽ chứa các hàm, các phương thức để truy vấn vào cơ sở dữ liệu.
View: có nhiệm vụ nhận dữ liệu từ Controller và hiển thị dữ liệu ra màn hình Dữ liệu hiển thị ra sẽ phụ thuộc vào Controller.
Controller: là trung gian giữa Model và View, có nhiệm vụ lấy yêu cầu từ khách hàng sau đó gửi và lấy dữ liệu từ Model và trả dữ liệu về Controller. Ưu và nhược điểm: Ưu điểm:
- Thuận tiện cho việc quản lý, bảo trì, nâng cấp
- Cồng kềnh, tốn thời gian trong việc phát triển dự án nhỏ.
- Khá là khó hiểu cho người mới tiếp cận.
Hình 1-1: Hình ảnh mô hình MVC
Với CSDL được quản lý bởi MySQL Các đối tượng trong CSDL được miêu tả chi tiết tại phần mô tả cơ sở dữ liệu cho hệ thống.
1.2.2 Giới thiệu về Laravel Framework
Hình 1-2: Hình ảnh Laravel Framework
- Laravel là một Framework của PHP giúp xây dựng các ứng ứng web một cách dễ dàng hơn Laravel dựa theo kiến trúc MVC giúp dễ dàng bảo trì cũng như nâng cấp hơn
- Laravel được tạo ra bởi Taylor Otwell
- Hiện tại phiên bản mới nhất của Laravel đến ngày 01/6/2023 là Laravel 10.
1.2.2.2 Ưu điểm và nhược điểm Ưu điểm:
- Có các tài nguyên lớn và sẵn có giúp xây dựng ứng dụng web một cách nhanh chóng
- Bảo mật cao, chống được các kiểu tấn công như SQL Injection, CSRF
- Xây dựng máy chủ Api nhanh chóng với Sanstum Dễ sử dụng.
- Thiếu sự liên kết giữa các phiên bản
- Hiệu năng chưa được tối ưu
- Chậm khi làm việc với dữ liệu lớn.
1.2.3 Giới thiệu về hệ quản trị MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS) hoạt động theo mô hình client-server Với RDBMS là viết tắt 15 của Relational Database Management System MySQL được tích hợp apache, PHP
MySQL quản lý dữ liệu thông qua các cơ sở dữ liệu Mỗi cơ sở dữ liệu có thể có nhiều bảng quan hệ chứa dữ liệu MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL
Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao MySQL miễn phí hoàn toàn và có nhiều phiên bản cho các hệ điều hành khác nhau: Windows, Linux, MacOS, v.v MySQL là một trong những ví dụ rất cơ bản về hệ quản trị cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL).
1.2.3.2 Ưu và nhược điểm Ưu điểm:
- Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh
- Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao
- Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp
- Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết
- Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi. Nhược điểm:
- Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với các hạn chế về chức năng mà một vào ứng dụng có thể cần
- Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài liệu tham khảo, các giao dịch, kiểm toán, v.v) làm cho nó kém tin cậy hơn so với một số hệ quản trị cơ sở dữ liệu quan hệ khác
- Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dần lên thì việc truy xuất dữ liệu của bạn là khá khó khăn, khi đó chúng ta sẽ phải áp dụng nhiều biện pháp để tăng tốc độ truy xuất dữ liệu như là chia tải database này ra nhiều server, hoặc tạo cache MySQL.
Quy trình, công nghệ và công cụ sử dụng
Các công cụ được sử dụng để phát triển phần mềm:
Các công nghệ được sử dụng:
Các kỹ thuật được sử dụng:
- Các kỹ thuật lập trình cần thiết.
- Sử dụng phương pháp thiết kế hướng đối tượng.
- Thiết kế theo mô hình MVC.
- Áp dụng mô hình quy trình thác nước.
- Mô hình hóa các yêu cầu đối tượng.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Mô tả bài toán
Khi khách hàng có nhu cầu thuê sân bóng sau khi đã xem kỹ thông tin về sân thông qua trang web của cửa hàng, khách hàng sẽ đặt sân thông qua website
Khách hàng muốn đặt sân bóng chỉ cần điền thông tin như: tên, số điện thoại hoặc email Sau đó chuyển tiền cọc từ 40% giá tiền thuê sân bóng.
Nếu khách hàng muốn xem lại tình trạng sân bóng đang đặt thì có thể đặt sân bóng sau khi đăng nhập hoặc dùng chức năng tra cứu sân bóng. Ở cuối trang web có thống kê các yêu cầu đặt sân trong ngày và tháng.
Nếu khách hàng muốn đặt sân nhanh có thể sử dụng chức năng tìm kiếm sân trống bằng cách điền thời gian bắt đầu và kết thúc mong muốn.
Trên trang web hiển thị đầy đủ các thông tin về sân bóng, có thể sắp xếp theo trạng thái sân bóng Khách hàng có thể chọn một sân mình mong muốn và nhấn nút xem Trang web sẽ hiển thị chi tiết thông tin về sân bóng. Khách hàng muốn xem các giờ đã có người đặt của sân bằng cách nhấn nút
“Xem thời gian sân đã đặt” hoặc đặt sân bóng bằng cách nhấn nút “Đặt ngay”. Khách hàng sẽ phải chọn thời gian bắt đầu và kết thúc của sân bóng, sau đó điền thông tin như: tên, số điện thoại hoặc email và nhấn nút “Đặt sân” để đặt sân Trang web sẽ hiển thị thông tin về yêu cầu đặt sân cũng như thông tin chuyển khoản tương ứng.
- Xem thông tin sân bóng.
- Xem thời gian sân đã được đặt.
- Kiểm tra thời gian đó sân đã được đặt hay chưa.
- Chức năng phía người quản trị.
Yêu cầu phi chức năng.
- Bảo mật giữ liệu, độ tin cậy cao.
- Giao diện đẹp mắt, thu hút.
- Có thể hoạt động tốt trên nhiều nền tảng và thiết bị khác nhau.
- Thao tác đơn giản dễ sử dụng
- Tốc độ sử lý thông tin nhanh.
Mỗi người dùng hệ thống đều phải có một tài khoản bao gồm email và mật khẩu để đăng nhập vào hệ thống
Các dạng người dùng bao gồm:
- Người quản trị hệ thống.
- Khách hàng (đã có tài khoản).
- Khách ghé thăm (khách hàng không có tài khoản, giới hạn các chức năng có thể thực hiện).
2.1.2 Quản lý khách hàng Đăng ký tài khoản đi kèm các thông tin phục vụ cho việc mua hàng thanh toán
Các thông tin bao gồm:
2.1.3 Quản lý khách ghé thăm
Khách ghé thăm: Chưa đăng ký tài khoản bị hạn chế các chức năng có thể thực hiện có thể thực hiện chức năng đăng ký tài khoản để thêm quyền.
Các sản phẩm sân bóng trong cửa hàng, theo dõi bởi người quản trị Chi tiết về lượng khách đặt và huỷ đơn đặt sân Theo dõi được tình trạng các đơn đặt Theo các dữ liệu trên có thể thống kê được doanh thu của cửa hàng.
Tác nhân và chức năng hệ thống
Các tác nhân hệ thống:
- Khách ghé thăm (khách hàng không có tài khoản): Xem thông tin về sân bóng, đặt sân, tìm kiếm sân trống, xem thời gian đã đặt của sân, tra cứu yêu cầu đặt sân.
- Khách hàng (khách hàng đã có tài khoản): tương tự như khách ghé thăm và thêm các chức năng sau: xem thông tin cá nhân, sửa thông tin cá nhân, đổi mật khẩu, xem các yêu cầu đặt sân đã đặt.
- Nhân viên: là người có thể duyệt các yêu cầu đặt sân.
- Người quản trị: là người có quyền cao nhất, và cũng là người đóng vai trò quan trọng của hệ thống sau khi đăng nhập có thể xem thống kê, quản lý sân bóng, quản lý loại sân, quản lý yêu cầu, quản lý thông tin chuyển khoản, quản lý nhân viên.
2.2.2 Tác nhân và các chức năng tương ứng
Bảng 2.1 Bảng mô tả thông tin về tác nhân và chức năng tương ứng.
STT Tác Nhân Chức Năng Ghi Chú
3 Xem danh sách, chi tiết sân bóng
5 Tra cứu yêu cầu đặt sân
Là khách chưa đăng nhập vào hệ thống.
7 Xem thời gian đã đặt của sân
1 Xem danh sách, chi tiết sân bóng
3 Tra cứu yêu cầu đặt sân
5 Xem thời gian đã đặt của sân
6 Xem, sửa thông tin cá nhân
8 Xem các yêu cầu đặt sân đã đặt
Là khách đã đăng nhập vào hệ thống.
1 Xem danh sách các yêu cầu đặt sân.
2 Cập nhật yêu cầu đặt sân
3 Thêm, Xóa ảnh cho sân bóng.
Là nhân viên đã đăng nhập vào trang quản trị.
2 Quản lý thể loại sân
4 Quản lý thông tin thanh toán
Là người quản trị đã đăng nhập vào trang quản trị.
Phân tích và thiết kế
2.3.1.1 Sơ đồ use case tổng quan
Tim san trong theo gio
Xem danh sach cac san
Tra cuu san Quan ly loai san
Xem thoi gian da dat cua san bong
Quan ly gio cao diem
Quan ly thong tin thanh toan
Quan ly yeu cau Quan ly san bong Quan ly nhan vien
Hình 2-4: Sơ đồ use case tổng quan
2.3.1.2 Sơ đồ phân rã use case
Quan ly gio cao diem (from Use Case View)
Quan ly nhan vien (from Use Case View)
Quan ly san bong (from Use Case Vi ew)
Quan ly thong tin thanh toan (from Use Case Vi ew)
Quan ly yeu cau (from Use Case Vi ew)
(from Use Case Vi ew) HTCSDL
(from Use Case Vi ew)
DangXuat (from Use Case Vi ew)
Quan ly loai san (from Use Case View)
Duyet don Them giay to tuy than
An, hien thi the ngan hang
Them anh vao san bong
Full quyen xem, them, sua, xoa
(from Use Case Vi ew)
Hình 2-5: Hình ảnh sơ đồ phân rã use case phía người quản trị
Tim san trong theo gio
Xem danh sach cac san
Xem thoi gian da dat cua san bong
Xem cac san da dat
Sua thong tin ca nhan
Hình 2-6: Sơ đồ phân rã use case phía khách hàng
2.3.2 Đặc tả các use case
Tên use case Đăng nhập
Mô tả vắn tắt Use case này cho phép khách hàng đăng nhập vào hệ thống Luồng cơ bản 1 Use case bắt đầu khi khách hàng click vào nút Đăng nhập tại trang chủ hệ thống
Hệ thống hiển thị màn hình đăng nhập.
2 Khách hàng điền địa chỉ email, mật khẩu và nhấn nút Đăng nhập Hệ thống kiểm tra thông tin trong bảng USERS, đăng nhập khách hàng vào hệ thống và hiển thị màn hình trang chủ Use case kết thúc.
Luồng rẽ nhánh 1 Tại bất kì thời điểm nào khi thực hiện use case, nếu không thể kết nối cơ sở dữ liệu thì hệ thống thông báo lỗi Use case kết thúc.
2 Tại bước 2 ở luồng cơ bản, nếu khách hàng không điền đầy đủ thông tin và nhấn Đăng nhập thì hệ thống thông báo các thông tin cần điền Use case kết thúc Các yêu cầu đặc biệt Không có.
Tiền điều kiện Khách hàng chưa đăng nhập vào hệ thống. Hậu điều kiện Khách hàng được đăng nhập vào hệ thống Điểm mở rộng Đăng ký
: KhachHang : DangNhapUI : DangNhapUI : KhachHangController : KhachHangController : USERS : USERS : IHTCSDL : IHTCSDL : HTCSDL : HTCSDL 1: click dang nhap( )
2: hien thi man hinh dang nhap( )
Hình 2-7: Biểu đồ trình tự use đăng nhập
Tên use case Đăng ký
Mô tả vắn tắt Use case này cho phép khách hàng đăng ký tài khoản Luồng cơ bản 1 Use case bắt đầu khi khách hàng click vào nút Đăng ký tại trang chủ hệ thống Hệ thống hiển thị màn hình đăng ký.
2 Khách hàng điền họ và tên, số điện thoại, địa chỉ email, mật khẩu và nhấn nút Đăng ký Hệ thống tạo bản ghi mới trong bảng USERS, đăng nhập khách hàng vào hệ thống và hiển thị màn hình trang chủ
Luồng rẽ nhánh 1 Tại bất kì thời điểm nào khi thực hiện use case, nếu không thể kết nối cơ sở dữ liệu thì hệ thống thông báo lỗi Use case kết thúc.
2 Tại bước 2 ở luồng cơ bản, nếu khách hàng không điền đầy đủ thông tin và nhấn Đăng ký thì hệ thống thông báo các thông tin cần điền Use case kết thúc Các yêu cầu đặc biệt Không có.
Tiền điều kiện Khách hàng chưa đăng nhập vào hệ thống. Hậu điều kiện Khách hàng được đăng nhập vào hệ thống Điểm mở rộng Đăng nhập
: KhachHang : DangKyUI : DangKyUI : KhachHangController : KhachHangController : USERS : USERS : IHTCSDL : IHTCSDL : HTCSDL : HTCSDL 1: click dang ky( )
2: hien thi man hinh dang ky( )
3: nhap ho va ten, so dien thoai, email, mat khau( )
6: tao ban ghi moi tu bang USERS( )
7: cap nhat bang USERS( ) 8: get( )
Hình 2-8: Biểu đồ trình tự use đăng ký
2.3.2.3 Use case tìm sân trống
Tên use case Tìm sân trống
Mô tả vắn tắt Use case này cho phép khách hàng tìm kiếm các sân bóng trống theo giờ.
Luồng cơ bản 1 Use case bắt đầu khi khách hàng click vào nút Chức năng, Tìm sân trống Hệ thống hiển thị màn hình tìm sân trống.
2 Khách hàng chọn ngày, thời gian bắt đầu, kết thúc và nhấn Tìm kiếm Hệ thống lấy thông tin từ bảng ORDERS,
FOOTBALL_PITCHES, PITCH_TYPES và tìm kiếm sân trống và hiển thị ra màn hình danh sách sân trống gồm: tên sân, số người, giá tiền Use case kết thúc.
Luồng rẽ nhánh 1 Tại bất kì thời điểm nào khi thực hiện use case, nếu không thể kết nối cơ sở dữ liệu thì hệ thống thông báo lỗi Use case kết thúc.Các yêu cầu đặc biệt Không có.
Tiền điều kiện Không có.
Hậu điều kiện Không có. Điểm mở rộng Không có.
: KhachHang : TimSanTrongUI : TimSanTrongUI : KhachHangController : KhachHangController : ORDERS : ORDERS :
: PITCH_TYPES : PITCH_TYPES : IHTCSDL : IHTCSDL : HTCSDL : HTCSDL 1: click chuc nang, tim san trong( )
2: hien thi mam hinh tim kiem san trong( )
4: chon thoi gian bat dau, ket thuc
12: lay bang PITCH_TYPES( ) 13: lay danh sach cac yeu cau group by football_pitch_id( )
14: lay danh sach san bong khong ton tai trong yeu cau( ) 15: lay danh sach the loai san bong tuong ung voi san bong( ) 16: return data( )
17: hien thi danh sach cac san bong trong( )
Hình 2-9: Biểu đồ trình tự use tìm sân trống
2.3.2.4 Use case tra cứu yêu cầu đặt sân
Tên use case Tra cứu yêu cầu đặt sân
Mô tả vắn tắt Use case này cho phép khách hàng xem thông tin về yêu cầu đặt sân Luồng cơ bản 1 Use case bắt đầu khi khách hàng click vào nút Chức năng, Tra cứu yêu cầu đặt sân Hệ thống hiển thị màn hình tra cứu yêu cầu đặt sân.
2 Khách hàng nhập mã code của yêu cầu và nhấn nút tìm kiếm Hệ thống lấy dữ liệu từ bảng ORDERS, FOOTBALL_PITCHES,
PITCH_TYPES và hiển thị lên màn hình gồm: trạng thái, tên sân, mã đặt sân, người đặt, số điện thoại, email, thời gian dặt, thời gian kết thúc, tổng thời gian, tổng tiền Use case kết thúc.
Luồng rẽ nhánh 1 Tại bất kì thời điểm nào khi thực hiện use case, nếu không thể kết nối cơ sở dữ liệu thì hệ thống thông báo lỗi Use case kết thúc. Các yêu cầu đặc biệt Không có.
Tiền điều kiện Không có.
Hậu điều kiện Không có. Điểm mở rộng Không có.
: KhachHang : TraCuuSanUI : TraCuuSanUI : KhachHangController : KhachHangController : ORDERS : ORDERS :
: PITCH_TYPES : PITCH_TYPES : IHTCSDL : IHTCSDL : HTCSDL : HTCSDL 1: click tra cuu yeu cau dat san( )
2: hien thi man hinh tra cuu yeu cau dat san( )
7: lay bang ORDERS( ) 8: lay bang FOOTBALL_PITCHES( )
9: lay bang FOOTBALL_PITCHES( ) 10: lay bang PITCH_TYPES( )
11: lay bang PITCH_TYPES( ) 12: lay yeu cau theo ma code( )
13: lay san bong theo football_pitch_id o yeu cau( ) 14: lay the loai san bong theo ma the loai o san bong( )
16: hien thi thong tin yeu cau( )
Hình 2-10: Biểu đồ trình tự use tra cứu yêu cầu đặt sân
Tên use case Đặt sân
Mô tả vắn tắt Use case này cho phép khách hàng đặt sân bóng.
Luồng cơ bản 1 Use case bắt đầu khi khách hàng click vào hình giỏ hàng ở trong sân bóng tại trang chủ hệ thống Hệ thống hiển thị màn hình chi tiết sân bóng.
2 Khách hàng nhấn nút Đặt ngay Hệ thống hiển thị màn hình đặt sân.
3 Khách hàng chọn ngày, thời gian bắt đầu, kết thúc và nhập họ tên, số điện thoại, email (nếu có) và nhấn nút Đặt sân Hệ thống tạo bản ghi mới trong bảng ORDERS và hiển thị màn hình sau khi đặt sân thành công Use case kết thúc.
KẾT QUẢ
Kết quả giao diện
Hình 3-58: Hình ảnh kết quả giao diện trang chủ khách hàng 1
Hình 3-59: Hình ảnh kết quả giao diện trang chủ khách hàng 2
Hình 3-60: Hình ảnh kết quả giao diện trang chủ khách hàng 3
Hình 3-61: Hình ảnh kết quả giao diện tìm sân trống
Hình 3-62: Hình ảnh kết quả giao diện tra cứu yêu cầu đặt sân
Hình 3-63: Hình ảnh kết quả giao diện thông tin cá nhân
Hình 3-64: Hình ảnh kết quả giao diện yêu cầu đặt sân của tôi
Hình 3-65: Hình ảnh kết quả giao diện đăng nhập
Hình 3-66: Hình ảnh kết quả giao diện đăng ký
Hình 3-67: Hình ảnh kết quả giao diện phía người quản trị dashboard
Hình 3-68: Hình ảnh kết quả giao diện phía người quản trị quản lý loại sân
Hình 3-69: Hình ảnh kết quả giao diện phía người quản trị thêm loại sân bóng
Hình 3-70: Hình ảnh kết quả giao diện phía người quản trị cập nhật loại sân bóng
Hình 3-71: Hình ảnh kết quả giao diện phía người quản trị quản lý sân bóng
Hình 3-72: Hình ảnh kết quả giao diện phía người quản trị quản lý yêu cầu lịch
Hình 3-73: Hình ảnh kết quả giao diện phía người quản trị quản lý yêu cầu bảng
Hình 3-74: Hình ảnh kết quả giao diện phía người quản trị cập nhật yêu cầu
Hình 3-75: Hình ảnh kết quả giao diện phía người quản trị thanh toán
Hình 3-76: Hình ảnh kết quả giao diện phía người quản trị thông tin ngân hàng
Hình 3-77: Hình ảnh kết quả giao diện phía người quản trị thêm thẻ ngân hàng
Hình 3-78: Hình ảnh kết quả giao diện phía người quản trị cập nhật thông tin ngân hàng.
Hình 3-79: Hình ảnh kết quả giao diện phía người quản trị thông tin nhân viên
Hình 3-80: Hình ảnh kết quả giao diện phía người quản trị sửa thông tin nhân viên
Kiểm thử chức năng của hệ thống
Hình 3-81: Hình ảnh các test case đã thực hiện