16Figure 7: Biểu đồ hoạt động xem danh sách nhà hàng.. 18Figure 11: Biểu đồ hoạt động thêm nhà hàng mới.. Xem danh sách nhà hàng: a Khái quát: Hệ thống có hai trang để xem danh sách các
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐHQG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
***
BÁO CÁO
BỘ MÔN: CÔNG NGHỆ PHẦN MỀM (INT2008_5)
Đề tài: Ứng dụng giới thiệu nhà hàng
Trang 2Lời cam đoan
Chúng em, bao gồm trưởng nhóm (Trương Khôi Nguyên - 20020271)cùng các thành viên (Trần Anh Tú - 20020495, Nguyễn Văn Thịnh -
20020477, Hoàng Sỹ Quý - 20020466 và Nguyễn Minh Chiến - 20020369)xin cam kết những nội dung sau:
1 Nghiêm túc, trung thực trong quá trình làm bài tập nhóm
2 Không sao chép nội dung bài tập từ nguồn có sẵn
Chúng em xin cam đoan các điều trên là đúng sự thật trong quá trình làmBài tập lớn môn Công nghệ phần mềm (INT2008_5) Chúng em hoàn chịutrách nhiệm nếu vi phạm hoặc thực hiện không đúng các điều kể trên theoquy định của nhà trường, lớp học cũng như của thầy cô giảng dạy học phầnmôn Công nghệ phần mềm (INT2208_5)
Trang 3Chương 2: Thu thập, phân tích và đặc tả yêu cầu 10
2
Trang 42.4.1 Tương tác với các hệ thống khác bên ngoài: 28
Trang 54
Trang 6Figure 4: Biểu đồ hoạt động đăng nhập 14Figure 5: Biểu đồ hoạt động đăng ký user mới 15Figure 6: Biểu đồ ca sử dụng xem danh sách nhà hàng 16Figure 7: Biểu đồ hoạt động xem danh sách nhà hàng 16Figure 8: Biểu đồ ca sử dụng xem chi tiết nhà hàng 17Figure 9: Biểu đồ hoạt động xem chi tiết nhà hàng 17Figure 10: Biểu đồ ca sử dụng thêm nhà hàng mới 18Figure 11: Biểu đồ hoạt động thêm nhà hàng mới 19Figure 12: Biểu đồ ca sử dụng chỉnh sửa thông tin nhà hàng 20Figure 13: Biểu đồ hoạt động chỉnh sửa thông tin nhà hàng 20Figure 14: Biểu đồ ca sử dụng xóa một nhà hàng 21Figure 15: Biểu đồ hoạt động xóa một nhà hàng 21Figure 16: Biểu đồ ca sử dụng xem danh sách nhà hàng 22Figure 17: Biểu đồ hoạt động xem danh sách nhà hàng 22Figure 18: Biểu đồ ca sử dụng xem chi tiết nhà hàng 23Figure 19: Biểu đồ hoạt động xem chi tiết nhà hàng 23Figure 20: Biểu đồ ca sử dụng thêm một nhà hàng 24Figure 21: Biểu đồ hoạt động thêm một nhà hàng 24Figure 22: Biểu đồ ca sử dụng chỉnh sửa thông tin nhà hàng 25Figure 23: Biểu đồ hoạt động chỉnh sửa thông tin nhà hàng 26Figure 24: Biểu đồ ca sử dụng xóa một nhà hàng 26Figure 25: Biểu đồ hoạt động xóa một nhà hàng 27
Trang 7Figure 26: Biểu đồ ER dữ liệu 33Figure 27: Sơ đồ kiến trúc hệ thống 36Figure 28: Biểu đồ EER thể hiện mối quan hệ các thành phần dữ liệu.37Figure 29: Biểu đồ tuần tự thể hiện hoạt động đăng nhập 40Figure 30: Biểu đồ tuần tự thể hiện hoạt động thêm nhà hàng mới 41Figure 31: Biểu đồ tuần tự thể hiện hoạt động chỉnh sửa thông tin nhà
Trang 8Danh sách bảng biểu
Table 1: Usecase đăng ký và đăng nhập 28Table 2: Use case xem danh sách nhà hàng của User 29Table 3: Use case thêm nhà hàng của User 30Table 4: Use case sửa thông tin nhà hàng của User 30Table 5: Use case xóa nhà hàng của User 31Table 6: Use case xem danh sách nhà hàng của Admin 31Table 7: Use case thêm nhà hàng của Admin 32Table 8: Use case sửa thông tin nhà hàng của Admin 32Table 9: Use case xóa nhà hàng của Admin 33
Table 13: Chi tiết bảng Restaurants 38
Trang 9Chương 1: Đặt vấn đề
1.1 Lý do thực hiện đề tài:
Khoa học và xã hội ngày càng phát triển việc chia sẻ thông tin làhết sức cần thiết Hiện nay internet là môi trường chia sẻ thông tin được sửdụng rộng rãi và vô cùng cần thiết với đời sống hiện nay
Bối cảnh: Một nhóm bạn chơi thân với nhau thường xuyên rủ nhau
ăn tại các nhà hàng khác nhau Họ có một group chat để chia sẻ những thôngtin về các nhà hàng cho nhau Tuy nhiên, cách này có một số bất cập Dễ kểđến nhất là việc tin nhắn bị trôi và khó khăn trong việc quản lý thông tin
Giải pháp: Hệ thống chung được sử dụng để lưu trữ và chia sẻ cácnhà hàng Một người trong nhóm bạn sẽ host hệ thống này và những ngườikhác có thể chia sẻ lên Website giới thiệu nhà hàng chính là nơi người dùng
có thể chia sẻ bằng cách thêm thông tin về các nhà hàng mình thích cụ thểnhư hình ảnh, nhận xét, địa chỉ, Bên cạnh đó có thể xem được thông tin cácnhà hàng do các dùng khác chia sẻ vào hệ thống
1.2 Phương pháp làm sản phẩm:
Để ứng dụng dễ dàng được tiếp cận và sử dụng trên nhiều nềntảng, bọn em quyết định chọn phát triển và xây dựng dự án của mình trênnền tảng Web thông qua các bước cơ bản như sau :
- Xây dựng ý tưởng: tìm hiểu
- Lập kế hoạch, phân chia công việc
- Thiết kế giao diện, xây dựng dữ liệu
- Tiến hành code và kết hợp các phần với nhau
- Kiểm thử
8
Trang 10- Đưa ra demo.
1.3 Kết quả thu được:
Ứng dụng mà người dùng có thể chia sẻ nhà hàng lên hệ thốngcũng như xem thông tin nhà hàng các user khác Có Admin quản lý các nhàhàng trên hệ thống
Một số hình ảnh về ứng dụng :
Trang 11Chương 2: Thu thập, phân tích và đặc
- Có 2 actor tham gia vào hệ thống: User và Admin Cả 2 actor tham gia
hệ thống thông qua Internet
10
Trang 12Figure 2: Biểu đồ ca sử dụng chung của hệ thống.
2.3.2 Yêu cầu về chức năng:
2.3.2.1 Đăng ký, Đăng nhập:
a) Khái quát:
- Người dùng cần phải đăng nhập tài khoản của mình để có thể vào sửdụng được hệ thống (nếu chưa có tài khoản thì phải đăng ký)
Trang 13Figure 3: Biểu đồ ca sử dụng đăng nhập user.
b) Các bước thực hiện:
- Ban đầu sẽ có 1 màn hình yêu cầu đăng nhập/đăng ký tài khoản
- Nhập các thông tin yêu cầu vào form để hoàn tất đăng ký/đăng nhậptài khoản
- Sau khi đăng ký/đăng nhập xong, người dùng sẽ được đưa vào trong
hệ thống
c) Sơ đồ:
12
Trang 14Figure 4: Biểu đồ hoạt động đăng nhập.
Trang 15Figure 5: Biểu đồ hoạt động đăng ký user mới.
2.3.2.2 User use cases:
2.3.2.1.2 Xem danh sách nhà hàng:
a) Khái quát:
Hệ thống có hai trang để xem danh sách các nhà hàng:
- Trang “Home”: xem danh sách các nhà hàng tất cả User đã đăng
- Trang “My Restaurant”: xem danh sách các nhà hàng bản thân đãđăng
14
Trang 16Figure 6: Biểu đồ ca sử dụng xem danh sách nhà hàng
b) Các bước thực hiện:
Trên thanh Navbar:
- Click vào “Home” để xem danh sách nhà tất cả mọi người đã đăng
- Click vào “My Restaurant” để xem danh sách nhà của bản thân
c) Sơ đồ:
Figure 7: Biểu đồ hoạt động xem danh sách nhà hàng.
2.3.2.1.3 Xem chi tiết nhà hàng:
a) Khái quát:
Hệ thống hiển thị chi tiết nhà hàng đó bao gồm:
Trang 17- Ảnh đại diện về nhà hàng.
- Tên nhà hàng
- Địa chỉ nhà hàng
- Mô tả về nhà hàng
- Tên của người đã đăng nhà hàng này
Figure 8: Biểu đồ ca sử dụng xem chi tiết nhà hàng.
b) Các bước thực hiện:
- Click vào nhà hàng muốn xem
- Lúc này, trang Detail về nhà hàng đó sẽ xuất hiện
c) Sơ đồ:
16
Trang 18Figure 9: Biểu đồ hoạt động xem chi tiết nhà hàng.
Trang 19- Lúc này, ta nhập các thông tin cho nhà hàng cần tạo.
- Click vào “Create!” để hoàn tất thêm nhà hàng
- Nếu đang nhập mà không muốn thêm nhà hàng nữa, thì tắt Modal đi(bằng cách bấm vào Cancel Button, Close Button, hoặc Click ra ngoàiModal), lúc này dữ liệu mà ta vừa nhập vào sẽ reset lại
18
Trang 20c) Sơ đồ:
Figure 11: Biểu đồ hoạt động thêm nhà hàng mới.
2.3.2.1.5 Sửa thông tin nhà hàng
a) Khái quát:
Trang 21- User có thể sửa thông tin về nhà hàng mà mình đã chia sẻ.
b) Các bước thực hiện:
- Click vào 1 nhà hàng, trang show detail sẽ hiện ra
- Lúc này, Click vào “Edit” Button ( nếu là nhà hàng của mình đã chia sẻ thìmới có thể chỉnh sửa được)
- Sau bước trên, 1 Modal sẽ hiện ra, lúc này ta chỉnh sửa các thông tin chonhà hàng
- Click “Update” để xác nhận chỉnh sửa nhà hàng
c) Sơ đồ:
20
Trang 22Figure 13: Biểu đồ hoạt động chỉnh sửa thông tin nhà hàng.
2.3.2.1.6 Xóa nhà hàng:
a) Khái quát:
- User có thể xóa các nhà hàng mà mình đã chia sẻ
Figure 14: Biểu đồ ca sử dụng xóa một nhà hàng.
b) Các bước thực hiện:
- Click vào 1 nhà hàng, trang show detail sẽ hiện ra
- Lúc này, Click vào “Delete” Button :
+ Nếu là nhà hàng mà mình đã chia sẻ thì mới có thể xóa được
Trang 23+ Nếu không thì 1 Toast hiện ra là không được phép xóa.
c) Sơ đồ:
Figure 15: Biểu đồ hoạt động xóa một nhà hàng.
2.3.2.3 Admin use cases:
Trang 24- Tương tự User.
c) Sơ đồ:
Figure 17: Biểu đồ hoạt động xem danh sách nhà hàng.
2.3.2.1.2 Xem chi tiết nhà hàng:
Trang 25Figure 19: Biểu đồ hoạt động xem chi tiết nhà hàng.
Trang 26Figure 21: Biểu đồ hoạt động thêm một nhà hàng.
2.3.2.1.4 Sửa thông tin nhà hàng:
a) Khái quát:
- Admin có thể sửa thông tin về nhà hàng mà mình đã chia sẻ
Trang 27Figure 22: Biểu đồ ca sử dụng chỉnh sửa thông tin nhà hàng.
b) Các bước thực hiện:
- Click vào 1 nhà hàng, trang show detail sẽ hiện ra
- Lúc này, Click vào “Edit” Button ( nếu là nhà hàng của mình đã chia sẻ thìmới có thể chỉnh sửa được)
- Sau bước trên, 1 Modal sẽ hiện ra, lúc này ta chỉnh sửa các thông tin chonhà hàng
- Click “Update” để xác nhận chỉnh sửa nhà hàng
c) Sơ đồ:
26
Trang 28Figure 23: Biểu đồ hoạt động chỉnh sửa thông tin nhà hàng.
2.3.2.1.5 Xóa nhà hàng:
a) Khái quát:
- Admin có thể xóa MỌI nhà hàng có trong hệ thống
Figure 24: Biểu đồ ca sử dụng xóa một nhà hàng
b) Các bước thực hiện:
- Click vào 1 nhà hàng, trang show detail sẽ hiện ra
- Lúc này, click vào “Delete” Button để xóa nhà hàng đó
c) Sơ đồ:
Trang 29Figure 25: Biểu đồ hoạt động xóa một nhà hàng.
2.3.3 Yêu cầu phi chức năng:
- Hoạt động đủ nhanh để không gây khó chịu cho người dùng
- Có hệ thống đăng ký/đăng nhập để quản lý phần quyền
- Giao diện thân thiện dễ nhìn và sử dụng
- Có thể mở rộng thêm các chức năng và số lượng người dùng
- Tương thích tốt với thiết bị của các nền tảng phổ biến như: Desktop,
Mobile, IOS, Android, …
- Tối ưu hóa mã nguồn, mã nguồn gọn nhẹ
2.4 Chi tiết yêu cầu:
2.4.1 Tương tác với các hệ thống khác bên ngoài:
- Hệ thống hiện không liên kết với các hệ thống khác bên ngoài
2.4.2 Yêu cầu về chức năng:
2.4.2.1 Đăng ký, đăng nhập:
Table 1: Usecase đăng ký và đăng nhập.
Tên use case Đăng ký, đăng nhập tài khoản.
28
Trang 30Điều kiện ban đầu Không.
Thông thường ● Hệ thống hiển thị 1 màn hình yêu cầu đăng nhập/đăng ký
tài khoản.
● Nhập các thông tin yêu cầu vào form, thông tin gồm có:
○ Với form đăng nhập:
Bất thường Với Đăng ký tài khoản :
● username bị trùng với username đã có trước đó.
● Hệ thống sẽ hiển thị alert thông báo “Username already taken”.
● Nhập sai confirm password.
● Hệ thống sẽ hiển thị alert thông báo “Password do not match”.
Với Đăng nhập tài khoản:
● Nhập sai username hoặc password.
● Hệ thống sẽ hiển thị alert thông báo “Incorrect username or password”.
Trạng thái kết thúc Sau khi đăng ký hoặc đăng nhập thành công, người dùng sẽ
được phép truy cập vào hệ thống.
2.4.2.2 User use cases:
a) Xem danh sách nhà hàng:
Table 2: Use case xem danh sách nhà hàng của User.
Tên use case User - Xem danh sách nhà hàng.
Điều kiện ban đầu Không.
Thông thường Hệ thống hiển thị danh sách nhà hàng cho user Danh sách sẽ
được phân thành từng trang trong trường hợp có nhiều nhà hàng Mỗi trang sẽ có tối đa 8 nhà hàng.
Bất thường Không.
Trang 31Trạng thái kết thúc Không.
b) Thêm nhà hàng:
Table 3: Usecase thêm nhà hàng của User.
Tên use case User - Thêm nhà hàng.
Điều kiện ban đầu User đang ở trang My Restaurant.
Thông thường ● User click vào button có hình dấu cộng
● Hệ thống hiển thị cửa sổ form để User nhập thông tin nhà hàng vào Thông tin đó gồm có:
● Trong trường hợp user không muốn tạo nhà hàng nữa, user
có thể hủy bằng cách nhấn Cancel hoặc click vào khu vực bên ngoài form.
Bất thường ● User chưa nhập đầy đủ thông tin nhưng đã nhấn “Create!”.
● Hệ thống sẽ hiển thị thông báo thiếu lên trên Trạng thái kết thúc Nhà hàng mới sẽ được thêm vào trên cùng của danh sách nhà
hàng.
c) Sửa thông tin nhà hàng:
Table 4: Usecase sửa thông tin nhà hàng của User.
Tên use case User - Sửa thông tin nhà hàng.
Điều kiện ban đầu User ở trang detail của nhà hàng.
Thông thường ● User clicks vào “Edit” Button.
● Modal sẽ hiện ra, lúc này ta nhập các dữ liệu mới cho nhà hàng.
30
Trang 32● Click “Update” để xác nhận chỉnh sửa nhà hàng.
● Sau khi chỉnh sửa thành công hệ thống sẽ có 1 Toast thông báo là “Update successfully”.
● Trong trường hợp user không muốn chỉnh sửa nhà hàng nữa, user có thể hủy bằng cách nhấn Cancel hoặc click vào khu vực bên ngoài form.
Bất thường ● Nếu không phải nhà hàng mà mình chia sẻ thì User sẽ
không Edit được Lúc này hệ thống gửi thông báo “You are not allowed”.
● User để thông tin trống hoặc chỉ chứa các khoảng trắng.
● Hệ thống sẽ hiển thị thông báo thiếu lên trên.
Trạng thái kết thúc Nhà hàng update thành công, hiển thị thông báo “Update
successfully”.
d) Xóa nhà hàng:
Table 5: Usecase xóa nhà hàng của User.
Tên use case User - Xóa nhà hàng.
Điều kiện ban đầu User ở trang detail của nhà hàng.
Thông thường ● Click vào “Delete” Button để xóa nhà hàng đó
● Sau khi xóa thành công hệ thống sẽ có 1 Toast thông báo
là “Delete successfully”.
Bất thường ● Nếu không phải nhà hàng mà mình chia sẻ thì User sẽ
không Xóa được Lúc này hệ thống gửi thông báo “You are not allowed”.
Trạng thái kết thúc Xóa nhà hàng thành công, hiển thị thông báo “Delete
successfully”.
2.4.2.3 Admin use cases:
a) Xem danh sách nhà hàng:
Table 6: Usecase xem danh sách nhà hàng của Admin.
Tên use case Admin - Xem danh sách nhà hàng
Trang 33Điều kiện ban đầu Không
Thông thường Hệ thống hiển thị danh sách nhà hàng cho admin Danh sách
sẽ được phân thành từng trang trong trường hợp có nhiều nhà hàng Mỗi trang sẽ có tối đa 8 nhà hàng
Bất thường Không
Trạng thái kết thúc Không
b) Thêm nhà hàng:
Table 7: Usecase thêm nhà hàng của Admin.
Tên use case Admin - Thêm nhà hàng.
Điều kiện ban đầu Admin đang ở trang My Restaurant.
Thông thường ● Admin click vào button có hình dấu cộng.
● Hệ thống hiển thị cửa sổ form để Admin nhập thông tin nhà hàng vào Thông tin đó gồm có:
Bất thường ● Admin chưa nhập đầy đủ thông tin nhưng đã nhấn
“Create!”.
● Hệ thống sẽ hiển thị thông báo thiếu lên trên Trạng thái kết thúc ● Nhà hàng mới sẽ được thêm vào trên cùng của danh sách
nhà hàng.
c) Sửa thông tin nhà hàng:
Table 8: Usecase sửa thông tin nhà hàng của Admin.
Tên use case Admin - Sửa thông tin nhà hàng.
32
Trang 34Điều kiện ban đầu Admin ở trang detail của nhà hàng.
Thông thường ● Admin click vào “Edit” Button.
● Modal sẽ hiện ra, lúc này ta nhập các dữ liệu mới cho nhà hàng.
● Click “Update” để xác nhận chỉnh sửa nhà hàng.
● Sau khi chỉnh sửa thành công hệ thống sẽ có 1 Toast thông báo là “Update successfully”.
● Trong trường hợp user không muốn chỉnh sửa nhà hàng nữa, user có thể hủy bằng cách nhấn Cancel hoặc click vào khu vực bên ngoài form.
Bất thường ● Nếu không phải nhà hàng mà mình chia sẻ thì Admin sẽ
không Edit được Lúc này hệ thống gửi thông báo “You are not allowed”.
● Admin để thông tin trống hoặc chỉ chứa các khoảng trắng.
● Hệ thống sẽ hiển thị thông báo thiếu lên trên.
Trạng thái kết thúc Nhà hàng update thành công, hiển thị thông báo “Update
successfully”.
d) Xóa nhà hàng:
Table 9: Usecase xóa nhà hàng của Admin.
Tên use case Admin - Xóa nhà hàng
Điều kiện ban đầu Admin ở trang detail của nhà hàng.
Thông thường Click vào “Delete” Button để xóa nhà hàng đó.
Trang 35Figure 26: Biểu đồ ER dữ liệu.
a) User entity:
Table 10: Thuộc tính của User.
Thông tin Loại Mô tả Ghi chú
Tên Văn bản Tên hiển thị của User hoặc Admin
Là admin? Boolean Nếu một tài khoản có thông tin này là True
thì tài khoản này là tài khoản admin
b) Restaurant entity:
Table 11: Thuộc tính của Nhà hàng
Thông tin Loại Mô tả Ghi chú
Tên Văn bản Tên nhà hàng Tên nhà hàng có thể
trùng nhau Địa chỉ Văn bản Địa chỉ của nhà hàng Địa chỉ nhà hàng có
Trang 37+ Lập trình theo cặp hiện không khả thi
+ Sử dụng User Story cũng chưa quá cần thiết
- Phương án đưa ra:
+ Sử dụng backlog thay cho User Story
+ Sử dụng Kanban để quản lý
- Chi tiết:
● Hoạt động planning:
○ Cả nhóm thảo luận về các tính năng muốn thêm vào
○ Project manager tổng hợp lại và đưa vào backlog
● Hoạt động design:
○ Design càng đơn giản càng tốt
○ Không design ngoài task đang nhận
● Hoạt động coding:
○ Developer tự chọn task để làm
- Việc phát triển hệ thống được quản lý bằng kanban
- Quản lý phiên bản và collaboration được thực hiện bằng Github
36