Đặc tả thay đổi thông tin cá nhân Đầu vào ID định danh tài khoản Dữ liệu thông tin cá nhân Quá trình xử lý NẾU đã đăng nhập THÌ Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL NẾU
Trang 1ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – Năm 2016
Chuyên ngành: Công Nghệ Thông Tin
XÂY DỰNG ỨNG DỤNG CHIA SẺ CÔNG THỨC NẤU ĂN
YUMMY TRÊN HỆ ĐIỀU HÀNH IOS
ĐINH NGỌC LÊ QUÂN
Trang 2ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Hà Nội – Năm 2016
Chuyên ngành: Công Nghệ Thông Tin Giảng viên hướng dẫn: TS Nguyễn Đức Tuấn
XÂY DỰNG ỨNG DỤNG CHIA SẺ CÔNG THỨC NẤU ĂN
YUMMY TRÊN HỆ ĐIỀU HÀNH IOS
ĐINH NGỌC LÊ QUÂN
Trang 3Hà Nội, ngày tháng năm 2016
NHIỆM VỤ CỦA ĐỒ ÁN TỐT NGHIỆP
Họ và tên: Đinh Ngọc Lê Quân Giới tính: Nam
Ngày, tháng, năm sinh: 30/04/1993 Nơi sinh: Hà Nội
Chuyên ngành: Công nghệ thông tin Mã SV: 11A100292
TÊN ĐỀ TÀI
Xây dựng ứng dụng chia sẻ công thức nấu ăn YMMY
trên hệ điều hành IOS
NHIỆM VỤ VÀ NỘI DUNG
Nghiên cứu, tìm hiểu hệ điều hành IOS Xây dựng ứng dụng chia sẻ công thức nấu ăn trên hệ điều hành IOS
NGÀY GIAO NHIỆM VỤ:24/08/2016
NGÀY HOÀN THÀNH NHIỆM VỤ:20/11/2016
Trang 4Đinh Ngọc Lê Quân
- Khảo sát thực tế
- Phân tích và thiết kế hệ thống
- Xây dựng ứng dụng phía Server - side
- Nghiên cứu ngôn ngữ Objective-C
- Xây dựng ứng dụng chạy trên thiết bị phía Client – side
- Tổng hợp và xây dựng báo cáo đồ án
Trang 5Lời đầu tiên em xin gửi đến thầy Nguyễn Đức Tuấn, người đã trực tiếp hướng dẫn em trong suốt quá trình thực hiện đồ án của mình Những nhận xét, đánh giá và nhất là những chia sẻ kinh nghiệm làm việc của thầy là những thông tin vô cùng hữu ích cho việc hoàn thành dự án của em Em xin trân trọng cảm ơn thầy, chúc thầy và gia đình luôn luôn mạnh khỏe và đạt được mọi thành công trong cuộc sống
Bên cạnh đó, em cũng xin cảm ơn các thầy cô thuộc hội đồng kiểm tra tiến độ và chuyên môn đồ án tốt nghiệp những lời khuyên, góp ý, đánh giá và động viên của các thầy cô đã giúp em rất nhiều trong quá trình hoàn thành đồ
án, giúp em thấy được những sai sót mắc phải Em xin chúc các thầy cô và gia đình mạnh khỏe, luôn luôn là người lái đó ân cần dìu dắt các thế hệ tiếp theo của FITHOU trưởng thành
Đinh Ngọc Lê Quân
Hà Nội, tháng 11 năm 2016
Trang 6Chương 1 KHẢO SÁT HỆ THỐNG 1
1.1 Khảo sát thực tế 1
1.2 Nhiệm vụ cơ bản 2
1.3 Quy trình sử dụng 2
Chương 2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG 4
2.1 Sơ đồ phân rã chức năng 4
2.1.1 Xác định chức năng 4
2.1.2 Gom nhóm chức năng 5
2.1.3 Sơ đồ phân rã chức năng hệ thống 8
2.2 Sơ đồ luồng dữ liệu 9
2.2.1 Ký hiệu sử dụng 9
2.2.2 DFD mức khung cảnh 9
2.2.3 DFD mức đỉnh 10
2.2.4 DFD mức dưới đỉnh 10
2.3 Đặc tả chức năng chi tiết 13
Chương 3 PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU 25
3.1 ER mở rộng 25
3.1.1 Xác định kiểu thực thể, kiểu thuộc tính 25
3.1.2 Xác định kiểu liên kết 27
3.1.3 Mô hình ER mở rộng 28
3.2 Chuẩn hóa dữ liệu 29
3.2.1 Chuyển đổi từ ER mở rộng về ER kinh điển 29
3.2.2 Chuyển đổi từ ER kinh điển về ER hạn chế 34
3.2.3 Chuyển đổi từ ER hạn chế về mô hình quan hệ 38
3.3 Đặc tả bảng dữ liệu trong mô hình quan hệ 41
Trang 74.1 Thiết kế tổng thể 52
4.1.1 Phân định công việc giữa người và máy 52
4.2 Thiết kế kiểm soát 54
4.2.1 Xác định nhóm người dùng 54
4.2.2 Phân định quyền hạn nhóm người dùng 54
4.3 Thiết kế CSDL vật lý 57
4.3.1 Mô hình dữ liệu hệ thống 57
4.3.2 Đặc tả bảng dữ liệu 57
4.4 Thiết kế kiến trúc chương trình và giao diện 69
4.4.1 Thiết kế kiến trúc 69
4.4.2 Thiết kế màn hình giao diện 70
Chương 5 TRIỂN KHAI 87
5.1 Cơ sở lý thuyết 87
5.1.1 JSON và ứng dụng 87
5.2 Lập trình ứng dụng xử lý phía Server 91
5.2.1 Cơ sở dữ liệu của hệ thống 91
5.2.2 Lập trình Website hệ thống 91
5.3 Lập trình ứng dụng xử lý phía thiết bị 92
Chương 6 TỔNG KẾT VÀ ĐÁNH GIÁ 97
6.1 Cấu hình yêu cầu 97
6.2 Kết quả đạt được 97
6.3 Các mặt hạn chế 97
TÀI LIỆU THAM KHẢO 99
Trang 8- Chuyên ngành: Công nghệ thông tin Khóa: 11
- Cán bộ hướng dẫn: TS.Nguyễn Đức Tuấn
- Tên đề tài: Xây dựng ứng dụng chia sẻ công thức nấu ăn YUMMY trên
hệ điều hành iOS
- Tóm tắt: Thực hiện đồ án lần này đã giúp em có thêm những kiến thức mới
về lập trình iOS, đó là sử dụng JSON để thao tác với Web server và sử dụng ngôn ngữ lập trình objective-C trong việc viết ứng dụng cho các thiết
bị iDevice Qua đó đã giúp em tìm hiểu thêm được rất nhiều kiến thức về việc xây dựng và triển khai một ứng dụng iOS ra thực tế
Trang 9STT Tên viết tắt Tên đầy đủ Dịch ra Tiếng Việt
5 DFD Data Flow Diagram Sơ đồ luồng dữ liệu
6 ER Entity Relationship Thực thể quan hệ
Trang 10Bảng 2.1 Đặc tả đăng ký tài khoản 13
Bảng 2.2 Đặc tả đăng nhập tài khoản 14
Bảng 2.3 Đặc tả xác thực tài khoản 14
Bảng 2.4 Đặc tả thay đổi thông tin cá nhân 15
Bảng 2.5 Đặc tả đổi mật khẩu 15
Bảng 2.6 Đặc tả hiện công thức đã tạo 16
Bảng 2.7 Đặc tả hiện công thức đã đánh dấu 16
Bảng 2.8 Đặc tả follow người dùng 17
Bảng 2.9 Đặc tả tạo công thức 17
Bảng 2.10 Đặc tả tạo các bước trong công thức 18
Bảng 2.11 Đặc tả nhận xét (comment) với mỗi công thức 18
Bảng 2.12 Đặc tả yêu thích (like) với mỗi công thức 19
Bảng 2.13 Đặc tả đánh dấu (Bookmark) với mỗi công thức 19
Bảng 2.14 Đặc tả cập nhật công thức` 20
Bảng 2.15 Đặc tả xóa công thức 20
Bảng 2.16 Đặc tả cập nhật bước làm 21
Bảng 2.17 Đặc tả xóa bước làm 21
Bảng 2.18 Đặc tả sửa nhận xét 22
Bảng 2.19 Đặc tả xóa nhận xét 22
Bảng 2.20 Đặc tả bỏ yêu thích 23
Bảng 2.21 Đặc tả bỏ đánh dấu 23
Bảng 2.22 Đặc tả tìm kiếm công thức theo tên 24
Bảng 2.23 Đặc tả tìm kiếm công thức theo danh mục 24
Bảng 2.24 Đặc tả thông báo 24
Bảng 3.1 Các kiểu thực thể của hệ thống 25
Trang 11Bảng 3.4 Xử lý kiểu thuộc tính không sơ đẳng 30
Bảng 3.5 Tìm khóa cho kiểu thực thể chính 31
Bảng 3.6 Xác định kiểu thuộc tính kết nối 34
Bảng 3.7 Xác định khóa chính cho từng kiểu thực thể 36
Bảng 3.8 Mã hóa kiểu thực thể chuyển thành bảng quan hệ 38
Bảng 3.9 Mã hóa kiểu thuộc tính chuyển thành trường dữ liệu 39
Bảng 3.10 Bảng đặc tả các trường của tbl_User 41
Bảng 3.11 Bảng đặc tả các trường của tbl_Congthuc 42
Bảng 3.12 Bảng đặc tả các trường của tbl_Comment 43
Bảng 3.13 Bảng đặc tả các trường của tbl_Like 43
Bảng 3.14 Bảng đặc tả các trường của tbl_Bookmark 44
Bảng 3.15 Bảng đặc tả các trường của tbl_Thongbao 44
Bảng 3.16 Bảng đặc tả các trường của tbl_Nguyenlieu 45
Bảng 3.17 Bảng đặc tả các trường của tbl_Loaicongthuc 45
Bảng 3.18 Bảng đặc tả các trường của tbl_Loainguyenlieu 46
Bảng 3.19 Bảng đặc tả các trường của tbl_Buoc 46
Bảng 3.20 Bảng đặc tả các trường của tbl_Congthuc_Loaicongthuc 47
Bảng 3.21 Bảng đặc tả các trường của tbl_Congthuc_Nguyenlieu 47
Bảng 3.22 Bảng đặc tả các trường của tbl_Follow 48
Bảng 3.23 Ma trận Chức năng – Kho dữ liệu 48
Bảng 3.24 Ma trận Kho dữ liệu – Bảng quan hệ 50
Bảng 4.1 Bảng quyền Người dùng – Dữ liệu 55
Bảng 4.2 Bảng quyền Người dùng – Tiến trình 56
Bảng 4.3 Đặc tả dữ liệu của bảng tbl_Users 57
Bảng 4.4 Đặc tả dữ liệu của bảng tbl_Thongbao 58
Trang 12Bảng 4.7 Đặc tả dữ liệu của bảng tbl_Bookmark 61
Bảng 4.8 Đặc tả dữ liệu của bảng tbl_Like 62
Bảng 4.9 Đặc tả dữ liệu của bảng tbl_Comment 63
Bảng 4.10 Đặc tả dữ liệu của bảng tbl_Buoc 64
Bảng 4.11 Đặc tả dữ liệu của bảng tbl_Loaicongthuc 65
Bảng 4.12 Đặc tả dữ liệu của bảng tbl_Congthuc_Loaicongthuc 65
Bảng 4.13 Đặc tả dữ liệu của bảng tbl_ Loainguyenlieu 66
Bảng 4.14 Đặc tả dữ liệu của bảng tbl_Nguyenlieu 67
Bảng 4.15 Đặc tả dữ liệu của bảng tbl_Congthuc_Nguyenlieu 68
Trang 13Hình 2.1 Sơ đồ phân rã chức năng 8
Hình 2.2 Các thành phần 9
Hình 2.3 Quan hệ giữa kho dữ liệu, tiến trình, luồng dữ liệu 9
Hình 2.4 DFD mức khung cảnh 9
Hình 2.5 DFD mức đỉnh 10
Hình 2.6 DFD Quản lý tài khoản người dùng 10
Hình 2.7 DFD Chia sẻ nội dung 11
Hình 2.8 DFD Tìm kiếm 12
Hình 3.1 Mô hình ER mở rộng 28
Hình 3.2 Mô hình ER kinh điển 33
Hình 3.3 Mô hình ER hạn chế 38
Hình 3.4 Mô hình quan hệ 41
Hình 4.1 Phân định người - máy chức năng đăng ký, đăng nhập 52
Hình 4.2 Phân định người - máy chức năng Tạo, sửa, xóa, yêu thích, đánh dấu công thức 53
Hình 4.3 Phân định người – máy chức năng tìm kiếm 54
Hình 4.4 Mô hình cơ sở dữ liệu hệ thống 57
Hình 4.6 Giao diện đăng nhập trên ứng dụng 70
Hình 4.7 Biểu đồ trình tự hoạt đông view đăng nhập 71
Hình 4.8 Giao diện đăng ký trên ứng dụng 72
Hình 4.9 Biểu đồ trình tự hoạt đông view đăng ký 73
Hình 4.10 Giao diện trang chính trên ứng dụng 74
Hình 4.11 Biểu đồ trình tự hoạt đông view trang chính 75
Hình 4.12 Giao diện chi tiết công thức trên ứng dụng 76
Hình 4.13 Biểu đồ trình tự hoạt đông view chi tiết công thức 77
Trang 14Hình 4.16 Giao diện tạo công thức trên ứng dụng 80
Hình 4.17 Biểu đồ trình tự hoạt đông view tạo công thức 81
Hình 4.18 Giao diện thông báo trên ứng dụng 82
Hình 4.19 Biểu đồ trình tự hoạt đông view thông báo 84
Hình 4.20 Giao diện thông tin người dùng trên ứng dụng 85
Hình 4.21 Biểu đồ trình tự hoạt đông view thông tin người dùng 86
Hình 5.1 Mô hình client - server 88
Hình 5.2 CSDL trên server 91
Hình 5.3 Cấu trúc phân bố thư mục gốc Website 91
Hình 5.4 Cấu trúc mã lệnh chương trình 92
Hình 5.5 Cấu trúc các màn hình (view controller) 94
Hình 5.6 Cấu trúc nhóm MainController 95
Trang 15Chương 1 KHẢO SÁT HỆ THỐNG
Từ đó, em nảy ra ý tưởng xây dựng một ứng dụng giúp những người có nhu cầu cao về ẩm thực tự nấu chia sẻ các công thức nấy ăn của mình hoặc do mình sưu tầm được Đó như là một nơi để mọi người dùng tham gia và tạo nên một cộng đồng lớn mạnh, giúp ích đắc lực cho chị em phụ nữ trong việc lựa chọn thực đơn cho bữa ăn hàng ngày
Yêu cầu đặt ra là cần có một công cụ - một ứng dụng hội tụ đủ yêu cầu cho việc chia sẻ giữa cộng đồng người dùng đông đảo nói trên, đóng vai trò như một mạng xã hội thu nhỏ, để nội dung luôn đa dạng và được cập nhật bởi chính cộng đồng người dùng.Đồng thời với mong muốn tìm hiểu sâu hơn về lập trình ứng dụng di động bằng ngôn ngữ Objective-C, em lựa chọn nền tảng
ứng dụng ở đây là hệ điều hành iOS Vì vậy, em quyết định chọn đề tài Xây dựng ứng dụng chia sẻ công thức nấu ăn YUMMY trên hệ điều hành IOS
Theo khảo sát, hiện nay – cụ thể là với thị trường ứng dụng iOS của Việt Nam, hiện chưa có ứng dụng nào khai thác, đáp ứng được yêu cầu trên Từ
Trang 16đó, em hình thành ý tưởng về một ứng dụng cho phép người dùng có thể chia
sẻ các công thức nấu ăn của bản thân hoặc sưu tầm được với đầy đủ hình ảnh, hướng dẫn chi tiết Ứng dụng sẽ tích hợp các tính năng của một mạng xã hội, tạo nên một cộng đồng thu nhỏ cả về phía người dùng lẫn nội dung
1.2 Nhiệm vụ cơ bản
Từ khảo sát thực tế, em rút ra nhiệm vụ cơ bản của ứng dụng là:
- Chia sẻ công thức giữa người dùng với người dùng
- Người dùng có thể đăng nhập tài khoản trên một hoặc nhiều thiết bị
- Đối với một ứng dụng chia sẻ hiện nay, về cấu trúc không quá phức tạp (đơn thuần là dữ liệu gửi lên và trả về để hiển thị) nên sẽ phải tập trung vào
xử lý cách quản lý nội dung cũng như giao diện ứng dụng phía client
- Ứng dụng sẽ có chức năng nổi bật của một ứng dụng mạng xã hội điển hình đó là tính năng thông báo (Notification)
Áp dụng vào ứng dụng của mình, ta đưa ra quy trình làm việc như sau:
- Tài khoản có thể đăng ký trực tiếp trên ứng dụng và xác thực thông qua email
Chia sẻ công thức nấu ăn
Trang 17- Sau khi đăng ký và xác thực kích hoạt, người dùng có thể đăng nhập vào để thực hiện chia sẻ và xem các công thức được chia sẻ Toàn bộ dữ liéu
sẽ được lưu trữ trên hệ thống server
Các thông tin dùng để đăng ký tài khoản cũng là một vấn đề cần quan tâm.Việc sử dụng email kích hoạt sẽ giúp tránh trường hợp bão hoà người dùng khi người dùng có thể tự do tạo bao nhiêu tài khoản tuỳ thích
Với mỗi tài khoản sau khi kích hoạt và đăng nhập vào hệ thống, người dùng có thể thêm, sửa, xoá một công thức của riêng mình Cộng đồng người dùng sẽ đánh giá công thức đó thông qua các phản hồi (comment) và để giúp việc đánh giá trở nên đơn giản và trực quan, tính năng yêu thích (like) đối với mỗi công thức cũng được thêm vào.Vì là một ứng dụng chia sẻ công thức nấu
ăn (bao gồm cả ảnh và văn bản) nên trong một công thức sẽ tồn tại các bước thực hiện món ăn Nói một cách đơn giản, Một công thức được tạo ra sẽ như một album chứa các bước tương tự như các bức ảnh kèm theo caption
Một người dùng có thể lựa chọn lưu công thức một món ăn mà mình muốn thực hiện khi không có kết nối mạng.Các công thức được lưu này sẽ được ghi trực tiếp trên bộ nhớ của thiết bị để có thể truy cập ngay cả khi không có kết nối mạng Cụ thể ở đây với tab quản lý người dùng, các công thức trên sẽ được lưu vào một nhóm menu riêng trong phần này Bên cạnh đó, người dùng còn có thể theo dõi (follow) một người dùng khác để có thể truy cập nhanh các công thức của người dùng đó chia sẻ
Bên cạnh các chức năng trên, chức năng thông báo của ứng dụng cũng là một chức năng quan trọng đối với một ứng dụng đi theo hướng chia sẻ như một mạng xã hội.Khi một công thức mà người dùng đã lưu được sửa, hay công thức người dùng đã chia sẻ nhận được yêu thích hay các phản hổi, người dùng sẽ nhận được thông báo trả về và được lưu đồng thời trên server và trên client đối với một lượng thông báo nhất định
Trang 18Chương 2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
2.1 Sơ đồ phân rã chức năng
3 Đăng nhập tài khoản
4 Đổi thông tin cá nhân
5 Đổi mật khẩu
6 Lựa chọn yêu thích công thức
7 Lựa chọn lưu(đánh dấu) công thức
8 Yêu thích (like) với mỗi công thức
9 Tạo công thức
10 Tạo các bước trong công thức
11 Tìm kiếm công thức theo tên
12 Nhận xét (comment) với mỗi công thức
13 Tìm kiếm công thức theo danh mục
14 Chức năng theo dõi người dùng (folow)
15 Chức năng thông báo (notification)
Trang 19- Quản lý tài khoản và người dùng
- Chia sẻ nội dung
- Tìm kiếm nội dung
- Thông báo
Trang 20Bảng 2.2 Kết quả gom nhóm chức năng Tên chức năng
Đăng kí tài khoản
Quản lý tài khoản người dùng
Chia sẻ công thức nấu ăn
Đăng nhập tài khoản
Xác thực tài khoản
Hiện công thức đã đánh dấu
(bookmark)
Hiện công thức đã tạo
Theo dõi người dùng (follow)
Đổi thông tin cá nhân
Đổi mật khẩu
Yêu thích (like) với mỗi công thức
Chia sẻ nội dung
Lựa chọn lưu(đánh dấu) công thức
Nhận xét (comment) với mỗi công
Trang 21Tên chức năng
Bỏ đánh dấu công thức
Tìm kiếm công thức theo tên
Tìm kiếm
Tìm kiếm công thức theo danh mục
Chức năng thông báo (notification) Thông báo
Trang 222.1.3 Sơ đồ phân rã chức năng hệ thống
Hình 2.1.Sơ đồ phân rã chức năng
Trang 232.2 Sơ đồ luồng dữ liệu
2.2.1 Ký hiệu sử dụng
: Tiến trình : Kho dữ liệu
: Tác nhân ngoài : Tác nhân trong
Dữ liệu nội dung chia sẻ
Kết quả nội dung chia sẻ
Người dùng
Nội dung tìm kiếm
Kết quả xử lý
Người dùng
Kết quả thông báo trả về
Yêu cầu duyệt thông báo
Hình 2.4 DFD mức khung cảnh
Trang 242.2.3 DFD mức đỉnh
Chia sẻ nội dung
Công thức
Người dùng được theo dõi
Nội dung thông báo trả về
Nhận xét được tạo
Công thức được đánh dấu
ID định danh người dùng Nội dung công thức
ID định danh người dùng Theo dõi Thông tin cá nhân mới
Tên đăng nhập
Tên đăng nhập Tên đăng nhập
Đăng nhập tài khoản
Công thức đã tạo
Chia sẻ nội dung
Chia sẻ nội dung Tìm kiếm Duyệt thông báo
Duyệt thông báo
Đăng ký thành viên
Hình 2.6 DFD Quản lý tài khoản người dùng
Trang 25Cập nhật công thức
Xóa công thức
Tạo nhận xét
Sửa nhận xét
Xóa nhận xét
Yêu thích
Bỏ yêu thích
Đánh dấu
Bỏ đánh dấu
Tài khoản đăng nhập
Tài khoản
Công thức Tài khoản
Công thức Tài khoản
Công thức Tài khoản
Công thức Tài khoản
Tài khoản đăng nhập Tài khoản đăng nhập
Tài khoản đăng nhập Tài khoản đăng nhập
Tài khoản đăng nhập Tài khoản đăng nhập
Tài khoản đăng nhập Tài khoản đăng nhập
Tài khoản đăng nhập
Yêu cầu cập nhật công thức
Trang 26Người dùng
Hình 2.8 DFD Tìm kiếm
dùng
Nội dung thông báo
Thông báo được tạo
Chia sẻ nội dung
Hình 2.9 DFD Thông báo
Trang 272.3 Đặc tả chức năng chi tiết
Các chức năng thuộc quản lý tài khoản người dùng
Bảng 2.1 Đặc tả đăng ký tài khoản
Đầu vào Tên đăng nhập
Thông báo trùng tên tài khoản đăng nhập KẾT THÚC LẶP
LẶP ĐẾN KHI hết tài khoản trong CSDL
NẾU chưa có tên đăng nhập trong hệ thống THÌ
Thêm tài khoản mới vào CSDL
Thông báo cho người dùng đăng ký thành công KHÔNG THÌ thông báo cho người dùng các lỗi dữ liệu Đầu ra Thông báo về việc đăng ký thành công hay chưa
Trang 28Bảng 2.2 Đặc tả đăng nhập tài khoản
Đầu vào Tên đăng nhập
NẾU mật khẩu khớp với mật khẩu được lưu trong CSDL THÌ
Thông báo đăng nhập thành công KẾT THÚC LẶP
NẾU mật khẩu không khớp với mật khẩu được lưu trong CSDL THÌ
Thông báo sai mật khẩu LẶP ĐẾN KHI hết bản ghi tài khoản NẾU không tìm được bản ghi có tên tài khoản như đã nhập THÌ thông báo tài khoản không tồn tại
Đầu ra Thông báo về việc đăng nhập đã thành công hay chưa
Bảng 2.3 Đặc tả xác thực tài khoản
Đầu vào Tên đăng nhập
NẾU như không tìm được bản ghi của email kích hoạt THÌ thông báo tài khoản không tồn tại
Đầu ra Thông báo về việc tài khoản đã được xác thực thành công hay chưa
Trang 29Bảng 2.4 Đặc tả thay đổi thông tin cá nhân
Đầu vào ID định danh tài khoản
Dữ liệu thông tin cá nhân
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL NẾU ID định danh trùng với tài khoản trong CSDL THÌ
Cập nhật dữ liệu thông tin cá nhân được gửi lên KHÔNG thì
Thông báo có lỗi xảy ra cho người dùng KẾT THÚC LẶP
Đầu ra Thông báo việc thay đổi thông tin cá nhân đã thành công hay chưa
Bảng 2.5 Đặc tả đổi mật khẩu
Đầu vào
Tên đăng nhập Mật khẩu cũ Mật khẩu mới Xác nhận mật khẩu mới
Cập nhật mật khẩu mới Thông báo cập nhật thành công KẾT THÚC LẶP
LẶP ĐẾN KHI hết bản ghi tài khoản trong CSDL NẾU không cập nhật mật khẩu
THÌ
Trang 30Thông báo sai mật khẩu
Đầu ra Thông báo bề việc đã cập nhật thành công hay chưa
Bảng 2.6 Đặc tả hiện công thức đã tạo
Đầu vào ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL NẾU ID định danh trùng với tài khoản trong CSDL THÌ
LẶP lấy bản ghi công thức đã tạo LẶP ĐẾN KHI hết bản ghi công thức KHÔNG thì
Thông báo có lỗi xảy ra cho người dùng KẾT THÚC LẶP
Đầu ra Công thức đã được tạo bởi tài khoản đăng nhập
Bảng 2.7 Đặc tả hiện công thức đã đánh dấu
Đầu vào ID định danh tài khoản
Quá trình xử lý NẾU đã đăng nhập
THÌ Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL NẾU ID định danh trùng với tài khoản trong CSDL THÌ
LẶP lấy bản ghi công thức đã đánh dấu LẶP ĐẾN KHI hết bản ghi công thức KHÔNG thì
Thông báo có lỗi xảy ra cho người dùng KẾT THÚC LẶP
Đầu ra Công thức đã được đánh dấu bởi tài khoản đăng nhập
Trang 31Bảng 2.8 Đặc tả theo dõi người dùng (follow)
Đầu vào ID định danh tài khoản
ID định danh tài khoản theo dõi
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL NẾU ID định danh tài khoản và tài khoản theo dõi có trong CSDL THÌ thêm ID định danh tài khoản theo dõi vào danh sách theo dõi của tài khoản
KHÔNG thì Thông báo lỗi xảy ra cho người dùng KẾT THÚC LẶP
LẶP đến khi hết bản ghi tài khoản Đầu ra Thông báo về việc theo dõi người dùng đã thành công hay chưa
Các chức năng thuộc chia sẻ nội dung
Bảng 2.9 Đặc tả tạo công thức
Đầu vào ID định danh tài khoản
Nội dung công thức
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy bản ghi tài khoản trong CSDL Thêmnội dung công thức vào CSDL KẾT THÚC LẶP
LẶP ĐẾN KHI hết bản ghi tài khoản
Đầu ra Thông báo tạo công thức đã thành công hay chưa
Hiện công thức vừa tạo
Trang 32Bảng 2.10 Đặc tả tạo các bước trong công thức
Đầu vào
ID định danh tài khoản
ID định danh công thức Nội dung các bước trong công thức
Quá trình xử lý
Kết nối CSDL LẶP lấy ID định danh tài khoản và ID định danh công thức trong CSDL NẾU ID định danh tài khoản và công thức có trong CSDL
LẶP thêm bước làm vào CSDL LẶP ĐẾN KHI người dùng lựa chọn Hoàn thành NẾU ID tài khoản hoặc công thức không có trong CSDL THÌ thông báo có lỗi xảy ra
KẾT THÚC LẶP LẶP ĐẾN KHI hết các bản ghi trong CSDL tài khoản và công thức Đầu ra Các bước trong công thức vừa tạo
Bảng 2.11 Đặc tả nhận xét (comment) với mỗi công thức
Truy cập vào CSDL LẶP lấy ID định danh công thức trong CSDL NẾU ID định danh công thức có trong CSDL THÌ
Tạo nhận xét cho công thức KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL công thức Đầu ra Nhận xét cho công thức
Trang 33Bảng 2.12 Đặc tả yêu thích (like) với mỗi công thức
Đầu vào ID định danh công thức
ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Truy cập vào CSDL LẶP lấy ID định danh công thức trong CSDL NẾU ID định danh công thức có trong CSDL THÌ
Thêm yêu thích cho công thức KẾT THÚC LẶP
LẶP ĐẾN KHI hết bản ghi trong CSDL công thức Đầu ra Yêu thích cho công thức
Bảng 2.13 Đặc tả đánh dấu (Bookmark) với mỗi công thức
Đầu vào ID định danh công thức
ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Truy cập vào CSDL LẶP lấy ID định danh công thức trong CSDL NẾU ID định danh công thức có trong CSDL THÌ
Thêm đánh dấu cho công thức KẾT THÚC LẶP
LẶP ĐẾN KHI hết bản ghi trong CSDL công thức Đầu ra Đánh dấu công thức
Trang 34Truy cập vào CSDL LẶP lấy ID định danh công thức trong CSDL NẾU ID định danh công thức có trong CSDL THÌ
Cập nhật nội dung công thức KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL công thức
Đầu ra Thông báo công thức đã được cập nhật thành công hay chưa
Công thức được cập nhật
Bảng 2.15 Đặc tả xóa công thức
Đầu vào ID định danh công thức
ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Truy cập vào CSDL LẶP lấy ID định danh công thức trong CSDL NẾU ID định danh công thức có trong CSDL THÌ
Xóa công thức khỏi CSDL KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL công thức
Đầu ra Thông báo công thức đã được xóa hay chưa
Dữ liệu về công thức được xóa khỏi CSDL
Trang 35Quá trình xử lý
NẾU đã đăng nhập THÌ
Truy cập vào CSDL LẶP lấy ID định danh bước làm trong CSDL NẾU ID định danh bước làm có trong CSDL THÌ
Cập nhật bước làm trong CSDL KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL bước làm
Đầu ra Thông báo bước làm đã được cập nhật thành công hay chưa
Bước làm được cập nhật
Bảng 2.17 Đặc tả xóa bước làm
Đầu vào ID định danh tài khoản
ID định danh bước làm
Quá trình xử lý
NẾU đã đăng nhập THÌ
Truy cập vào CSDL LẶP lấy ID định danh bước làm trong CSDL NẾU ID định danh bước làm có trong CSDL THÌ
Xóa bước làm khỏi CSDL KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL bước làm
Đầu ra Thông báo bước làm đã được xóa hay chưa
Bước làm được xóa khỏi CSDL
Trang 36Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy ID định danh nhận xét trong CSDL NẾU ID định danh nhận xét có trong CSDL Cập nhật nhận xét trong CSDL
KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL nhận xét
Đầu ra Thông báo nhận xét đã được sửa hay chưa
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy ID định danh nhận xét trong CSDL NẾU ID định danh nhận xét có trong CSDL Xóa nhận xét khỏi CSDL
KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL nhận xét
Đầu ra Thông báo nhận xét đã được xóa hay chưa
Nhận xét được xóa
Trang 37Bảng 2.20 Đặc tả bỏ yêu thích
Đầu vào ID định danh tài khoản
ID định danh yêu thích
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy ID định danh yêu thích trong CSDL NẾU ID định danh yêu thích có trong CSDL Xóa định danh yêu thích
KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL Đầu ra Công thức được bỏ yêu thích
Bảng 2.21 Đặc tả bỏ đánh dấu
Đầu vào ID định danh tài khoản
ID định danh đánh dấu
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy ID định danh đánh dấu trong CSDL NẾU ID định danh đánh dấu có trong CSDL Xóa định danh đánh dấu
KẾT THÚC LẶP LẶP ĐẾN KHI hết bản ghi trong CSDL Đầu ra Công thức được bỏ đánh dấu
Các chức năng thuộc tìm kiếm
Trang 38Bảng 2.22 Đặc tả tìm kiếm công thức theo tên
Đầu vào Từ khóa tìm kiếm
ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy tên công thức trong CSDL theo từ khóa LẶP ĐẾN KHI hết bản ghi trong CSDL
Đầu ra Kết quả tìm kiếm
Bảng 2.23 Đặc tả tìm kiếm công thức theo danh mục
Đầu vào Từ khóa tìm kiếm
ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy tên công thức trong CSDL theo từ khóa danh mục LẬP ĐẾN KHI hết bản ghi trong CSDL
Đầu ra Kết quả tìm kiếm
Các chức năng thông báo
Bảng 2.24 Đặc tả thông báo
Đầu vào ID định danh tài khoản
Quá trình xử lý
NẾU đã đăng nhập THÌ
Kết nối CSDL LẶP lấy nội dung thông báo theo định danh tài khoản LẶP ĐẾN KHI hết bản ghi trong CSDL
Đầu ra Các thông báo của người dùng
Trang 39Chương 3 PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU 3.1 ER mở rộng
3.1.1 Xác định kiểu thực thể, kiểu thuộc tính
Bảng 3.1 Các kiểu thực thể của hệ thống
Từ quy trình xử lý: “thông thường với ứng
dụng tương tự để đăng ký tài khoản cần 2
thông tin cơ bản là tên đăng nhập và mật
khẩu, bên cạnh đó, sau khi đăng ký thành
công, người dùng sẽ cần có email xác thực,
trạng thái tài khoản và các thông tin cá nhân
cơ bản”
TÀI KHOẢN (Tên đăng nhập, mật khẩu, email, ngày tạo, Tên người dùng, số điện thoại, mô tả, ảnh đại diện, trạng thái kích hoạt)
Từ quy trình xử lý: “người dùng khởi tạo
công thức nấu ăn cho server lưu trữ (thông tin
của công thức bao gồm ID, tên công thức, nội
dung công thức, thời điểm tạo, mô tả công
thức, các thông tin cơ bản về công thức)”
CÔNG THỨC (Tên công thức, ID công thức, nội dung, ngày tạo, ngày sửa, nguyên liệu, thời gian nấu, số người, phân loại, ảnh đại diện, mô tả công thức, loại công thức)
Từ quy trình xử lý:”người dùng tạo nội dung
bước làm trong mỗi công thức (thông tin cần
thiết bao gồm ID,nội dung bước làm, thời
gian tạo, sửa,ID định danh của công thức của
bước, số thứ tự của bước làm)”
BƯỚC LÀM (ID bước làm, nội dung, ID công thức, số thứ tự, ảnh, thời gian tạo, thời gian sửa)
Từ quy trình xử lý:”người dùng tạo nội dung NHẬN XÉT (ID nhận xét, ID
Trang 40GỢI Ý KIỂU THUỘC TÍNH
nhận xét đối với mỗi công thức (ID nhận xét,
nội dung , ngày tạo và sửa, ID người tạo nhận
xét,, ID công thức được nhận xét)”
người dùng, ID công thức,nội dung, ngày tạo, ngày sửa)
Từ quy trình xử lý:”người dùng thực hiện yêu
thích một công thức, dữ liệu này cũng sẽ
được lưu tại server (thông tin bao gồm :ID
người thích, ID công thức được thích, thời
gian thực hiện thao tác)”
YÊU THÍCH (ID người dùng, thời gian yêu thích, ID công thức)
Từ quy trình xử lý:”người dùng thực hiện
đánh dấu một công thức, dữ liệu này sẽ được
lưu tại server (thông tin bao gồm : ID công
thức, thời gian đánh dấu, ID người đánh
dấu)”
ĐÁNH DẤU (ID công thức, thời gian đánh dấu, ID người dùng)
Từ quy trình xử lý:”đối với chức năng thông
báo, kết quả sẽ được lưu trữ trên server (ID,
nội dung, thời gian thông báo, ID người nhận
thông báo)”
THÔNG BÁO(ID thông báo, thời gian thông báo, nội dung, ID người dùng)
Từ quy trình xử lý :”người dùng thực hiện
folow người dùng khác, dữ liệu sẽ được lưu
trữ tại server (ID người follow, ID người
được follow)”
FOLLOW (ID người follow, ID người được follow)