Xây dựng hệ thống quản lý sân bóng sử dụng Yii Framework
1. Xây dựng hệ thống quản lý
và book sân bóng đá mini
Người thực hiện:
Trương Phước Hiệu
Tìm Sân Online
2. Học vấn:
Đại học bách khoa Đà Nẵng
Chuyên ngành Công nghệ thông tin
Giới thiệu bản thân
Trương Phước Hiệu
Kinh nghiệm:
Làm web thanh toán trực tuyến bằng AngularJS,
Loopback.
Làm web tìm phòng trọ bằng react, mongodb, express.
Làm web quản lý nhà hàng bằng Rails (đồ án môn học)
Ngôn ngữ LT yêu thích:
Javascript/Nodejs.
Ruby
Sở thích cá nhân:
Đọc sách, tự nghiên cứu
NNLT, đọc code open source.
2
3. Nội dung
I) Yêu cầu bài toán
II) Chức năng mở rộng
III) Tổ chức cơ sở dữ liệu
IV) Mô hình triển khai ứng dụng
V) Demo
VI) Đánh giá kết quả
VII) Hướng phát triển
VIII) Đánh giá quá trình thực tập
3
4. I) Yêu cầu bài toán
1) Yêu cầu chức năng:
Hệ thông gồm có 3 trang :
Admin: Quản lý sân bóng, quản lý acc chủ sân. quản lý
user vv
Trang dành cho chủ sân: Cho thuê sân, xem tình trạng sân
bóng, quản lý doan thu. vv
Trang book sân: cho phép user đăng ký acc, book sân xem
thông tin các sân.
4
5. I) Yêu cầu bài toán
Hệ thông có thể cho phép nhiều chủ sân cùng sử dụng,
Tìm kiếm sân theo khu vực tỉnh/ thành phố, quận huyện,
Hệ thống cho phép chủ sân xem thống kê theo nhiều dạng,
có biểu đồ dễ nhìn.
Hệ thống có thể thêm 1 hoặc nhiều sân tại 1 địa điểm, ví
dụ: Sân Nam Cao có 3 sân, muốn mở rộng thêm 1 sân nữa
Hệ thống dùng cho cả PC và SP (Phát triển thêm nếu có
time)
5
6. I) Yêu cầu bài toán
2) Yêu cầu phi chức năng:
Thực hiện load balancing,
Backup data Master - Slave
Sử dụng 2 server app.
Sử dụng https.
6
Tìm Sân Online
7. I) Yêu cầu bài toán
2) Yêu cầu phi chức năng:
Công nghệ sử dụng
Yii2
Ansible
Vagrant
MySql
Nginx
7
8. II) Chức năng mở rộng:
Đăng nhập qua mạng xã hội.
Định vị vị trí sân qua Google Map.
Tạo các campaign khuyến mãi.
Chủ sân tạo booking tại chỗ.
8
Tìm Sân Online
12. CI
- Git
- Ansible
Hình 2: Mô hình triển khai qua
nhiều server.
App1 App2
Master
Slave
Nginx, Php
Write
Read Read
Nginx, Php
LB
Nginx
MySql
MySql
User
Admin
14. VI) Đánh giá kết quả:
1) Đạt được:
Hoàn thành các yêu cầu đề ra.
Yêu cầu chức năng
Yêu cầu phi chức năng
UI dễ nhìn, bắt mắt.
Mở rộng thêm một số tính năng.
2) Còn thiếu sót:
Chưa test kĩ các tính năng.
UX còn chưa tốt. 14
Tìm Sân Online
15. VII) Hướng phát triển:
Làm thêm trang Admin.
Mở rộng thêm các chức năng
Bảo trì sân.
Block user phá hoại.
Hiển thị trực quan các sân
bằng Google Map.
Lấy thông tin vị trí hiện tại của
người dùng để gợi ý sân.
Thêm notification cho người
dùng và chủ sân. 15
Tìm Sân Online
16. VIII) Đánh giá quá trình thực tập
1) Nhưng điều tiếp thu được
Tiếp thu thêm những kiến thức liên quan đến vận hành hệ thống
như Ansible, Vagrant
Biết thêm ngôn ngữ lập trình php và framework yii2 của nó.
Tiếp xúc với môi trường làm việc chuyên nghiệp cùng các đồng
nghiệp thân thiện.
2) Những điều trở ngại
Code giao diện còn chậm.
Thiếu đồng đội cùng làm project.
16
Hinweis der Redaktion
Chào mọi người, em tên là Trương Phước Hiệu. Sau đây là phần trình bày kết quả quá trình thực tập của em với sản phẩm Hệ thống quản lý và book sân bóng đá mini.
Trước tiên, em xin giới thiệu sơ qua chút về bản thân. Em hiện đang là sinh viên năm 4 trường Đại học Bách Khoa Đà Nẵng khoa Công nghệ thông tin.
Trước đây, em từng làm qua…
Do đó Ngôn ngữ lt yêu thích của em là.
Nội dung trình bày được chia làm 8 phần. Bao gồm các phần mô tả, demo và đánh giá. Trước tiên em xin trình bày về yêu cầu bài toán đặt ra.
Yêu cầu đặt ra là hệ thống có 3 trang Admin, Chủ sân, Người dùng. (Đọc tiêu đề) Tuy nhiên do nhân lực cũng như thời gian có hạn nên em chỉ hoàn thành trang chủ sân và người dùng.
Chi tiết hơn, (đọc tiêu đề). Những yêu cầu trên em đã hoàn thành.
Về yêu cầu phi chức năng, em đã thực hiện được (đọc tiêu đề)
Công nghệ sử dụng trong sản phẩm này bao gồm (đọc tiêu đề)
Khi đã hoàn thành các yêu cầu chức năng, em còn làm thêm được các chức năng mở rộng sau.
Sau đây là phần mô tả tổ chức cơ sở dữ liệu.
Ta có 2 bảng User và Owner chứa lần lượt thông tin đăng nhập của Người dùng và Chủ sân.
Chủ sân có nhiều Sân ở nhiều địa điểm.
Sân chứa các thông tin như Tên sân, địa chỉ, số điện thoại,
1 sân có thể có nhiều sân con.
Sân con chứa các thông tin như tên sân con, giờ mở cửa, giờ đóng cửa, giá thuê mỗi giờ, loại sân,…
sân con có mỗi quan hệ nhiều nhiều với bảng khuyến mãi qua bảng trung gian.
1 sân con có thể có nhiều Booking.
Booking có 2 trạng thái chưa thanh toán, và đã thanh toán.
1 user có thể tạo nhiều booking.
Ngoài ra còn có 2 bảng AuthUser và AuthOwner để hỗ trợ đăng nhập qua mạng xã hội.
Tiếp theo em xin trình bày về mô hình triển khai ứng dụng. Sử dụng Vagrant để tạo các máy ảo, ansible để deploy tự động.
Đầu tiên, ta có các máy sau (đọc tên) Trong đó CI đã cài sẵn Git và Ansible. Ở CI ta chạy provision của ansible để cài đặt và cấu hình tự động cho các máy còn lại như sau
Cài đặt mysql ở 2 máy master, slave và đồng bộ giữa chúng.
Cài đặt nginx, php ở 2 máy app1, app2. Cấu hình ứng dụng và kết nối với master, slave. Trong đố hành động Ghi sẽ chuyển về master, còn hành động đọc sẽ chuyển về slave.
Cài đặt nginx ở máy load balancer. Cấu hình nginx để cân bằng tải cho 2 máy app1, app2.
Như vậy khi user truy cập vào máy LB, request sẽ chuyển giao sang 1 trong 2 máy app1, app2.
Tiếp theo em xin trình bày phần demo ứng dụng.
Kết thúc phần demo, em xin tự đánh giá ứng dụng như sau
Về những điều đạt được
- Tuy nhiên vẫn còn những thiếu sót như
Về hướng phát triển ứng dụng, em dữ định sẽ tiếp tục làm thêm trang admin.
Sau đó mở rộng…
Kỳ thực tập 2 tháng qua đã để lại cho em những kiến thức bổ ích cũng như những kinh nghiệm để phát triển bản thân. Trong đó em đã tiếp thu được
Tuy nhiên còn tồn tại một số điều trở ngại như