Ngày nay với sự bùng nổ và phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin đặc biệt với sự ra đời của Internet, nó đang dần trở thành một phần không thể thiếu của cuộc sống con người. Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽ trong các lĩnh vực quản lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như tất cả các lĩnh vực khác. Thực tế đã cho thấy hiệu quả của tin học khi áp dụng vào công tác quản lý, nó đã làm giảm bớt công tác bàn giấy đồng thời góp phần đáng kể trong việc thống kê tránh những sai sót trong kinh doanh. Có thể nói tin học đã trở thành một công cụ hữu hiệu đem lại hiệu quả trong công tác quản lý và kinh doanh. Quản lý nhà hàng là một trong những nhu cầu thiết thực đó. Việc duy trì và phát triển nhà hàng không chỉ dừng lại ở những món ăn ngon, mà còn cần giải quyết được những phức tạp, khó khăn trong công việc quản lý về tài chính, nhân sự… và những chiến lược kinh doanh của nhà hàng. Đáp ứng những nhu cầu đó, em đã chọn đề tài “Xây dựng website quản lý nhà hàng” để xây dựng và phát triển. Website được thiết kế dựa trên thực tế nghiệp vụ của nhà hàng để có khả năng đáp ứng và hỗ trợ tốt trong công việc quản lý và kinh doanh của nhà hàng, tránh nhầm lẫn sai sót, đồng thời hỗ trợ cho việc tìm kiếm thông tin nhanh chóng, chính xác.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KHOA HỌC MÁY TÍNH
Trang 2MỤC LỤC
DANH MỤC CÁC HÌNH VẼ 4
DANH MỤC BẢNG BIỂU 5
LỜI CẢM ƠN 5
LỜI MỞ ĐẦU 6
CHƯƠNG 1 Tổng qua về đề tài 7
I.1 Giới thiệu chung 7
I.2 Mô tả bài toán 9
I.3 Phạm vi hệ thống 12
I.4 Đánh giá mức độ khả thi và mức dộ rủi ro 13
I.5 Giới thiệu ngôn ngữ và sử dụng ngôn ngữ 14
I.5.1 C# 14
I.5.2 SQL Sever 18
I.5.3 Visual Studio 2019 22
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 29
II.1 Kiến trúc hệ thống 29
II.2 Mô hình triển khai hệ thống 30
II.3 Xác định danh sách tác nhân 30
II.4 Tác nhân và ca sử dụng 31
II.5 Mô hình chức năng của hệ thống 32
II.6 Mô hình Usecase(UC) 34
II.7 Đặc tả chi tiết các Usecase (UC) 36
II.8 Biểu đồ hoạt động của hệ thống 49
II.8.1 Biểu đồ hoạt động đăng ký tài khoản 49
Trang 3CHƯƠNG 3: Phân tích và thiết kế cơ sở dữ liệu 59
III.1 Biểu đồ diagram của nhà hàng 59
III.2 Bảng Food 60
III.3 Bảng Account 60
III.4 Bảng MigrationHistory 61
III.5 Bảng Category 61
III.6 Bảng Customer 61
III.7 Bảng Order 62
III.8 Bảng OrderInfo 62
III.9 Bảng Payment 63
III.10 Bảng ShopInformation 63
CHƯƠNG 4:Thiết kế hệ thống 64
IV.1 Xây dựng giao diện 64
IV.2 Xây dựng chức năng 72
KẾT LUẬN 80
Tài liệu tham khảo 81
Trang 4DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Quản lý bán hàng 10
Hình 1.2Ngôn ngữ C# 16
Hình 1.3: ASP.Net framework 17
Hình 1.4: SQL Server 18
Hình 2.1Kiến trúc hệ thống 23
Hình 2.2: Mô hình triển khai hệ thống 24
Hình 2.3: Mô hình chức năng Backend 26
Hình 2.4: Mô hình chức năng Frontend 28
Hình 2.5: Mô hình Usecase tác nhân Renter/ Leaser 29
Hình 2.6: Mô hình Usecase tác nhân Admin 30
Hình 2.7: Mô hình UC đăng ký thành viên 30
Hình 2.8: Mô hình UC đăng nhập 31
Hình 2.9: Mô hình UC tìm kiếm món ăn 32
Hình 2.10: Mô hình UC Xem món ăn 33
Hình 2.11: Mô hình UC Quản lý tin 34
Hình 2.12: Mô hình UC Cập nhật profile 35
Hình 2.13: Mô hình UC Quản lý tin món ăn 37
Hình 2.14: Mô hình UC Quản lý bài viết 39
Hình 2.15: Mô hình UC Quản lý user 41
Hình 2.16: Mô hình UC Quản lý hệ thống 42
Hình 2.17: Biểu đồ hoạt động Đăng ký tài khoản 44
Hình 2.18: Biểu đồ hoạt động Đăng nhập 45
Hình 2.19: Biểu đồ hoạt động Tìm kiếm món ăn 46
Hình 2.20: Biểu đồ hoạt động xem món ăn 47
Hình 2.21: Biểu đồ hoạt động Cập nhật profile 48
Hình 2.22: Biểu đồ hoạt động Quản lý danh mục nhà hàng 49
Hình 2.23: Biểu đồ hoạt động Quản lý bài viết 50
Trang 5Hình 2.25: Biểu đồ hoạt động Quản lý người dùng 52
Hình 2.26:Biểu đồ hoạt động Quản lý hệ thống 53
DANH MỤC BẢNG BIỂU Bảng 1.1:Mô tả đối tượng và phạm vi sử dụng 14
Bảng 1.2: Miêu tả mức rủi ro của hệ thống 16
Bảng 2.1: Tác nhân và ca sử dụng 26
Bảng 3.1: Bảng món ăn 55
Bảng 3.2:Bảng danh mục 56
Bảng 3.3: Bảng admin 56
Bảng 3.4: Bảng khách hàng 56
Bảng 3.5: Bảng đặt bàn 57
Bảng 3.6: Bảng chi tiết đặt bàn 57
Trang 6LỜI CẢM ƠN
Trước tiên với tình cảm sâu sắc và chân thành nhất, cho phép em được bày tỏ lòngbiết ơn đến tất cả các cá nhân và tổ chức đã tạo điều kiện hỗ trợ, giúp đỡ em trong suốtquá trình học tập và nghiên cứu đề tài này Trong suốt thời gian từ khi bắt đầu học tập tạitrường đến nay, em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý Thầy Cô và bạnbè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy Cô ở bộ môn Khoa HọcMáy Tính đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tậptại trường Nhờ có những lời hướng dẫn, dạy bảo của các thầy cô nên đề tài nghiên cứucủa em mới có thể hoàn thiện tốt đẹp
Một lần nữa, em xin chân thành cảm ơn Thầy Lê Hồng Anh – người đã trực tiếpgiúp đỡ, quan tâm, hướng dẫn em hoàn thành tốt bài báo cáo này trong thời gian qua
Bài báo cáo đồ án thực hiện trong khoảng thời gian vừa qua Bước đầu đi vào thực
tế của em còn hạn chế và còn nhiều bỡ ngỡ nên không tránh khỏi những thiếu sót, em rấtmong nhận được những ý kiến đóng góp quý báu của quý Thầy Cô để kiến thức của emtrong lĩnh vực này được hoàn thiện hơn đồng thời có điều kiện bổ sung, nâng cao ý thứccủa mình
Em xin chân thành cảm ơn!
Trang 7LỜI MỞ ĐẦU
Ngày nay với sự bùng nổ và phát triển mạnh mẽ của lĩnh vực Công nghệ thông tinđặc biệt với sự ra đời của Internet, nó đang dần trở thành một phần không thể thiếu củacuộc sống con người Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽtrong các lĩnh vực quản lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng nhưtất cả các lĩnh vực khác Thực tế đã cho thấy hiệu quả của tin học khi áp dụng vào côngtác quản lý, nó đã làm giảm bớt công tác bàn giấy đồng thời góp phần đáng kể trong việcthống kê tránh những sai sót trong kinh doanh Có thể nói tin học đã trở thành một công
cụ hữu hiệu đem lại hiệu quả trong công tác quản lý và kinh doanh
Quản lý nhà hàng là một trong những nhu cầu thiết thực đó Việc duy trì và pháttriển nhà hàng không chỉ dừng lại ở những món ăn ngon, mà còn cần giải quyết đượcnhững phức tạp, khó khăn trong công việc quản lý về tài chính, nhân sự… và những chiếnlược kinh doanh của nhà hàng
Đáp ứng những nhu cầu đó, em đã chọn đề tài “Xây dựng website quản lý nhà hàng”
để xây dựng và phát triển Website được thiết kế dựa trên thực tế nghiệp vụ của nhà hàng
để có khả năng đáp ứng và hỗ trợ tốt trong công việc quản lý và kinh doanh của nhà hàng,tránh nhầm lẫn sai sót, đồng thời hỗ trợ cho việc tìm kiếm thông tin nhanh chóng, chínhxác
Trang 8CHƯƠNG 1 Phần mở đầu.
I.1 Lý do lựa chọn đề tài
Ngày nay với sự phát triển mạnh mẽ của lĩnh vực Công nghệ thông tin đặc biệt với
sự ra đời của Internet, nó đang dần trở thành một phần thiết yếu của cuộc sống con người.Công nghệ thông tin đang được phát triển và ứng dụng mạnh mẽ trong các lĩnh vực quản
lý sản xuất, quản lý kinh doanh, dịch vụ, quản lý xã hội cũng như tất cả các lĩnh vực khác.Quản lý nhà hàng là một trong những nhu cầu thiết thực đó, một website quản lý nhà hàng
là một giải pháp hoàn toàn hợp lý và đáng được mong đợi Một website mà chủ nhà hàng
có thể quản lý được nhà hàng một cách nhanh chóng, chính sác cùng với đó là sự tiện lợikhi khách hàng có thể giao tiếp với nhà hàng một cách nhanh gọn và dễ dàng mà khôngcần phải đi đâu xa khi chỉ cần ngồi nhà hay văn phòng làm việc vẫn có thể sử dụng mộtcách dễ dàng
Đi vào thực tiễn để có thể phát triển đề tài, nhận thấy hiện tại xung quanh khu vựccủa nhà hàng là các khu công nghiệp và một số công trường đang thi công nên đây phầnlớn là nơi sinh sống và làm việc của đa số các công nhân viên Công việc ngày càngnhiều, công nghệ thông tin ngày một phát triển nên nhu cầu cuộc sống của con ngườingày một tăng cao Mọi người quá bận rộn với công việc hoặc không muốn ra đường nênnhu cầu gọi đồ ăn ship đến là rất cao và lượng người đến với nhà hàng là ngày một ít.Trang web được sinh ra nhằm đáp ứng các đặc điểm riêng dựa trên thực tế nghiệp vụ củanhà hàng, em nhận thấy nhà hàng có rất ít khách ngồi ăn tại quán mà đa phần là muamang về hoặc ship tận nơi cùng với đó là tác hại của covid-19 dẫn đến chúng ta phải cách
ly tập trung hoặc không được tụ tập quá 5 người nên ý tưởng của em là xây dựng mộtwebsite vừa để quản lý nhà hàng vừa giúp nhà hàng kinh doanh một cách thuận lợi vàphát triển.Nhà hàng sẽ tập trung bán hàng mang về và nhận ship để có thể duy trì kinhdoanh cũng như ngày một phát triển
Việc duy trì và phát triển nhà hàng không chỉ dừng lại ở những món ăn ngon, màcòn cần giải quyết được những phức tạp, khó khăn trong công việc quản lý về tài chính,nhân sự… và những chiến lược kinh doanh của nhà hàng
Trang 9Đáp ứng những nhu cầu nêu trên, đề tài “Xây dựng website quản lý nhà hàng” của
em được lên kế hoạch và bắt đầu đi vào nghiên cứu cũng như phát triển Website đượcthiết kế dựa trên thực tế nghiệp vụ của nhà hàng để có khả năng đáp ứng và hỗ trợ tốt nhấttrong công việc quản lý và kinh doanh của nhà hàng, tránh nhầm lẫn sai sót, đồng thời hỗtrợ cho việc tìm kiếm thông tin trở nên nhanh chóng và chính xác
I.2 Giới thiệu chung
I.2.1 Các khái niệm cơ bản về quản lý bán hàng
Định nghĩa: Quản lý bán hàng có thể được định nghĩa là hoạt động quản trị của cánhân hoặc một nhóm người thuộc lĩnh vực bán hàng hoặc những người hỗ trợ trực tiếpcho lực lượng bán hàng nhằm triển khai việc cung cấp các sản phẩm hoặc dịch vụ củadoanh nghiệp trên cơ sở chiến lược kinh doanh, nguồn lực của doanh nghiệp và môitrường kinh doanh có liên quan
Quản lý bán hàng có nhiệm vụ phân phối hàng hóa đến những kênh phân phối theomục tiêu đã đề ra nhằm tối ưu việc hiện diện của hàng hóa, dịch vụ với chi phí hợp lý, đạthiệu quả tối đa và đạt được mục tiêu marketing của nhà hàng về ngắn hạn cũng như dàihạn
Chức năng của hệ thống quản lý bán hàng
Trong thời đại bùng nổ công nghệ 4.0 như hiện nay, một hệ thống giúp quản lýviệc bán hàng là không thể thiếu trong hoạt động kinh doanh của doanh nghiệp Hệ thốngquản lý chính là những phần mềm quản lý bán hàng, giúp cho người dùng đặc biệt là cácdoanh nghiệp kiểm soát quản lý được hàng hóa một cách chặt chẽ hơn Việc quản lý của
hệ thống sẽ được kiểm soát trong tất cả các khâu: Nhập hàng, quản lý đơn hàng, quản lýkho hàng, quản lý nhân viên, chăm sóc khách hàng,…
Có một hệ thống giúp quản lý bán hàng sẽ giúp doanh nghiệp tối ưu được hoạt động kinhdoanh của mình, cụ thể thông qua những chức năng của hệ thống quản lý bán hàng
Trang 10 Chức năng quản lý đơn hàng
Đương nhiên không thể không kể tới chức năng quản lý đơn hàng của các phần mềmquản lý, đây là chức năng tối quan trọng giúp việc bán hàng và quản lý bán hàng hiệu quảhơn
Chức năng quản lý kho hàng hóa
Bất kể người kinh doanh nào cũng biết việc quản lý tốt số lượng hàng hóa trong kho gópphần tăng hiệu quả hoạt động kinh doanh Do đó chức năng quản lý hàng hóa của phầnmềm quản lý bán hàng là chức năng vô cùng quan trọng, không thể thiếu
Quản lý tài chính
Phần mềm còn hỗ trợ hữu ích người kinh doanh về vấn đề quản lý tài chính kế toán, quản
lý tiền mặt, tiền công nợ khách hàng, tiền hàng, tiền đơn vị giao hàng thu hộ, tiền thuế,tiền thuê mặt bằng,… và các khoản thu chi khác trong kinh doanh
Quản lý khách hàng
Thông tin khách hàng được phần mềm lưu trữ lại để người bán hàng dễ dàng nhận biếtkhách hàng là khách mới hay khách cũ, khách quen để có chương trình bán hàng và tri ân
Trang 11I.2.2 Giới thiệu hệ thống website
Hệ thống quản lý nhà hàng trực tuyến được xây dựng nhằm đưa thông tin chi tiết
về những sản phẩm cũng như các món ăn mà nhà hàng đang kinh doanh đến khách hàng
Hệ thống phục vụ cho các đối tượng sau:
ADMIN: Người có toàn quyền trong việc quản trị hệ thống các quyền đó gồm thêm danhmục , món ăn , quảng cáo
KHÁCH HÀNG : Khách hàng vào trang web có thể xem thông tin chi tiết về các mónăn,đặt mua món ăn, bình luận chất lượng món ăn và thái độ phục vụ , xem tin tức , thôngtin chi tiết của cửa hàng Khách hàng có thể đăng ký thành viên để được đặt mua món ăn
và thanh toán
I.3 Mô tả bài toán.
Nhà hàng chuyên phục vụ các món ăn độc đáo, mang hương vị riêng biệt vớinhững món ăn hiện đại Sự sáng tạo trong cách chế biến món ăn và làm hài lòng thựckhách là điều được quan tâm hàng đầu của nhà hàng Tuy nhiên, với hình thức kinh doanhhiện tại là phục vụ khách hàng khi khách hàng đến nhà nhà hàng và đặt bàn trực tiếp cũng
có những hạn chế cho việc kinh doanh nhà hàng như:
Chưa phục vụ được một số khách hàng có nhu cầu ở quá xa
Hạn chế các tiềm năng phát triển của nhà hàng như quảng bá, giới thiệu món ănđến với nhiều thực khách…
Hạn chế trong việc quản lý nhà hàng, lưu trữ và thống kê…
Xuất phát từ những nhược điểm của hệ thống quản lý bằng thủ công nên việc tinhọc hóa công tác quản lý nhà hàng là việc làm cần thiết, hợp lý
Có hai đối tượng tham gia trực tiếp vào quá trình tương tác với website là nhà quản
lý và khách hàng
Đối với nhà quản lý, hệ thống quản lý nhà hàng cần đáp ứng những yêu cầusau:
Trang 12- Tự động hóa các thao tác, công việc thủ công được thay thế sẽ tiết kiệmđược nhiều thời gian và công sức, thực hiện nhanh chóng
- Tổng hợp đầy đủ chính xác, kịp thời thông tin về các món ăn
- Đưa ra danh sách các danh mục món ăn khi cần tìm kiếm theo yêu cầu
- Có thể thực hiện các chức năng cập nhật (thêm, sửa, xóa) đối với cácmón ăn trên trang web
- Tiếp nhận và xử lý các đơn đặt mua món ăn của khách hàng
- Thống kê các món ăn, thống kê đặt món trên trang web
Đối với đối tượng là khách hàng: là đối tượng có nhu cầu tìm hiểu các món ăn
và đặt món trực tiếp trên website Vì vậy trang web cần đáp ứng được các yêucầu như:
- Hiển thị rõ ràng các món ăn của nhà hàng với hình ảnh, giá cả chi tiết đểkhách hàng có thể xem và chọn lựa
- Xây dựng giao diện hợp lý để khách hàng có thể dễ dàng trong việc tìmkiếm, lựa chọn các món ăn
- Khách hàng có nhu cầu đặt món thì hệ thống thêm vào giỏ hàng rồi tiếntới việc thanh toán, có thể thanh toán qua hình thức online hoặc nhậnhàng thanh toán
Ngoài những chức năng trên thì trang web cần phải được thiết kế đẹp mắt, dễ sửdụng, thu hút được khách hàng dù chỉ lần đầu ghé thăm Đồng thời trang web còn phải dễbảo trì, nâng cấp khi cần
Khách hàng là người có nhu cầu ăn uống và tổ chức sự kiện Họ sẽ tìm kiếm cácnhà hàng có món ăn hấp dẫn với mức chi phí thích hợp để đến thưởng thức và vuitiệc Vậy nên trang web phải có các chức năng cho khách hàng là:
Hiển thị rõ ràng các món ăn: người truy cập website có thể xem được các hình ảnhthông tin về món ăn được đưa lên Cùng với các thông tin liên quan tới như bài viết
Tìm kiếm : Có thể tìm kiếm các món ăn theo các tiêu chí thích hợp tìm kiếm của
hệ thống như tìm kiếm theo tên , theo danh mục
Trang 13 Đặt món: Để tiện đặt món, hệ thống cung cấp cho khách hàng một giỏ hàng , kháchhàng có thể chọn món mình thích cho vào giỏ hàng Giỏ hàng được thiết kế đơngiản và dễ sử dụng , khách hàng có thể thay đổi số lượng và loại bỏ các mặt hàngkhông muốn mua ra khỏi giỏ hàng
Quản trị là người có quyền quản lý và làm chủ mọi hoạt động của hệ thống trangweb Quản trị truy cập vào hệ thống nhằm với các mục đích sau đây:
Quản lý trang : cho phép sửa các thông tin về giới thiệu và liên hệ cửa hàng
Quản lý sản phẩm : cho phép thêm sửa xóa sản phẩm của cửa hàng bán
Quản lý danh mục : cho phép thêm sửa xóa danh mục của sản phẩm
Quản lý đơn đặt món : cho phép xóa đơn đặt món khi khách hàng có nhu cầukhông đặt món nữa và có thể cập nhật lại thông tin đặt món cho khách hàng đểđược đặt món đúng thời gian mong muốn
Quản lý chi tiết đơn đặt món : cho phép xóa các món mà khách yêu cầu cho kháchhàng
I.3 Phạm vi hệ thống.
Báo cáo phạm vị
Người thiết kế và xây dựng dự án Nguyễn Trọng Khuê
hàng có thể bán được nhiều hàng hơncho các khách hàng không thể đến cửahàng ăn được và có thể quản lý nhàhàng một cách tốt nhất
Hệ thống có tính bảo mật
Hệ thống phải chính xác về mặt dữliệu
Không vượt quá thời gian quy định.Lợi ích mang lại Khách hàng dễ dàng tìm kiếm
Trang 14thông tin.
Khách hàng dễ dàng sử dụng và đặtmón
Nhà hàng có thể quản lý một cáchtốt nhất cũng như đáp ứng nhu cầucủa người mua một cách thuận tiệnhơn
Lập kế hoạch
Thu thập yêu cầu
Phân tích yêu cầu và thiết kế hệthống
Hướng dẫn sử dụng
Bảng 1-1: Mô tả đối tượng và phạm vi sử dụng
I.4 Đánh giá mức độ khả thi và mức dộ rủi ro.
I.4.1 Mức độ khả thi
A Khả thi về kinh tế
Đối với nhà hàng: Có thêm kênh giao tiếp và quảng bá về đa dạng các món ăn góp phầntăng doanh thu Quảng bá được món ăn mới, thu hút nhiều khách hàng Nâng cao tínhcạnh trang với các đối thủ trong cùng lĩnh vực
Đối với khác hàng: Tiết kiệm thời gian, khách hàng không cần phải trực tiếp đến cửahàng mà vẫn nắm bắt được thông tin chi tiết về các món ăn và dễ dàng đặt mua mọi lúcmọi nơi Dễ dàng nhận được sự trợ giúp, tư vấn online từ nhà hàng
B Khả thi về hoạt động
Hệ thống xây dựng giao diện thân thiện, dễ dàng sử dụng, không cần chuyên môn cũng cóthể quản lý website
C Khả thi về kỹ thuật
Trang 15Đối với cửa hàng: Không yêu cầu phần cứng cao, không cần đường truyền internet có tốc
độ cao nhằm đáp ứng nhu cầu sử dụng mọi lúc mọi nơi cho khách hàng
Đối với người thực hiện: sử dụng ngôn ngữ lập trình C#, ASP Net framework Công cụlập trình Visual Studio, công cụ quản trị cơ sở dữ liệu SQL Server
I.4.2 Mức độ rủi ro
Dự án: Xây dựng web quản lý nhà hàng và đặt món
Sự thay đổi từ phía cửa
hàng
Các yêu cầu thay đổi từphía cửa hàng như bố cụctrang web, tổ chức dữ liệu
Thu thập yêu cầu đầy đủ
Thiết kế giao diện thânthiện, dễ dàng sử dụng,viết các tài liệu hướng dẫnchi tiết
Bảng 1-2: Miêu tả mức độ rủi ro và hướng khắc phục
I.5 Giới thiệu ngôn ngữ và sử dụng ngôn ngữ.
I.5.1 C#
C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi đội ngũ
kỹ sư của Microsoft vào năm 2000, trong đó người dẫn đầu là Anders Hejlsberg và ScottWiltamuth
C# là ngôn ngữ lập trình hiện đại, hướng đối tượng và nó được xây dựng trên nền tảngcủa hai ngôn ngữ mạnh nhất là C++ và Java
C# được thiết kế cho Common Language Infrastructure (CLI), mà gồm Executable Code
và Runtime Environment, cho phép chúng ta sử dụng các ngôn ngữ high-level đa dạngtrên các nền tảng và cấu trúc máy tính khác nhau
Trang 16C# với sự hỗ trợ mạnh mẽ của .NET Framework giúp cho việc tạo một ứng dụngWindows Forms hay WPF (Windows Presentation Foundation), trở nên rất dễ dàng.
Hình1.1Ngôn ngữ C#
ASP.Net FrameWork
.NET framework có thể được sử dụng để tạo cả những ứng dụng dựa trên biểu mẫu(Form-based) và dựa trên Web (Web-based) Các web service cũng có thể được phát triểnbằng cách sử dụng NET framework
Framework cũng hỗ trợ các ngôn ngữ lập trình khác nhau như Visual Basic và C# Vìvậy, các nhà phát triển có thể lựa chọn ngôn ngữ để phát triển ứng dụng cần thiết Trongbài viết này, các bạn sẽ tìm hiểu một số khái niệm cơ bản về NET framework
Trang 17Hình 1.2: ASP.Net framework
Chức năng
C# là một ngôn ngữ lập trình hướng đối tượng đơn giản, hiện đại Mục đích của C # làphát triển ngôn ngữ lập trình không chỉ dễ học mà còn hỗ trợ chức năng hiện đại cho mọiloại hình phát triển phần mềm
Nếu bạn nhìn vào lịch sử của các ngôn ngữ lập trình và các tính năng của chúng, mỗingôn ngữ lập trình được thiết kế cho một mục đích cụ thể để giải quyết một nhu cầu cụthể tại thời điểm đó
Tuy nhiên ngôn ngữ lập trình C# được thiết kế cho các doanh nghiệp để xây dựng tất cảcác loại phần mềm bằng cách sử dụng một ngôn ngữ lập trình duy nhất
C# cung cấp chức năng để hỗ trợ phát triển phần mềm hiện đại C# hỗ trợ các nhu cầuphát triển ứng dụng Web, Mobile và ứng dụng Desktop Một số tính năng hiện đại củangôn ngữ lập trình C# là generic, kiểu var, collection, biểu thức lambda, lập trình động,lập trình không đồng bộ, gỡ lỗi nâng cao và xử lý ngoại lệ, v.v
Cú pháp ngôn ngữ C# bị ảnh hưởng bởi C++, Java, Pascal và một số ngôn ngữ khác dễ sửdụng C# cũng loại bỏ sự phức tạp và các tính năng của ngôn ngữ không có cấu trúc
ASP.Net Framework
Trang 18.NET Framework là thành quả tối ưu của sự kết hợp công sức và trí tuệ của
Microsoft, nhằm tạo ra một nền tảng cho việc xây dựng và triển khai nhanh chóng các
dịch vụ và ứng dụng Web XML Tầm nhìn của nền tảng NET Framework kết hợp một
mô hình lập trình đơn giản, dễ sử dụng với các giao thức mở và biến đổi được của
Internet Để đạt được tầm nhìn này, việc thiết kế NET Framework nhằm một số mục
đích:
Sự hợp nhất thông qua các chuẩn Internet công cộng: Để giao tiếp với
những đối tác kinh doanh, những khách hàng phụ thuộc vào các khu vực theo
vị trí địa lý, thậm trí cả những ứng dụng cho tương lai, những giải pháp pháttriển cần được đề nghị hỗ trợ cho các chuẩn Internet mở và tích hợp chặt chẽvới các giao thức mà không bắt buộc người phát triển phải thông hiểu cơ sở hạtầng bên dưới nó
Khả nǎng biến đổi được thông qua một kiến trúc "ghép nối lỏng": Đa số
các hệ thống lớn, biến đổi được trên thế giới được xây dựng trên những kiếntrúc không đồng bộ dựa trên nền thông điệp (message-based) Nhưng công việcxây dựng các ứng dụng trên một kiến trúc như vậy thường phức tạp và có ít cáccông cụ hơn so với những môi trường phát triển ứng dụng N lớp (N-tier) "ghép
nối chặt" .NET Framework được xây dựng để đem lại những lợi thế về nǎng
suất của kiến trúc "ghép nối chặt" với khả nǎng biến đổi được và vận hành vớinhau của kiến trúc "ghép nối lỏng"
Hỗ trợ nhiều ngôn ngữ: Các nhà phát triển sử dụng những ngôn ngữ khác
nhau do mỗi ngôn ngữ riêng có những ưu thế đặc thù : một số ngôn ngữ đặcbiệt thích hợp với thao tác toán học; một số khác lại đa dạng ở các hàm tính
toán tài chính v.v .NET Framework cho phép các ứng dụng được viết trong
nhiều ngôn ngữ lập trình khác nhau và chúng có khả nǎng tích hợp với nhau
một cách chặt chẽ Ngoài ra, với NET Framework, các công ty còn có thể tận
dụng những lợi thế của kỹ nǎng phát triển sẵn có mà không cần phải đào tạo lại
và cho phép những người phát triển sử dụng ngôn ngữ mà họ ưa thích
Trang 19 Nâng cao nǎng suất cho các nhà phát triển: Với số lượng các nhà phát triển
ứng dụng không nhiều nên mỗi giờ làm việc họ phải cho ra kết quả công việc
cụ thể Các nhóm phát triển với NET Framework có thể loại bỏ những công
việc lập trình không cần thiết và tập trung vào viết các lôgic doanh nghiệp.Chẳng hạn như NET Framework có ưu điểm tiết kiệm thời gian như thực hiệncác giao dịch tự động và dễ sử dụng, quản lý bộ nhớ một cách tự động và cóchứa một tập các đối tượng điều khiển đa dạng bao hàm nhiều tác vụ phát triểnchung
Bảo vệ những sự đầu tư thông qua việc bảo mật đã được cải tiến: Một trong
những vấn đề liên quan lớn nhất đến Internet hiện nay là bảo mật Kiến trúc bảo
mật của NET Framework được thiết kế từ dưới lên để đảm bảo các ứng dụng
và dữ liệu được bảo vệ thông qua một mô hình bảo mật dựa-trên-bằng-chứng(evidence-based) và tinh vi
Tận dụng những dịch vụ của hệ điều hành: Windows cung cấp một số lượng
đa dạng các dịch vụ có sẵn với bất kỳ nền tảng nào; như truy cập dữ liệu mộtcách toàn diện, bảo mật tích hợp, các giao diện người dùng tương tác, mô hình
đối tượng thành phần đáng tin cậy và các giám sát quá trình giao dịch .NET Framework đã tận dụng lợi thế đa dạng và phong phú này để đưa ra cho mọi
Trang 20Hình 1.4: SQL ServerCũng giống như các phần mềm RDBMS khác, Microsoft SQL Server được xâydựng bên trên lớp SQL – ngôn ngữ lập trình tiêu chuẩn hóa mà quản trị viên cơ sở dữ liệu (DBAs) và các chuyên gia CNTT sử dụng để quản lý cơ sở dữ liệu và truy vấn dữ liệu nằm bên trong SQL Server thường gắn với Transact-SQL (T-SQL), một cài đặt SQL củaMicrosoft bổ sung một bộ chương trình mở rộng ngôn ngữ lập trình chuẩn.
Lịch sử phát triển
SQLServer được phát triển từ ngôn ngữ SEQUEL2 bởi IBM theo mô hình Codd tạitrung tâm nghiên cứu của IBM ở California ,vào những năm 70 cho hệ thống QTCSDLlớn
Đầu tiên SQL Server được sử dụng trong các ngôn ngữ quản lý CSDL và chạy trêncác máy đơn lẻ Song do sự phát triển nhanh chóng của nhu cầu xây dựng những CSDLlớn theo mô hình khách chủ( trong mô hình này toàn bộ CSDL được tập trung trên máychủ (Server)) Mọi thao tác xử lý dữ liệu được thực hiện trên máy chủ bằng các lệnhSQL máy trạm chỉ dùng để cập nhập hoặc lấy thông tin từ máy chủ) Ngày nay trong cácngôn ngữ lập trình bậc cao đều có sự trợ giúp của SQL Nhất là trong lĩnh vực phát triểncủa Internet ngôn ngữ SQL càng đóng vai trò quan trọng hơn Nó được sử dụng để nhanhchóng tạo các trang Web động
Trang 21SQL đã được viện tiêu chuẩn quốc gia Mỹ (ANSI)và tổ chức tiêu chuẩn quốc tế (ISO)chấp nhận như một ngôn ngữ chuẩn cho CSDL quan hệ Nhưng cho đến nay chuẩn nàychưa đưa ra đủ 100%.Nên các SQL nhúng trong các ngôn ngữ lập trình khác nhau đãđược bổ xung mở rộng cho SQL chuẩn cho phù hợp với các ứng dụng của mình.Do vậy
có sự khác nhau rõ ràng giữa các SQL
Cấu trúc
SQL Server cơ bản dựa trên một cấu trúc bảng biểu, bao gồm các dòng kết nối cácphần tử dữ liệu có liên quan trong các bảng khác nhau, do đó loại bỏ nhu cầu lưu trữ dữliệu ở nhiều vị trí trong cơ sở dữ liệu Mô hình quan hệ cũng cung cấp các tham chiếu vàràng buộc toàn vẹn nhằm duy trì độ chính xác của dữ liệu , các kiểm tra này là một phầnthúc đẩy sự tuân thủ các nguyên tắc về tính nhất quán, tính độc lập và độ tin cậy – đượcgọi chung là các thuộc tính ACID và được thiết kế để đảm bảo cho các giao dịch cơ sở dữliệu được xử lý ổn thỏa
Hình 1.5: Cấu trúc SQL Server
Trang 22Đặc điểm và các phiên bản của SQL Sever
Đặc điểm:
Hình 1.6: Đặc điểm
SQL là ngôn ngữ tựa tiếng Anh
SQL là ngôn ngữ phi thủ tục, nó không yêu cầu ta cách thức truy nhập CSDL như thế nào Tất cả các thông báo của SQL đều rất dễ sử dụng và ít khả năng mắc lỗi
SQL cung cấp tập lệnh phong phú cho các công việc hỏi đáp DL
Chèn, cập nhật, xoá các hàng trong một quan hệ
Tạo, sửa đổi, thêm và xoá các đối tượng trong của CSDL
Điều khiển việc truy nhập tới cơ sở dữ liệu và các đối tượng của CSDL để đảm bảo tính bảo mật của cơ sở DL
Đảm bảo tính nhất quán và sự ràng buộc của CSDL
Yêu cầu duy nhất để sử dụng cho các hỏi đáp là phải nắm vững được các cấu trúc CSDL của mình
Trang 23Các phiên bản
Enterprise : chứa tất cả cá đặc điểm nổi bật của SQL Server, bao gồm nhân bộ máy cơ sở dữ liệu và các dịch vụ đi kèm cùng với các công cụ cho tạo và quản lý phân cụm SQL Server Nó có thể quản lý các CSDL lớn tới 524 petabytes và đánhđịa chỉ 12 terabytes bộ nhớ và hỗ trợ tới 640 bộ vi xử lý(các core của cpu)
Standard : Rất thích hợp cho các công ty vừa và nhỏ vì giá thành rẻ hơn nhiều so với Enterprise Edition, nhưng lại bị giới hạn một số chức năng cao cấp (advanced features) khác, edition này có thể chạy tốt trên hệ thống lên đến 4 CPU và 2 GB RAM
Developer : Có đầy đủ các tính năng của Enterprise Edition nhưng được chế tạo đặc biệt như giới hạn số lượng người kết nối vào Server cùng một lúc… Ðây là phiên bản sử dụng cho phát triển và kiểm tra ứng dụng Phiên bản này phù hợp cho các cá nhân, tổ chức xây dựng và kiểm tra ứng dụng MIỄN PHÍ
Workgroup: ấn bản SQLServer Workgroup bao gồm chức năng lõi cơ sở dữ liệu nhưng không có các dịch vụ đi kèm Chú ý phiên bản này không còn tồn tại ở SQL Server 2012
Express : SQL Server Express dễ sử dụng và quản trị cơ sở dữ liệu đơn giản Được tích hợp với Microsoft Visual Studio, nên dễ dàng để phát triển các ứng dụng dữ liệu, an toàn trong lưu trữ, và nhanh chóng triển khai.
I.5.3 Ưu – Nhược điểm của các ứng dụng
Ưu điểm
C#
- Là một trong số những ngôn ngữ thuần hướng đối tượng
- Chuyên sử dụng để lập trình cho windows
- Thiết kế winform cực tốt, đơn giản và dễ hiểu
- Ngôn ngữ dễ học, dễ tiếp cận với Java
- Khả năng tương tác với Database dễ dàng hơn rất nhiều
- Được window hỗ trợ đầy đủ các control
- Thư viện NET nhẹ, dễ cài đặt và được miễn phí
Trang 24- Ngôn ngữ mã nguồn mở.
- Code/Build trên Visual Studio, một IDE tiện lợi, mạnh mẽ của Microsoft
- Có thể sử dụng để lập trình web thông qua C# thuần hoặc ASP.NET
- IDE Visual Studio hỗ trợ debug, build cực khủng
ASP.Net Framework
- Thực thi và phát triển đa nền (Linux, Windows, MacOS)
- Kiến trúc mô đun để dễ dàng bảo trì
- Phát triển như phần mềm mã nguồn mở
- Tương thích với khuynh hướng phát triển web hiện tại như ứng dụng hướngclient hay môi trường đám mây
SQL Server
- Không cần code
- Rất dễ dàng để quản lý các hệ thống cơ sở dữ liệu bằng việc sử dụng SQLchuẩn mà không cần phải viết bất cứ dòng code nào
- - Tiêu chuẩn được quy định rõ ràng
- SQL sử dụng hai tiêu chuẩn ISO và ANSI, trong khi với các non-SQLdatabase không có tiêu chuẩn nào được tuân thủ
- - Multiple data views
- Với sự trợ giúp của ngôn ngữ SQL, người dùng có thể tạo các hiển thị khácnhau về cấu trúc cơ sở dữ liệu và cơ sở dữ liệu cho những người dùng khácnhau
Nhược điểm
Trang 25 C#
- Khi muốn xài IDE bạn cần phải trả phí sử dụng
- Chỉ đem lại hiệu quả tốt nhất trên Window
- Lập trình Mobile cần phải thông qua trung gian Xamarin (có phí)
- Sử dụng Database tốt nhất với SQL Server
ASP.Net Framework
- NET Framework là một nền tảng lập trình và cũng là một nền
tảng thực thi ứng dụng chủ yếu trên hệ điều hành MicrosoftWindows được phát triển bởi Microsoft nên chỉ sử dụng để dùng trênnền tảng hệ điều hành Windows hạn chế sử dụng trên các nền tảng hệđiều hành khác
- Không thể chạy trên Linux
- Không có Visual Studio thì khó có thể viết code cho ASP.NET
SQL Server
- Microsoft SQL Server chỉ được thiết kế để chạy trên các máy chủ chạy trên
Windows Ngoài việc không thể chạy trên các nền tảng không phảiWindows, cũng có thể có các vấn đề tương thích liên quan đến tương tác vớicác ứng dụng đang chạy trên các nền tảng khác
- Khả năng tương thích hạn chế
- Microsoft SQL Server cần thanh toán phí license để chạy nhiều database.
- Giao diện khó dùng
- SQL có giao diện phức tạp khiến một số người dùng khó truy cập.
- Không được toàn quyền kiểm soát : Các lập trình viên sử dụng SQL không
có toàn quyền kiểm soát cơ sở dữ liệu do các quy tắc nghiệp vụ ẩn
- Thực thi : Hầu hết các chương trình cơ sở dữ liệu SQL đều có phần mở rộng
độc quyền riêng của nhà cung cấp bên cạnh các tiêu chuẩn SQL
- Giá cả : Chi phí vận hành của một số phiên bản SQL khiến một số lập trình
viên gặp khó khăn khi tiếp cận
- Trong những năm qua, SQL đã trở thành một trong những ngôn ngữ cơ sở
dữ liệu được sử dụng rộng rãi nhất trên thế giới Nó đã trở thành một tiêu
Trang 26chuẩn cho Tổ chức Tiêu chuẩn hóa Quốc tế và Viện Stands Quốc gia HoaKỳ.
Trang 27CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
II.1 Kiến trúc hệ thống
Hình 2.3Kiến trúc hệ thống
Tầng người dùng: Người dùng thông qua client giao tiếp với hệ thống gồm có: khách,
người dùng có đăng ký tài khoản (User), quản trị viên (Admin)
Tầng hệ thống: Đây là nơi đáp ứng các yêu cầu thao tác dữ liệu của người dùng, xử lý chính nguồn dữ liệu từ tầng người dùng trước khi truyền xuống tầng dữ liệu Đây còn là
nơi kiểm tra các rằng buộc, tính toàn vẹn và hợp lệ của dữ liệu, thực hiện tính toán và xử
lý các yêu cầu nghiệm vụ trước khi trả lại kết quả về tầng người dùng.
Tầng dữ liệu: tầng này có chức năng giao tiếp với hệ quản trị CSDL như thực hiện các
công việc liên quan đến lưu trữ và truy vấn dữ liệu (tìm kiếm, thêm, xóa, sửa,…)
Trang 28II.2 Mô hình triển khai hệ thống
Hình 2.4: Mô hình triển khai hệ thống
- Hệ thống website giao dịch của nhà hàng online có thể được triển khai trên cáchost server trển thị trường một cách dễ dàng
- Với mô hình này Người dùng, Admin, Người bán hàng, Người mua hàng, truy cập
hệ thống sàn giao dịch của cửa hàng online thông qua môi trường internet một cách
Trang 29Đăng nhập, đăng xuất hệ thốngQuản lý nhà hàng
Quản lý danh mụcCập nhập thông tin nhà hàngĐăng món ăn
Xem trang chủQuản lý món ănXem khách hàng
Bảng 2.1: Tác nhân và ca sử dụng
II.5 Mô hình chức năng của hệ thống
II.1.5.1 Mô hình chức năng phần Backend
Hình 2.5: Mô hình chức năng Backend
Trang 30 Hệ thống:
Đăng nhập: Khi người sử dụng cần đăng nhập vào hệ thống thì phải nhập tàikhoản và mật khẩu sau khi đăng nhập chính xác thì người quản trị được thựchiện các thao tác trong hệ thống
Đăng xuất: Người dùng thoát ra khỏi hệ thống
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục của nhàhàng
Quản lý món ăn: Admin có thể thêm,sửa,xóa các món ăn
Kiểm duyệt báo cáo: Admin tiếp nhận các đơn hàng khi khách hàng đặt món
Bài viết
Quản lý danh mục: Admin có quyền thêm, sửa, xóa các danh mục bài viết
Quản lý nhà hàng: Admin có quyền thêm, sửa, xóa bài viết
Giúp Admin xem được tổng quan thông số và tình hình hoạt động của website
II.1.5.2 Mô hình chức năng phần Frontend
Trang 31Hình 2.6: Mô hình chức năng Frontend
Người dùng có thể xem nhà hàng cũng như chi tiết món ăn…
II.6 Mô hình Usecase(UC)
Biểu đồ Usecase chỉ ra tương tác giữa các UC và tác nhân UC biểu diễn các chứcnăng của hệ thống Tác nhân là con người hay hệ thống khác cung cấp hay thu nhận thông
Trang 32tin từ hệ thống Biểu đồ UC tập trung vào quan sát trạng thái tĩnh của các UC trong hệthống Nó đặc biệt quan trọng trong việc tổ chức và mô hình hoá hệ thống Vì UC biểudiễn yêu cầu hệ thống từ góc nhìn của người dùng, cho nên UC là chức năng mà hệthống phải có Biểu đồ chỉ ra tác nhân nào khởi động UC và khi nào tác nhân nhận thôngtin từ hệ thống.
II.6.1 Tác nhân User
Hình 2.7: Mô hình Usecase tác nhân User
Mục đích: Cho người dùng truy cập website
Tác nhân: User
Điều kiện: Không
Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào website 2 Hiển thị trang web
Trang 333 Chọn danh mục cần xem
5 Chọn món muốn xem
7.Thêm vào giỏ hàng
9.Thanh toán
4 Hiển thị trang danh mục về món ăn
6 Hiển thị chi tiết món ăn
8.Hiển thị giỏ hàng
10.Hiện thị giao diện thanh toán
II.6.2 Tác nhân Admin
Hình 2.8: Mô hình Usecase tác nhân Admin
Trang 34Mục đích: Giúp Admin quản lý website
Tác nhân: Admin
Điều kiện: Đăng nhập vào hệ thống
Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn mục cần xem
5 Chọn mục tiếp theo để xem tiếp
2 Hiển thị trang web với danh sách cácmục
4 Hiển thị danh mục cần xem
II.7 Đặc tả chi tiết các Usecase (UC)
II.7.1 UC Tìm kiếm món ăn
Trang 35Mục đích: Để tìm kiếm món ăn theo nhu cầu của khách hàng.
Tác nhân: User
Điều kiện: Không
Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào website
3 Chọn chức năng tìm kiếm
4 Chọn tìm kiếm theo yêu cầu
6 Tiếp tục truy cập website
2 Hiển thị trang web
5 Trả ra kết quả tìm kiếm
II.7.2 UC Xem món ăn
Hình 2.10: Mô hình UC Xem món ăn
Mục đích: Cho người dùng xem thông tin chi tiết về món ăn
Trang 36Tác nhân: User
Điều kiện: Không
Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào website
3 Chọn món ăn cần xem
6 Tiếp tục truy cập website
2 Hiển thị trang web
4 Hiển thị trang chi tiết về món ăn
5 Hiển thị thêm vào giỏ hàng
II.7.3 UC Quản lý bài đăng
Hình 2.11: Mô hình UC Quản lý bài đăng
Trang 373 Chọn chức năng quản lý tin
5 Chọn chức năng Quản lý Tin đã đăng
7 Tiếp tục truy cập website
2 Hiển thị trang web hệ thống
4 Hiển thị giao diện quản lý tin
6 Hiển thị các tin món ăn đã đăng
II.7.4 UC Quản lý tin món ăn
Hình 2.12: Mô hình UC Quản lý tin món ăn
Mục đích: Cho người quản trị quản lý các tin món ăn
Tác nhân: Admin
Admin
Trang 38Điều kiện: Đăng nhập vào trang quản trị
Trang 39Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1 Truy cập vào trang quản trị
3 Chọn Quản lý tin món ăn
5 Chọn chức năng: Thêm, sửa xóa tin món
ăn
7 Điền thông tin cần thiết và gửi lên
9 Tiếp tục truy cập trang quản trị
2 Hiển thị trang quản trị
4 Hiển thị giao diện quản lý tin
6 Hiển thị form tương ứng
8 Kiểm tra nếu thông tin gửi lên đúng thìcập nhật vào CSDL, sai thì gửi thông báo
1 Chọn Quản lý danh mục món ăn
3 Chọn chức năng: Thêm, sửa xóa danh
mục
5 Điền thông tin cần thiết và gửi lên
7 Tiếp tục truy cập trang quản trị
2 Hiển thị danh sách danh mục
4 Hiển thị form tương ứng
6 Kiểm tra nếu thông tin gửi lên đúng thìcập nhật vào CSDL, sai thì gửi thông báo
Trang 40Luồng sự kiện phụ:
Admin xem báo cáo về món ăn được người dùng gửi lên để xử lý
II.7.5 UC Quản lý bài viết
Hình 2.13: Mô hình UC Quản lý bài viết
Mục đích: Cho người quản trị quản lý bài viết
Tác nhân: Admin
Điều kiện: Đăng nhập vào trang quản trị