Chuyên đề thực tập tốt nghiệp MỤC LỤC Trang A PHẦN MỞ ĐẦU 1 CHƯƠNG I 1 I NÊU BÀI TOÁN 1 II KHẢO SÁT HIỆN TRẠNG 2 1 Giới thiệu đơn vị khảo sát 2 2 Hiện trạng tổ chức 2 3 Hiện trạng nghiệp vụ 3 III TÓM[.]
NÊU BÀI TOÁN
Hiện nay, cùng với sự phát triển mạnh mẽ của các mạng diện rộng và đặc biệt là mạng Internet, những doanh nghiệp lớn cũng như những doanh nghiệp đang phát triển đã nhận thấy được những tiềm năng to lớn của việc khai thác mạng thông tin vào quá trình hoạt động kinh doanh của mình Các hoạt động như giải trí, văn hoá, thương mại dần được đưa lên mạng và ngày càng chứng tỏ tính hiệu quả của Internet trong việc chia sẻ thông tin MạngInternet và các ứng dụng của nó như thương mại điện tử mới chỉ xuất hiện ởViệt Nam trong vòng 10 năm qua nhưng đã nhanh chóng chiếm được sự quan tâm của mọi người Ngày càng có nhiều doanh nghiệp Việt Nam tận dụng khai thác Internet nhằm nâng cao hiệu quả kinh doanh và đã đạt được những kết quả không nhỏ, thương mại điện tử đã và đang là cơ hội cho những doanh nghiệp muốn vươn tới thành công Trên cở sở nhận thức được vấn đề đó và các nhu cầu đòi hỏi của thị trường nhóm dự án của tôi tiến hành thực nghiệm website giới thiệu và bán hàng qua mạng với tên sản phẩm là Shopcomputer Sau đây là tài liệu mô tả về dự án:
KHẢO SÁT HIỆN TRẠNG
1 Giới thiệu đơn vị khảo sát:
• Tên công ty: Công ty TNHH Kỹ Nghệ Phúc Anh
• Địa chỉ: Số 25 Trần Đại Nghĩa, Hai Bà Trưng, Hà Nội.
• Lĩnh vực hoạt động: chuyên buôn bán các mặt hàng: máy vi tính, laptop, linh kiện máy tính
- Ban giám đốc: điều hành công ty, quản lý các bộ phận bên dưới, định hướng cho công ty phát triển vững mạnh
- Bộ phận kinh doanh: tiến hành định giá, tìm nguồn hàng, liên hệ với các nhà sản xuất,…
- Bộ phận kho: nhập xuất hàng hóa cho bộ phận bán hàng
- Bộ phận bán hàng: gồm những nhân viên đứng tại bàn tư vấn mua hàng, từng quầy trưng bày sản phẩm, và các nhâ n viên thu ngân và giao hàng cho khách
- Bộ phận kỹ thuật: tìm hiểu thông số các sản phẩm, hỗ trợ kỹ thuật và bảo hành sản phẩm cho khách hàng
- Bộ phận kế toán: thu thập các hóa đơn bán, nhận hàng để tiến hành báo cáo tổng kết tình hình tài chính của công ty
- Bộ phận bảo vệ: góp phần giữ gìn trật tự an ninh cho cửa hàng
- Khi khách hàng đến cửa hàng mua sản phẩm, họ sẽ xem trong danh mục sản phẩm những hàng hóa mà họ ưa thích Lúc này sẽ có nhân viên ra tư vấn cho họ mua được những mặt hàng hợp với ý muốn của họ
- Sau khi khách hàng đã ưng ý một hay nhiều mặt hàng nào đó, nhân viên sẽ ghi từng món hàng vào giấy, và bảo khách hàng mang giấy này ra quầy thu ngân
- Ở quầy thu ngân, khách hàng sẽ trả tiền cho từng mặt hàng mình mua, và nhận được phiếu xuất hàng từ quầy thu ngân
- Sau đó, khách hàng mang phiếu xuất hàng đến quầy giao hàng Quầy giao hàng mới bắt đầu lấy hàng từ kho và dán tem bảo hành cho khách hàng.
- Cuối kỳ, bộ phận kế toán sẽ tiến hành tổng kết các hóa đơn thu chi để báo cáo định kỳ cho ban giám đốc biết tình hình tài chính.
TÓM TẮT DỰ ÁN
1 Tóm tắt hoạt động của dự án
Website được xây dựng nhằm phục vụ cho các khách hàng có nhu cầu tìm hiểu thông tin về các sản phẩm Cung cấp các thông tin cần thiết, tạo điều kiện cần thiết cho khách hàng có thể tiếp cận với đầy đủ các thông tin mới nhất và lựa chọn sản phẩm phù hợp với mình Dựa vào đó, khách hàng có thể đặt mua các sản phẩm qua website Khách hàng cũng có thể gửi thông tin về những nhu cầu của mình, yêu cầu các sản phẩm cùng loại hay khác loại hay yêu cầu các thông tin tư vấn hỗ trợ khách hàng cho người quản lý website
Người quản lý website nhận thông tin yêu cầu, phản hồi thông tin từ phía khách hàng, thường xuyên cập nhật sản phẩm, đơn hàng để sản phẩm mà nhà sản xuất giới thiệu cho khách hàng luôn được đổi mới về chủng loại, kiểu dáng …đem lại sự tin tưởng cho khách hàng về sản phẩm của mình. Người quản lý website có thể quản lý các sản phẩm bày bán trong website, thống kê về các hàng hóa bán được, các nhu cầu của khách hàng từ đó đưa ra được những thay đổi phù hợp để có thể mang lại lợi nhuận cao nhất từ việc bán hàng qua mạng.
2 Phạm vi ứng dụng của dự án
Website xây dựng để áp dụng cho các công ty bán sản phẩm về máy tính thiết bị máy tính và các thiết bị văn phòng.
Đối với dịch vụ bán sản phẩm
Do hạn chế bởi khoảng cách địa lý nên việc cung ứng sản phẩm chỉ có thể tiến hành trong phạm vi một quốc gia, một lãnh thổ Khách hàng sau khi đặt sản phẩm trên website sẽ được đại lý hoặc chi nhánh gần nhất giao hàng.
Đối với dịch vụ tư vấn hỗ trợ khách hàng
Website được áp dụng trên phạm vi toàn cầu Dịch vụ này có thể cung cấp thông tin về các sản phẩm, tư vấn, hỗ trợ khách hàng về việc sử dụng sản phẩm qua mạng Những thắc mắc khi khách hàng sử dụng sản phẩm mà gặp sự cố Sẽ đươc nhân viên của chúng tôi giải quyết một cách nhanh nhất.
Trong kỷ nguyên của công nghệ thông tin việc lưu trữ, xử lý thông tin của con người phụ thuộc rất nhiều vào công nghệ Cônh nghệ được cập nhật,thay đổi liên tục khiến cho nhữnh đồ dùng công nghệ đó không thể thiếu đối với nhiều gia đình cũng như toàn xã hội Chính vì vậy với mục đích đem đến các sản phẩm tốt nhất, phục vụ đem lại lợi ích nhiều nhất cho khách hàng.Website của chúng tôi được sử dụng cho tất cả các đối tượng có nhu cầu mua sản phẩm Do tính thuận tiện, bất kỳ ai cũng có thể tiến hành giao dịch qua Website Với mục đích đem đến các sản phẩm tốt nhất, phục vụ đem lại lợi ích nhiều nhất cho khách hàng, website được sử dụng cho tất cả các đối tượng có nhu cầu xem và mua sản phẩm Qua phân tích nhu cầu thực tế , chúng ta có thể tập trung khai thác, quảng bá sản phẩm, phân tích tâm lý khách hàng thông qua một số đối tượng chính sau đây :
+ Những người có mức thu nhập cao.
+ Những người có mức thu nhập trung bình.
+ Những người có mức thu nhập thấp. v.v
Về phía nhà quản trị, website cung cấp một môi trường thuận tiện cho việc quản lý, duy trì hoạt động của website Website được thiết kế đơn giản, không cần người quản lý phải có hiểu biết sâu về công nghệ thông tin cũng có thể quản lí được.
+Phần cứng: 01 x CPU Intel Xeon 2.0GHz, 01 x RAM 512MB
01 x HDD SCSI trống ít nhất 200MB.
+Phần mềm: Windows 2000 server, Microsoft SQL server
Máy sử dụng để duyệt web(client):
Bất cứ máy tính nào nối mạng Internet Yêu cầu IE 5.0 hoặc các trình duyệt tương đương có hỗ trợ flash.
Hệ thống được ứng dụng dựa trên môi trường triển khai chính:
- Phần cứng : IIS ( Internet Information Services).
- Phần mềm : ASP.NET(C#), SQL server 2005.
5 Công cụ sử dụng để phát triển:
- Hệ quản trị CSDL: SQL server 2005.
Yêu cầu chức năng nghiệp vụ
1 Lưu danh mục loại sản phẩm
Lưu trữ LuuLSP Thêm, sửa xóa
2 Lưu thông tin sản phẩm Lưu trữ LuuSp Thêm, sửa xóa
3 Lưu thông tin nhóm người dùng
Lưu trữ LuuTTNND Thêm, sửa xóa
4 Lưu thông tin người dùng Lưu trữ LuuTTND Thêm, sửa xóa
5 Lưu thông tin nhà sản xuất Lưu trữ LuuTTNSX Thêm, sửa xóa
6 Lưu thông tin đơn đặt hàng Lưu trữ LuuTTHD Thêm, sửa xóa
7 Lưu chi tiết đơn đặt hàng Lưu trữ LuuCTHD Thêm, sửa xóa
8 Lưu thông tin phản hồi Lưu trữ LuuTTPH Thêm, sửa xóa
9 Lưu tin tức Lưu trữ LuuTT Thêm, sửa xóa
10 Thay đổi, phục hồi mật khẩu người dùng.
11 Hiển thị menu loại sản phẩm
12 Hiển thị thông tin tổng quan nhiều sản phẩm
13 Hiển thị thông tin chi tiết sản phẩm
14 Hiển thị những sản phẩm mới nhất
15 Hiển thị phản hồi Kết xuất HienthiPH
16 Hiển thị thông tin chi tiết của người dùng.
17 Hiển thị thông tin các hóa đơn đặt hàng
18 Hiển thị thông tin chi tiết từng hóa đơn đặt hàng.
19 Hiển thị bảng báo giá Kết xuất HienthiBBG
20 Tìm kiếm sản phẩm Tra cứu TimkiemSP
21 Hiển thị danh sách người dùng
22 Tính năng giỏ hàng Lưu trữ Giohang
23 Hiển thị thông tin giỏ hàng cho khách hàng
24 Tính thành tiền những sản phẩm khách hàng chọn mua
25 In hóa đơn đặt hàng Thống kê
26 Thống kê doanh thu theo ngày
Chi tiết các ký hiệu trên.
STT Ký hiệu Tên ký hiệu
1 LuuLSP Lưu danh mục loại sản phẩm
Thông tin loại sản phẩm bao gồm: mã loại sản phẩm, tên loại sản phẩm.
2 LuuSp Lưu thông tin sản phẩm
-Đầu tiên cần cho biết sản phẩm thuộc về loại phẩm nào.-Với mỗi sản phẩm lưu trữ thêm các thông tin sau: tên, thông số của sản phẩm, giá bán, hình ảnh, ngày nhập liệu, nhà sản xuất ra nó, và cho biết nó có được hiển thị ra trên website hay không.
3 LuuTTNND Lưu thông tin nhóm người dùng
-Thông tin nhóm người dùng bao gồm: mã nhóm,tên nhóm.
-Có 4 nhóm người dùng tương tác với hệ thống:Administrators, Editors,
4 LuuTTND Lưu thông tin người dùng
-Đầu tiên cần cho biết người dùng thuộc về nhóm người dùng nào.
-Thông tin chi tiết của từng người dùng: mã người dùng, tên tài khoản, mật khẩu, lần kích hoạt cuối, email, câu hỏi & câu trả lời để phục hồi mật khẩu, ngày tạo tài khoản, lần đăng nhập cuối,…
-Ngoài ra, còn các thông tin phụ khác.
5 LuuTTNSX Lưu thông tin nhà sản xuất
Thông tin cần lưu trữ và quản lý của nhà sản xuất sản phẩm: mã, tên, địa chỉ, email, logo, website của nhà sản xuất.
6 LuuTTHD Lưu thông tin đơn đặt hàng
Mỗi đơn đặt hàng cần lưu các thông tin sau: mã đơn, mã khách hàngđặt hàng, địa chỉ để chuyển hàng cho khách hàng, đơn giá của hóa đơn và ngày lập đơn đặt hàng.
7 LuuCTHD Lưu chi tiết đơn đặt hàng Đơn đặt hàng cần cho biết những s ản phẩm do khách hàng đặt , giá bán và số lượng của từng sản phẩm.
8 LuuTTPH Lưu thông tin phản hồi
Thông tin chi tiết cần lưu trữ đối với phản hồi: mã bài viết, tiêu đề, nội dung, ngày đăng, do người dùng nào trong các nhóm quản trị
9 LuuTT Lưu tin tức Tin tức sự kiện về cntt
10 Matkhau Thay đổi, phục hồi mật khẩu người dùng.
-Các tài khoản người dùng có thể dễ dàng thay đổi mật khẩu đăng nhập của mình vì lý do bảo mật
-Trong trường hợp quên mật khẩu, người dùng có thể dễ dàng được hệ thống phục hồi mật khẩu dựa trên câu hỏi & câu trả lời lúc tạo tài kho ả
11 HienthiTTLSP Hiển thị menu loại sản phẩm
Menu này s ẽ liệt kê danh sách tên các loại sản phẩm, khi người dùng nhấn vào tên này, sẽ cho người dùng danh sách các sản phẩm trong nhóm sản phẩm này ở mức tổng quan
12 HienthiTQSP Hiển thị thông tin tổng quan nhiều sản phẩm
Khi người dùng c họn nhóm sản phẩm, sẽ hiển thị thông tin tổng quan các sản phẩm: hình ảnh, tên sản phẩm, giá bán, nhà sản xuất và 1 button để xem thông tin chi tiết sản phẩm đó
13 HienthiCTSP Hiển thị thông tin chi tiết sản phẩm
Khi người dùng đã nhấn vào button
“Chi tiết”, hệ thống sẽ hiển thị thông tin của sản phẩm đó ở mức chi tiết: hình ảnh, tên sản phẩm, giá bán, thông số kỹ thuật
14 HienthiSPM Hiển thị những sản phẩm mới nhất Ở trang chủ, các sản phẩm mới nhất được hiển thị ra cho khách hàng chọn lựa với các thông tin sau: tên sản phẩm, giá bán, hình ảnh.
15 HienthiPH Hiển thị phản hồi
Liệt kê tên nội dung phản hồi
Hiển thị thông tin chi tiết của người dùng.
Hiển thị các thông tin sau: email, ngày tạo tài hoản, lần đăng nhập cuối, lần thay đổi mật khẩu cuối.
17 HienthiTTHD Hiển thị thông tin các hóa đơn đặt hàng
Hiển thị các thông tin sau:mã hóa đơn, tài khoản khách hàng, ngày lập hóa đơn, địa chỉ gửi hàng, đơn giá.
18 HienthiCTHD Hiển thị thông tin chi tiết từng hóa đơn đặt hàng.
Hiển thị các thông tin sau:
-Các thông tin về hóa đơn: mã hóa đơn, tài khoản khách hàng, ngày lập, địa chỉ gửi hàng, đơn giá
-Thông tin chi tiết: sản phẩm được mua đi kèm với giá sản phẩm và số lượng đã được đặt.
19 HienthiBBG Hiển thị bảng báo giá
Có 1 trang web dành riêng để hiển thị bảng báo giá Bảng báo giá ở dạng Flash, giúp website thêm sinh động, đẹp đẽ.
20 TimkiemSP Tìm kiếm Cho phép người dùng tìm kiếm sản sản phẩm phẩm theo: tất cả thông tin, tên sản phẩm, đặc tính kỹ thuật và tìm theo nhà sản xuất sản phẩm
21 HienthiDSND Hiển thị danh sách người dùng
-Tính năng này c hỉ dành cho nhóm Administrators -Liệt kê bảng chứa thông tin chi tiết của người dùng bao gồm các thông tin: mã tài khoản, tên tài khoản, lần kích hoạt tài khoản cuối cùng, và 1 hyperlink “Chi tiết” để xem chi tiết hơn về tài khoản này.
22 Giohang Tính năng giỏ hàng
-Giỏ hàng của khách hàng sẽ được lưu trữ dựa trên kỹ thuật lập trình web như: session, mảng dữ liệu,…
-Khách hàng phải đăng nhập hệ thống mới có giỏ hàng - Thông tin giỏ hàng: sản phẩm , giá bán của sản phẩm, số lượng và thành tiền của từng sản phẩm, tổng thành tiền
(đơn giá c ủa hóa đơn)
23 HienthiTTGH Hiển thị thông tin giỏ hàng
-Chỉ hiện thị nếu khách hàng đã đăng nhập hệ thống.
-Cho biết các sản phẩm đã chọn mua, cho khách hàng số lượng, đơn giá, thành tiền -Có dòng hiển thị tổng số tiền của giỏ hàng. -Có nút xóa sản phẩm đã chọn mua, và nút cập nhật lại số lượng đã chọn, nút tiếp tục mua hàng và nút tính tiền
24 Thanhtien Tính thành tiền những sản phẩm khách hàng chọn mua
Thành tiền = (Số lượng sản phẩm * Đơn giá từng sản phẩm )
25 InHD In hóa đơn đặt hàng
In ra các thông tin cơ bản của hóa đơn, số lượng in hóa đơn sản phẩm, giá từng sản phẩm, thành tiền của từng sản phẩm, đơn giá của hóa đơn và địa chỉ giao hàng.
26 Thongke Thống kê doanh thu theo ngày
Cho phép ban quản trị thống kê doanh thu theo từng ngày, in ra: mã hóa đơn, đơn giá, và tổng doanh thu trong ngày đó.
Phân quyền người dung
Nội dung Mô tả Ghi chú
-Chia thành 4 nhóm người dùng chính:
-Nhóm Administrators có toàn quyền trên hệ thố ng: quản lý tài khoản, hóa đơn
-Nhóm Editors: có quyền đăng, xóa các thể loại bài viết và bài viết trên website
-Nhóm Sales: có quyền quảnlý đơn đặt hàng
-Nhóm Customers: là nhóm khách hàng, có quyền xem thông tin, tìm kiếm sản phẩm, bài viết, đặt giỏ hàng, và đặt hàng.
Framework của ASP.NET 3.5 để làm cơ chế chứng thực và phân quyền cho hệ thống.
Các biểu mẫu liên quan
Phân tích thiết kế hệ thống ở mức quan niệm
1.Thành phần dữ liệu ở mức quan niệm: a.Liêt kê Dữ liệu:
Tên thuộc tính Diễn giải catId Mã loại sản phẩm catName Tên loại sản phẩm
CatImage Ảnh loải sản phẩm catDescription loại sản phẩm feedbackId Mã Phản hồi feedbackTitle Tiêu đề Phản hồi feedbackContent Nội dung Phản hồi feedbackUpdatingDate Ngày cập nhập Phản hồi customerId Mã Khách hàng customerName Tên Khách hàng sex Giới tính Khách hàng birthday Ngày sinh Khách hàng customerAddress Địa chỉ Khách hàng customerEmail Email Khách hàng cutomerPhone Điện thoại Khách hàng username Tên đăng nhập Khách hàng password Mật khẩu Khách hàng newsId Mã tin tức newsTitle Tiêu đề tin tức newsImage ảnh tin tưc shortcontent Nội dung ngắn tin tức newsContent Nội dung tin tức newsUpdatingDate Ngày cập nhập tin tức source Nguồn cung cấp tin tức saleOf Giảm giá money Tổng tiên orderDate Ngày lập hóa đơn receiveDate Ngày nhận hàng productId Mã sản phẩm productName Tên sản phẩm productPrice Giá sản phẩm productDescription Mô tả sản phẩm productAmount Số lượng sản phẩm productImage ảnh sản phẩm oder Đặt hàng productGuaranty Bảo hành sản phẩm
ProviderId Mã nhà cung cấp providerName Tên nhà cung cấp providerAddress Địa chỉ nhà cung cấp providerPhone Điện thoại nhà cung cấp
ProviderEmail Email nhà cung cấp website Website nhà cung cấp
RoleID Mã nhóm ngư ời dùng
RoleName Tên nhóm người dùng
LoweredRoleName Tên nhóm người dùng ở dạng chữ in thường Description Mô tả về nhóm người dùng
UserName Tên tài khoản người dùng
LoweredUserName Tên tài khoản người dùng ở dạng chữ in thường LastActivityDate Thời điểm kích hoạt tài khoản người dùng lần cuối cùng Password Mật khẩu đăng nhập hệ thống của người dùng Email Email của người dùng
LoweredEmail Email của người dùng ở dạng chữ in thường PasswordQuestion Câu hỏi để lấy lại mật khẩu người dùng PasswordAnswer Câu trả lời để lấy lại mật khẩu người dùngCreateDate Ngày tài khoản người dùng được tạo ra LastLoginDate
Thời điểm đăng nhập hệ thống của người dùng LastPasswordChangedDate Thời điểm thay đổi mật khẩu tài khoản lần cuối b Mô tả thực thể
Thực thể 1: Loại sản phẩm catId: đây là thuộc tính khóa dùng để phân biệt các loại sản phẩm với nhau, nó sẽ tự động tăng khi thêm một loại sản phẩm mới catName: mô tả tên của loại sản phẩm catImage: Ảnh loại sản phẩm catDescription: môt tả chi tiêt loại sản phẩm
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 2: Sản phẩm productId: đây là thuộc tính khóa dùng để phân biệt các sản phẩm với nhau, nó sẽ tự động tăng khi có sản phẩm mới được thêm vào productName: mô tả tên của sản phẩm productPrice: mô tả giá thành của sản phẩm productImage: chứa thông tin là chuỗi đường dẫn trỏ đến tập tin ảnh của sản phẩm productQuanrity : một cờ hiệu cho biết có hiển thị sản phẩm trên website hay không productAmount: Số lượng sản phẩm oder: đặt hàng
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 3: Nhà cung cấp providerId: đây là thuộc tính khóa dùng để phân biệt các nhà sản xuất với nhau, nó sẽ tự động tăng khi thêm một nhà sản xuất mới providerName: mô tả tên gọi của nhà cung cấp providerAddress: mô tả địa chỉ của nhà cung cấp providerEmail: mô tả email của nhà cung cấp providerPhone: điện thoại nhà cung cấp providerWebsite: website nha cung cấp
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 4: aspnet_Roles (nhóm người dùng)
RoleID: đây là thuộc tính khóa dùng để phân biệt các nhóm người dùng với nhau, nó sẽ tự động tăng khi thêm một nhóm người dùng mới
RoleName : tên nhóm người dùng
LoweredRoleName: tên nhón nhóm người dùng ở dạng chữ in thường Description: mô tả về nhóm người dùng
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 5: aspnet_Users (người dùng)
UserID: đây là thuộc tính khóa dùng để phân biệt các người dùng với nhau, nó sẽ tự động tăng khi thêm một người dùng mới
UserName : tên tài khoản đăng nhập hệ thống của người dùng
LoweredUserName: tên tài khoản đăng nhập hệ thống của người dùng ở dạng chữ in thường
LastActivityDate: thời điểm kích hoạt tài khoản lần cuối cùng của tài khoản
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 6: aspnet_Membership (Thông tin chi tiết tài khoản người dùng)
Password: mật khẩu để đăng nhập hệ thống của người dùng
Email: email cá nhân của người dùng
LoweredEmail: email cá nhân của người dùng viết ở dạng chữ in thường PasswordQuestion: câu hỏi để lấy lại mật khẩu đã mất
PasswordAnswer: câu trả lời để lấy lại mật khẩu đã mất
CreateDate: ngày tài khoản người dùng được tạo
LastLoginDate: thời điểm đăng nhập hệ thống lần cuối cùng của người dùng.
LastPasswordChangedDate: thời điểm thay đổi mật khẩu lần cuối cùng của người dùng
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 7: HoaDon orderId: đây là thuộc tính khóa dùng để phân biệt các hóa đơn với nhau orderDate: mô tả ngày khách hàng đặt hóa đơn mua hàng orderUpdatingDate: mô tả ngày khách hàng nhận hàng
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 8: Tin tức newsId: đây là thuộc tính khóa dùng để phân biệt tin tức với nhau, nó sẽ tự động tăng khi thêm một hóa đơn mới newsTitle: Tiêu đề tin tức newsShortContent: nôi dung ngắn của tin tức content : Nội dung chi tiết tin tức newsUpdating: ngày cập nhập tin tức
Source: nguồn lấy tin tức
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 9: Phản hồi feedBackId: đây là thuộc tính khóa dùng để phân biệt thông tin phản hồi với nhau, nó sẽ tự động tăng khi thêm một phản hồi mới feedBackTitle: Tiêu đề phản hồi feedBackcontent : Nội dung phản hồi newsUpdating: ngày cập nhập phản hồi
STT Tên thuộc tính Kiểu dữ liệu Kích thước
Thực thể 10: Khách hàng customerId: đây là thuộc tính khóa dùng để phân biệt các khách hàng với nhau, nó sẽ tự động tăng khi thêm một khách hàng mới customerName: mô tả tên gọi của khách hàng customerAddress: mô tả địa chỉ của khách hàng customerEmail: mô tả email của khách hàng customerPhone: điện thoại khách hàng
STT Tên thuộc tính Kiểu dữ liệu Kích thước
7 PassWord varchar 50 c.Mô tả mối kết hợp:
Mối kết hợp không thuộc tính:
Thực thể tham gia: aspnet_Roles và aspnet_Users
Diễn giải: Một nhóm người dùng có một hoặc nhiều người dùng trong đó Một người dùng thuộc về một hoặc nhiều nhóm.
Mối kết hợp:Đăng tải
Thực thể tham gia: tblCustomer và tblFeedback
Diễn giải: Một khách hàng không có hoặc đăng tải nhiều câu hỏi Một câu hỏi chỉ do khách hàng đưa lên.
Thực thể tham gia: tblCategories và tblProducts
Diễn giải: Một loại sản phẩm có một hoặc nhiều sản phẩm trong đó Một sản phẩm chỉ thuộc về duy nhất một loại sản phẩm.
Thực thể tham gia: tblCustomer và tblOrder
Diễn giải: Một khách hàng không có hoặc đặt nhiều hóa đơn Một hóa đơn chỉ do khách hàng dùng đặt.
Mối kết hợp: cung cấp
Thực thể tham gia: tblProviers và tblProducts
Diễn giải: Một nhà cung cấp có một hoặc nhiều sản phẩm Một sản phẩm thuộc về duy nhất một nhà cung cấp.
Mối kết hợp có thuộc tính:
Mối kết hợp: Chi tiết hóa đơn
Thực thể tham gia: tblOrders và tblProducts
Diễn giải: Một hóa đơn mua hàng có thể chứa một hoặc nhiều sản phẩm trong đó Một sản phẩm cũng có thể nằm trong nhiều hóa đơ n mua hàng. d.Mô hình thực thể kết hợp:
Phân tích thiết kế hệ thống ở mức logic
1.1.Chuyển đổi mô hình thực thể kết hợp sang mô hình quan hệ:
Từ mô hình khái niệm là mô hình biểu diễn tất cả các đối tượng, mỗi đối tượng là một thể hiện trong thế giới thực, ta tiến hành chuyển đổi nó sang mô hình quan hệ Trong mô hình quan hệ, chúng ta xét đến các mối quan hệ giữa các đối tượng đó Cụ thể thực hiện qua các bước sau:
Bước 1: Một thực thể chuyển thành một quan hệ tương ứng, đồng thời tạo khóa chính cho quan hệ Các quan hệ được tạo thành là: tblFeedBacks(feedbackId,feedbackTitle,feedbackContent,feedbackUpdatin gDate) aspnet_Roles(RoleID,RoleName,LoweredRoleName,Description) aspnet_Users(UserID,UserName,LoweredUserName,LastActivityDate) aspnet_Membership(ID,Password,Email,LoweredEmail,PasswordQuestion
, PasswordAnswer, CreateDate, LastLoginDate, LastPasswordChangedDate) tblCategories(catId,catName,catImage,catDescription) tblProviders(providerId, providerName, providerAddress, providerEmail, providerPhone, providerWebsite) tblProducts (productId, productName, productPrice, productImage, productAmount, productGuaranty) tblCustomers (customerId, customerName, customerAddress, customerEmail, customerPhone, UserName,Password) tblNews (newsId, newsTitle, newsShortContent, newsContent, newsUpdatingDate,Source) tblOrders(orderId,orderDate,orderReceiveDate)
Bước 2: Các mối kết hợp (1,n) sẽ chuyển thành một quan hệ tương ứng với thuộc tính Mối kết hợp Chứa: bổ sung khóa chính catId của thực thể tblCategories vào thực thể tblProducts làm khóa ngoại, ta được: tblProducts(productId, productName, productPrice, productImage, productAmount, productGuaranty,#product_CatId)
Mối kết hợp cung cấp: bổ sung khóa chính providerId của thực thể tblProviders vào thực thể tblProducts làm khóa ngoại, ta được: tblProducts(productId, productName, productPrice, productImage, productAmount, productGuaranty,#product_CatId,#product_ProviderId) Mối kết hợp Đăng tải: bổ sung khóa chính cutomerId của thực thể tblCustomers vào thực thể tblFeedbacks làm khóa ngoại, ta được: tblFeedbacks ( feedbackId, feedbackTitle, feedbackContent, feedbackUpdatingDate,#feedback_CustomerId)
Mối kết hợp Đặt: bổ sung khóa chính customerId của thực thể tblCustomers vào thực thể tblOrders làm khóa ngoại, ta được: tblOrders(orderId,orderDate,orderReceiveDate,#order_CustomerId)
Mối kết hợp ThongTin: bổ sung khóa chính UserID của thực thể aspnet_Users vào thực thể aspnet_Membership làm khóa ngoại, ta được: aspnet_Membership(ID,#UserID,Password,Email,LoweredEmail,Password
Bước 3: Các mối kết hợp (n,n) sẽ chuyển thành một quan hệ tương ứng với thuộc tính:
Mối kết hợp chi tiết hóa đơn: sẽ được chuyển thành một quan hệ tblOrderDetails với các thuộc tính: Mã hóa đơn (orderId), mã sản phẩm (productId) và số lượng sản phẩm (Amount) tblOrderDetails (#orderDetail_orderId,# orderDetail_orderId,
Mối kết hợp Có: sẽ được chuyển thành một quan hệ aspnet_UsersInRoles với các thuộc tính: mã nhóm người dùng (RoleID), mã ngư ời dùng
(UserID) aspnet_UsersInRoles(#RoleID,#UserID) ≠→€
Cuối cùng ta có mô hình quan hệ sau: tblFeedBacks(feedbackId,feedbackTitle,feedbackContent,feedbackUpdatin gDate,#feedback_CustomerId) aspnet_Roles(RoleID,RoleName,LoweredRoleName,Description) aspnet_Users(UserID,UserName,LoweredUserName,LastActivityDate) aspnet_Membership(ID,#UserID,Password,Email,LoweredEmail,
LastPasswordChangedDate) tblCategories(catId,catName,catImage,catDescription) tblProviders(providerId, providerName, providerAddress, providerEmail, providerPhone, providerWebsite) tblProducts (productId, productName, productPrice, productImage, productAmount, productGuaranty, #product_CatId,#product_ProviderId) tblCustomers (customerId, customerName, customerAddress, customerEmail, customerPhone, UserName,Password) tblNews (newsId, newsTitle, newsShortContent, newsContent, newsUpdatingDate,Source) tblOrders(orderId,orderDate,orderReceiveDate,#order_CustomerId) tblOrderDetails (#orderDetail_orderId,# orderDetail_orderId,
1.2.Các ràng buộc toàn vẹn:
R1: feedbackId trong quan hệ tblFeedbacks
Biểu diễn: ¥t1,t2 € tblFeedbacks ,t1 ≠ t2 → t1.feedbackId ≠ t2.feedbackId
R2: RoleID trong quan hệ aspnet_Roles
Biểu diễn: ¥t1,t2 € aspnet_Roles , t1 ≠ t2 → t1.RoleID ≠ t2.RoleID Bối cảnh: aspnet_Roles
R3: UserID trong quan hệ aspnet_Users
Biểu diễn: ¥t1,t2 € aspnet_Users , t1 ≠ t2 → t1.UserID ≠ t2.UserID Bối cảnh: aspnet_Users
R4: catId trong quan hệ tblCategories
Biểu diễn: ¥t1,t2 € tblCategories, t1 ≠ t2 → t1.catId ≠ t2.CatId
R5: productId trong quan hệ tblProducts
Biểu diễn: ¥t1,t2 € tblProducts, t1 ≠ t2 → t1.productId ≠ t2.productId Bối cảnh: tblProducts
R6: providerId trong quan hệ tblProviders
R7: orderId trong quan hệ tblOrders
R8 : {order,productId} trong quan hệ tblOrderDetails
R9 : {RoleID,UserID} trong quan hệ aspnet_UserInRoles
R10 : aspnet_Users.UserID tồn tại trong aspnet_UserInRoles
R11: aspnet_Roles.RoleID tồn tại trong aspnet_UserInRoles Biểu diễn:
Bối cảnh: aspnet_UserInRoles, aspnet_Roles
R12: catId tồn tại trong productId_catId
R13: providerId tồn tại trong product_ProviderId
R14: customerId tồn tại trong order_CustomerId Biểu diễn:
R15: orderId tồn tại trong orderDetail_OrderId Biểu diễn:
R16: productId tồn tại trong orderDetail_ProductId Biểu diễn:
Phân tích thiết kế hệ thống ở mức vật lý
1.1.CSDL sử dụng: BanHang.mdf
2 Thành phần xử lý ở mức vật lý:
Ngôn ngữ lập trình sử dụng:
Visual C# Hệ thống được làm trên môi trường phát triển tích hợp (IDE) Visual Studio 2008 , với nền NET Framework v3.5
Menu định hướng của website:
Menu các loại sản phẩm :
Menu quản lý website của ban quản trị:
Giỏ hàng : protected void Page_Load(object sender, EventArgs e) { util = new StringUtils(); if (!IsPostBack)
CartDT cart = (CartDT)Session["cart"]; if (cart==null)
{ lblThongBao.Text = "Bạn chưa chọn mặt hàng nào"; cmdTiepTuc.Visible = false; cmdXoaGioHang.Visible = false; p1.Visible = false; return;
{ lblThongBao.Text = "Bạn chưa chọn mặt hàng nào";
// cmdThanhToan.Visible = false; p1.Visible = false; cmdTiepTuc.Visible = false; cmdXoaGioHang.Visible = false; return;
} grdData.DataSource = cart.toDataTable(); grdData.DataBind(); lblThongBao.Text = "Giỏ hàng có: " + cart.getTotalPro() + " mặt hàng "; lblTongTien.Text = "Tổng cộng: " +
ToolsDT.GetFormatMoney((Object)cart.getTotalPrice(),",") + "VNĐ";
Code Phân Trang: public partial class _Default : System.Web.UI.Page { string id; protected void cmdMua_Click(object sender, System.Web.UI.WebControls.CommandEventArgs e) { string idpr = e.CommandName;
CartDT cart = (CartDT)Session["cart"]; if (cart == null)
#region Private Properties private int CurrentPage
{ object objPage = ViewState["_CurrentPage"]; int _CurrentPage = 0; if (objPage == null)
{ int _FirstIndex = 0; if (ViewState["_FirstIndex"] == null)
_FirstIndex = Convert.ToInt32(ViewState["_FirstIndex"]); } return _FirstIndex;
{ int _LastIndex = 0; if (ViewState["_LastIndex"] == null)
_LastIndex = Convert.ToInt32(ViewState["_LastIndex"]); } return _LastIndex;
/// Build DataTable to bind Main Items List
/// DataTable private DataTable GetDataTable(string id)
DBAcess db = new DBAcess(); string sql = "SELECT * FROM tblProducts where product_CatId="+ id+ " order by productId Desc";
DataSet ds = db.getAllProduct(sql); dtItems = ds.Tables[0]; return dtItems;
/// private void BindItemsList(string id)
DataTable dataTable = this.GetDataTable( id);
ViewState["TotalPages"] = _PageDataSource.PageCount; this.lblPageInfo.Text = "Trang " + (CurrentPage + 1) + " của " +
_PageDataSource.PageCount; this.lbtnPrevious.Enabled = !_PageDataSource.IsFirstPage; this.lbtnNext.Enabled = !_PageDataSource.IsLastPage; this.lbtnFirst.Enabled = !_PageDataSource.IsFirstPage; this.lbtnLast.Enabled = !_PageDataSource.IsLastPage; this.DataList2.DataSource = _PageDataSource; this.DataList2.DataBind(); this.doPaging();
DataTable dt = new DataTable(); dt.Columns.Add("PageIndex"); dt.Columns.Add("PageText"); fistIndex = CurrentPage - 5; if (CurrentPage > 5)
} if (lastIndex > Convert.ToInt32(ViewState["TotalPages"])) { lastIndex = Convert.ToInt32(ViewState["TotalPages"]); fistIndex = lastIndex - 10;
DataRow dr = dt.NewRow(); dr[0] = i; dr[1] = i + 1; dt.Rows.Add(dr);
} this.dlPaging.DataSource = dt; this.dlPaging.DataBind();
#endregion protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack)
{ id = Request.QueryString.Get("idm"); this.BindItemsList(id);
} protected void lbtnNext_Click(object sender, EventArgs e)
} protected void lbtnPrevious_Click(object sender, EventArgs e)
} protected void lbtnLast_Click(object sender, EventArgs e)
CurrentPage = (Convert.ToInt32(ViewState["TotalPages"]) - 1); this.BindItemsList(id);
} protected void lbtnFirst_Click(object sender, EventArgs e)
} protected void dlPaging_ItemCommand(object source, DataListCommandEventArgs e)
CurrentPage = Convert.ToInt16(e.CommandArgument.ToString()); this.BindItemsList(id);
} protected void dlPaging_ItemDataBound(object sender, DataListItemEventArgs e) {
LinkButton lnkbtnPage = (LinkButton)e.Item.FindControl("lnkbtnPaging"); if (lnkbtnPage.CommandArgument.ToString() == CurrentPage.ToString())
{ lnkbtnPage.Enabled = false; lnkbtnPage.Style.Add("fone-size", "14px"); lnkbtnPage.Font.Bold = true;
3.Thành phần giao diện ở mức vật lý:
Giao diện quản trị website
Kết luận – Đề nghị
Những gì đã làm được: nhìn chung, với những yêu cầu đã được đặt ra trong bảng xác định yêu cầu ở thì hệ thống đã đáp ứng đầy đủ tính năng đã được đưa ra Cụ thể: quản lý danh mục loại sản phẩm, sản phẩm, hóa đơn, nhà sản xuất… cho đến những tính năng kết xuất thông tin (hiển thị các thông tin loại sản phẩm, sản phẩm, bài viết lên trang web,…), tra cứu thông tin (tìm kiếm sản phẩm, lọc danh sách người dùng trong hệ thống,…)
Tuy nhiên, do khả năng lập trình còn yếu kém, nên em đã không thể hoàn thành những tính năng mà em cho là quan trọng nhất đối với hệ thống là: thống kê Trên toàn bộ hệ thống, em chỉ mới làm được việc in ra hóa đơn mua hàng của khách hàng Kế đến, công việc quản lý tài khoản người dùng (thêm, sửa, xóa, tìm kiếm), em làm vẫn chưa được tốt lắm, nếu không muốn nói là yếu kém Và dĩ nhiên, những đánh giá, nhận xét phía trên của em chỉ mang tính chất chủ quan Bởi thế, chúng em rất mong được thầy chỉ hướng cho em để em có thêm những kinh nghiệm, kiến thức tốt hơn để hoàn thiện phần mềm của mình ĐỀ NGHỊ CHỈ HƯỚNG CỦA GIÁO VIÊN HƯỚNG DẪN