Tìm hiểu facebook API và ứng dụng eStore
Trang 1Giảng viên hướng dẫn:
CH Hầu Nguyễn Thành Nam
CH Cáp Phạm Đình Thăng
Sinh viên thực hiện:
Võ Quang Thiều 08520597 Ngô Văn Toàn 08520411
TP Hồ Chí Minh 06/2012.
Trang 2Lời mở đầu.
Ngày nay, công nghệ thông tin có mặt trong hầu hết các lĩnh vực của đời sốngkinh tế xã hội đặc biệt nó là công cụ hỗ trợ đắc lực trong công tác quản lý Việc đưa tinhọc vào trong quản lý kinh doanh là một trong những ứng dụng quan trọng nhất trongnhiều ứng dụng của cơ sở dữ liệu Nhờ vào việc tin học hoá mà công việc quản lý vàđiều hành doanh nghiệp tỏ ra nhanh chóng và hiệu quả hơn rất nhiều
Hiện nay, hầu hết các tổ chức, doanh nghiệp đều đã nhận thức được tầm quantrọng và tác dụng to lớn của việc áp dụng tin học hoá trong công tác quản lý của mình
Vì vậy mà nhu cầu xây dựng những phần mềm quản lý của các doanh nghiệp rất lớn.Hầu hết các doanh nghiệp, tổ chức dù lớn hay nhỏ đều đang có xu hướng muốn ápdụng tin học trong công tác quản lý
Cùng với sự phát triển to lớn đó, song song với việc phát triển về chiều rộng thìphát triển về chiều sâu cũng được nhiều nhà phát triển quan tâm Và một vấn đề đặt ra
là Internet đang ngày càng bùng nổ và tiếp cận gẫn gũi với con người nên làm việctrên Internet là một nhu cầu bức thiết Vì thế dần dần các hệ thống phân bố hay các môhình phân tán được áp dụng triệt để trong việc phát triển phần mềm và trong các ứngdụng CNTT nói chung để phục vụ tốt hơn nhu cầu của cá nhân cũng như doanh nghiệptrong đời sống và kinh doanh
Sau thời gian làm việc, nhóm cũng đã hoàn thành đề tài quản lý khách sạn chomôn Xử lý phân bố Tuy phần mềm cũng còn nhiều điểm hạn chế và sai sót song vẫnđáp ứng được những yêu cầu đặt ra của đề tài
Nhóm xin chân thành cảm ơn ThS Nguyễn Trác Thức (giảng viên bộ môn) đã giúp đỡnhóm trong quá trình hoàn thành đề tài
TP Hồ Chí Minh, tháng12 năm 2011.
Trang 3I Giới Thiệu Chung
1 Thông tin nhóm thực hiện
1.1 Thông tin cở bản
ST
T
1 08520411 Ngô Văn Toàn vantoan210@gmail.com
2 08520597 Võ Quang Thiều vqthieuuit@gmail.com
1.2 Phân chia công việc:
2 Thông tin chung về đề tài
Đề tài tập trung vào việc tìm hiểu API của facebook và từ đó ứng dụng vào phát triển trang eStore – trang bán hàng trực tuyến Ứng dụng được chạy trên nền Facebook application và phát triển bằng công nghệ ASP.net
II Phát Triển Đề Tài
1 Thuyết minh nội dung
1.1 Phát biểu vấn đề
Làm cách nào để có thể đưa thông tin sản phẩm của mình đến vớicộng đồng một cách nhanh nhất? Đó là câu hỏi mà nhiều doanhnghiệp đều muốn được giải quyết một cách nhanh nhất
Như chúng ta biết Facebook là trang mạng xã hội lớn nhất thế giớihiện nay Theo thống kế tính đến năm 2012 có đến… sử dụngfacebook, trong đó Việt Nam có…người sử dụng
Vì vậy xây dựng một ứng dụng cho phép người dùng có thể đăng kýthành viên, quảng cáo và đăng sản phẩm của mình lên đó sẽ đượcnhiều người hưởng ứng, nó giúp khách hàng có thể tiếp cần với sảnphẩm nhiều hơn
Vấn đề còn lại là công cụ hổ trợ để ta có thể phát triển ứng dụng VàFacebook API là thành quả mà nhà phát triển Facebook tạo ra để giúpnhà phát triển ứng dụng có thể dễ dàng sử dụng và hoàn thành ýtưởng của mình Chúng ta cần biết được API là gì và sử dụng nó nhưthế nào
Trang 4cụ bán hàng trên các trang web thương mại điện tử.
Theo Facebook, 30% người dùng tích cực tham gia với các trang webbên thứ ba thông qua Facebook Connect mỗi tháng
Bên cạnh đó kinh doanh trực tuyến với việc áp dụng CNTT vào chiếnlược lâu dài của doanh nghiệp, thì nhu cầu quảng bá sản phẩm ngàycàng trở lên cấp bách Việc quảng bá sản phẩm trên các trang webđang rất được quan tâm và dần trở thành một việc vô cùng quan trọngquyết định đến sự thành công của công ty doanh nghiệp
Theo lối kinh doanh trực tuyến hiện nay, đa số khách hàng chỉ thực
sự biết tới sản phẩm một cách hạn chế và khách hàng ít có sự lựachọn tối ưu Việc quảng bá sản phẩm chỉ thông qua trang web củachính công ty đó hoặc phần quảng cáo sản phẩm ở các site khácnhau Sự ra đời của các trang Web như Amazon.com, Vatgia.com,raovat.com… cũng đã mang tới một hiệu quả nhất định, tuy vậy mứcphí mà người dùng phải trả để những sản phẩm của mình có mặt trêncác site này không hề nhỏ Ngày nay với sự bùng nổ mạng xã hộiFacebook, thông tin của doanh nghiệp cũng như người dùng đượcbiết đến và trao đổi vơi nhau một cách dễ dàng, như vậy yêu cầu đặt
ra là tại sao không sử dụng một ứng dụng (site) được tích hợp sẵntrên Facebook cho phép các doanh nghiệp(người dùng) có thể đăng
ký trở thành thành viên và giao tiếp với khách hàng một cách nhanhchóng và hiệu quả
Trang 5 Khi đó việc đăng nhập sẽ rất dễ dàng: Site sẽ tự động tích hợp cho
phép người dùng đăng ký lấy lại những thông tin ở tài khoảnFacebook, và nhập thêm thông tin cần cho việc quảng bá và đăng sảnphẩm và giao dịch
2 Nội dung triển khai
2.1 Tìm hiều Facebook API
2.1.1 Facebook API là gì?
API - Application Programming Interface – tạm dịch là giao diệnchương trình ứng dụng API là một phương tiện để giao tiếp giữa cácchương trình, là xu hướng trong thế giới lập trình Không chỉ chỉ cóFacebook API mà Google, Yahoo, Amazon và các công ty lớn kháccũng cung cấp các API riêng, với API này bạn có thể tạo ra các ứngdụng bằng cách sử dụng tính năng hoặc dữ liệu hiện có trên máy chủcủa họ
Facebook API là một nền tảng để xây dựng những ứng dụng cho cácthành viên của mạng xã hội Facebook API cho phép các ứng dụng sửdụng các kết nối xã hội và các thông tin hồ sơ để làm cho các ứngdụng liên quan tới nhau nhiều hơn API cung cấp những lời gọi đểlấy thông tin về người sử dụng, nhóm người dùng, bạn bè, thông báo,
sự kiện và nguồn cấp dữ liệu…Cũng có thể dùng lời gọi API để cậpnhật và lấy thông tin hồ sơ
API sử dụng giao thức RESTful và các hồi đáp được trả lại dướidạng XML
2.1.2 Cách thức làm việc Facebook API
API là nền tảng do Facebook cung cấp cho người viết ứng dụng để dễdàng trong việc tạo ứng dụng và đảm bảo người viết ứng dụng không
Trang 6can thiệp quá sâu vào hệ thống của Facebook API cho phép thực thinền tảng thông qua các phương thức được định nghĩa Thông qua cáclời gọi API, người tạo ứng dụng có thể lấy thông tin về user, groups,photo,… mà họ cần.
Facebook gửi phương thức POST tới máy chủ Facebook API Nó baogồm một số các thông số yêu cầu như api_key của ứng dụng.Session_key của người dùng đưa ra yêu cầu Bên cạnh đó Facebookcòn thêm vào tham số fb_sig để thông báo ứng dụng đưa ra yêu cầu.Bằng cách này tất cả các lời gọi API sẽ được đảm bảo, Facebook cóthể xác minh các yêu cầu được gửi từ một ứng dụng đã được chấpthuận Thông tin mà Facebook sẽ trả lại là một tài liệu XML
2.1.3 Một số phương thức Facebook API
User: Facebook API cung cấp một số phương thức cho phép nhà phát
triển ứng dụng truy cập vào một số thông tin người dùng:
o Getinfo(): lấy thông tin của người dùng, như name (họ tên),
first_name, last_name, id, email… Ví dụ lấy họ tên ngườidùng ta dùng: API.user.getinfo().name sẽ trả về họ tên user.Một số thông tin cần được cho phép của người dùng thì mới
có thể lấy được, ví dụ email, address, phone…
o GetLoggedInUser(): trả về uid của người hiện tại đang đăng
nhập ứng dụng
o GetStandardInfo(): lấy thông tin cơ bản của người dùng như
name, first_name, last_name…
Friends: Khi phát triển ứng dụng, việc hiển thị danh sách bạn bè của
người dùng là rất phổ biến Để giải quyết vấn đề này API có các hàmgiúp người viết ứng dụng lấy thông tin về bạn bè của người dùng
o areFriend(): kiểm tra xem 2 user của phải là bạn của nhau hay
không Ở đây truyền vào 2 đối số là 2 uid hoặc 2 user hoặc 2danh sách (list) user, uid Kiểu trả về là dạng boolean Ví dụ:bool result = API.friends.areFriend(123123,3990023);
o get(): trả lại danh sách uid của người dùng là bạn của người
dùng hiện tại
Trang 7o getAppUsers(): lấy danh sách uid của người dùng đang sử
dụng ứng dụng của bạn
o getAppUsersObjects(): trả về danh sách các user đang sử dụng
ứng dụng
o getLists(): trả về freindslisst của người dùng hiện tại.
Groups: Làm việc với nhóm cũng là một phần rất quan trọng của
ứng dụng API đã cung cấp các phương thức:
o Get():Trả về các nhóm theo tiêu chí lọc như nhóm có liên kết
với một người dùng , theo một danh sách gids hoặc theo cả 2tiêu chí lọc trên
o getMember():Mô tả: Trả về danh sách thành viên của một
nhóm Kết quả trả về là một mảng đa chiều với chiều đầu tiên
là kiểu thành viên (admin, member, officer, not_replied)
Notifications: Facebook cho phép gửi và nhận các thông báo trong
ứng dụng với các hàm API Có 2 hàm chính:
o Get():Trả về một mảng đa chiều với các đối tượng là các loại
thông báo: tin nhắn, giới thiệu nhóm, giới thiệu sự kiện, yêucầu kết bạn, chia sẻ, poke)
o getList(): Trả về tất cả thông tin của người dùng hiện tại.
Photos: Với hơn 60 triệu bức ảnh được thêm vào mỗi tuần bởi người
dùng Facebook, các nhà phát triển Facebook đã cung cấp một nhómphương thức API để giúp các nhà phát triển ứng dụng dễ dàng thaotác với các ảnh của người dùng
o addTag(): Thêm một thẻ đi kèm thông tin cho một bức ảnh.
Thẻ chỉ có thể thêm vào những bức ảnh đang chờ giải quyếtthuộc sở hữu của người dùng cụ thể hoặc người dùng hiệnhành Ứng dụng với quyền mở rộng photo_upload có thể thêmthẻ vào bất kì bức ảnh nào thuộc quyền sở hữu của ngườidùng
o createAlbums():Tạo và trả về một album mới thuộc quyền sở
hữu của một người dùng cụ thể hoặc người dùng hiện hành
Trang 8o Get(): Trả về tất cả các ảnh theo tiêu chí lọc Có thể lọc theo 4
cách: được đánh dấu theo chủ đề đã quy định, có chứa trongalbum được định rõ bởi aid, bao gồm tập các ảnh được định rõbởi pid hoặc cả 3 tiêu chí trên
o getAlbum(): Trả về siêu dữ liệu về tất cả các album ảnh được
tải lên bởi người dùng cụ thể Phương thức này trả về thôngtin của tất cả các album dựa theo tiêu chí lọc Nó có thể được
sử dụng để trả lại tất cả các album ảnh được tạo ra bởi ngườidùng, truy vấn một danh sách các album thông qua aids hoặclọc theo cả 2 tiêu chí trên
o getTags(): Trả về danh sách người dùng được đánh dấu của
các hình ảnh cụ thể
o upload(): upload một ảnh thuộc sở hữu của người dùng cụ thể
hoặc người dùng hiện hành và trả về là một ảnh mới Các loạiảnh hỗ trợ như: gif, jpg, png, psd, tiff, jp2, iff, wbmp, xbm
Profile: Để dễ dàng tương tác với các thiết lập thông tin trong trang
hồ sơ của người dùng, nhóm hàm này đã cung cấp 2 phương thức:
o setFBML(): Thiết lập FBML cho hồ sơ của người dùng hoặc
trang Facebook , bao gồm: nội dung của hộp thông tin trênnhãn Wall, hộp thông tin cho nhãn Boxes
o getFBML(): Trả lại FBML của hộp thông tin hiện đang thiếtlập cho cấu hình của người dùng
Stream: Để thực hiện các thao tác cập nhật thông tin như đăng bài,
bình luận, tuy nhiên phải tuân theo quyền được phép thực hiện cácthao tác từ phía người khác Nó gồm các phương thức cơ bản như:
o addComment(): cho phép thêm bình luận vào bài đã được
đăng trên tường của người nào đó Trong đó có các tham sốnhư: post_id: là id bài viết mà bạn đang bình luận, comment:
là nội dung bình luận, uid: là id của người sử dụng để đăngbài
o addLike(): dùng để like một bài viết nào đó, và đối số truyền
vào chính là id của bài viết đó – post_id
Trang 9o getComments(): lấy danh sách các comment trong một bài
bình luận, tham số truyền vào chính là post_id – id bài cần lấythông tin comment
o Publish(): cho phép đăng lên tường ai đó, nội dung đăng có
thể là đoạn text hoặc kèm theo hình ảnh hay link,…
o Remove(): xóa bài đăng nào đó, thông số truyền vào là post_id
là id của bài cần xóa, có thể kèm theo uid để xác định xóa bàicủa người nào
o removeComment(): là xóa bình luận của người dùng nào đó
trong một bài bình luân, thông số truyền vào là comment_id là
id của lời bình luận cần xóa
o removeLike(): tương tự như trên, removeLike() dùng để
unlike bài viết nào đó mà trước đó đã like
2.1.4 API với FQL:
FQL: là viết tắt của Facebook Query Language tạm dịch là ngôn ngữtruy vấn
o Ngôn ngữ truy vấn của Facebook (FQL) là một ngôn ngữ
dựa trên ngôn ngữ SQL, được các nhà phát triển Facebook tạo
ra để giúp người viết ứng dụng truy xuất tới các bảng trong cơ
sở dữ liệu bao gồm các bảng : user, friend, group,group_member, event, event_member, photo, album, andphoto_tag…
o Các đối tượng FQL được chấp nhận để gọi một câu truy vấn
FQL thông qua Graph API FQL cung cấp một số tính năngnâng cao không có sẵn trong Graph API, bao gồm xử lý nhiềucâu truy vấn trong 1 lời gọi hàm duy nhất
Cấu trúc câu truy vấn:
o Do FQL dựa trên nền tảng là ngôn ngữ SQL chính vì vậy cấu
trúc của FQL cũng tương tự như cấu trúc của SQL:
SELECT [ trường ] FROM [ bảng ] WHERE [ điều_kiện]
o Trong FQL, các mệnh đề trong SQL như ORDER BY,LIMIT cũng được hỗ trợ:
Trang 10SELECT [ trường ] FROM [ bảng ] WHERE [ điều_kiện]ORDER BY[ trường] LIMIT [vị trí bắt đầu], [vị trí kết thúc]
o Tuy dựa trên nền tảng của SQL nhưng FQL cũng có nhữngđiểm khác biệt Đầu tiên là phải kể đến mệnh đề FROM Nếunhư trong SQL sau from có thể là một hoặc nhiều bảng để truyxuất dữ liệu nhưng trong FQL sau from chỉ có duy nhất mộtbảng Như vậy trong FQL không hỗ trợ các kiểu join Để cóthể lấy dữ liệu từ nhiều bảng, cách phổ biến nhất là sử dụngcác câu truy vấn con Ví dụ nếu muốn lấy danh sách nhữngngười bạn của người dùng đang sử dụng ứng dụng câu truyvấn FQL có thể là:
SELECT uid FROM user WHERE has_added_app = 1 ANDuid IN (SELECT uid2 FROM friend WHERE uid1=$user)trong đó $user là uid của người dùng hiện tại
o Thứ hai, để các ứng dụng truy xuất cơ sở dữ liệu một cách trực
tiếp, tất cả các truy vấn phải được đánh chỉ số, tránh cho việc
có quá nhiều câu truy vấn gửi tới server Facebook chỉ chophép người tạo ứng dụng truy xuất trên 45 bảng dữ
o Thứ ba, trong mệnh đề where, ít nhất phải có một trường được
đánh chỉ số Ví dụ nếu muốn tìm tất cả những người dùngđang chia sẻ ngày sinh nhật của người dùng hiện tại:
SELECT uid FROM user WHERE strpos(birthday,
“September 27”) = 0AND uid IN (SELECT uid2 FROM friend WHERE uid1 =
$user)
o Tiếp theo, để giảm một lượng lớn dữ liệu trao đổi, FQL không
hỗ trợ SELECT * Cuối cùng, mệnh đề ORDER BY chỉ hỗ trợmột trường đơn duy nhất, không hỗ trợ nhiều trường như trongSQL
Phương thức sử dụng chính:
o API.fql.query(): sử dụng để gọi câu truy vấn.
Trang 11o Tham số truyền vào chính là chuỗi truy vấn và giá trị trả về
cũng dạng chuỗi
o Ví dụ lấy tên của người dùng facebook ta có thể thực hiện như
sau: string _name = API.fql.query(“SELECT name FROMuser WHERE uid = 1814236399”); như vậy là ta có thể lấyđược tên đầy đủ của user có id là 1814236399
2.2 Ứng dụng eStore – Facebook application
Để viết ứng dụng Facebook:
o Bạn cần một số kiến thức về các ngôn ngữ lập trình web: phổ
biến nhất là PHP - được đông đảo cộng đồng mạng và nhàphát triển ứng dụng facebook hổ trợ - ngoài ra cũng có thể sửdụng VB, ASP.net, …
o Cần biết một số máy chủ (web server) cho phép bạn có thể đặt
ứng dụng Facebook lên đó Thông qua kiến trúc hệ thống ứngdụng facebook (sẽ nói mục 3) thì ta sẽ hiểu tạo sao cần có mộtserver để đặt ứng dụng của bạn
Ứng dụng eStore là một ứng dụng dùng để tạo ra trang cho phépchúng ta có thể rao bán sản phẩm của mình và thông tin rộng rãi đếnbạn bè của mình nhờ vào cộng đồng mạng facebook
o Ứng dụng sử dụng công nghệ chính là ASP.Net và API của
o Ứng dụng đáp ứng được đầy đủ các nghiệp vụ của một trang
web bán hàng đơn giản: đăng sản phẩm, tạo order, xem bìnhluận sản phẩm, …
o Các bước xây dựng ứng dụng:
Tạo một ứng dụng trên facebook để lấy appKey vàSecretId: 2 khóa quan trọng để nhận định ứng dụng củamình
Tạo project asp.net để phát triển ứng dụng
Đưa ứng dụng lên hosting và config lại thông tin đểứng dụng hoạt động
(Chi tiết về phát triển ứng dụng eStore sẽ được nói ở phần sau.)
Trang 123 Kiến trúc hệ thống
3.1 Kiến trúc của Facebook:
3.1.1 Mô hình ứng dụng Web thông thường.
Ứng dụng và cơ sở dữ liệu được đặt trên một máy chủ Web Ứngdụng sẽ chạy trên server và người dùng thực thi ứng dụng bằng cách
sử dụng giao thức HTTP thông qua trình duyệt Mô hình này sẽ làmviệc hiệu quả nếu như server và client có 1 kết nối Internet ổn định
3.1.2 Mô hình ứng dụng web Facebook
Kiến trúc Facebook App - Canvas
Trang 13 Người dùng truy cập Facebook.com và ứng dụng thông qua trìnhduyệt và Internet Tuy nhiên ứng dụng không được đặt tại máy chủcủa Facebook mà được lưu trên máy chủ của chính người tạo ra ứngdụng đó Facebook Platform cũng cung cấp một giao diện chongười viết ứng dụng
Với một máy chủ web bình thường trung bình chỉ chịu được từ 100tới 500 truy vấn cùng một lúc Tuy nhiên với Facebook trung bìnhmỗi giây phải hiện 600 nghìn hình ảnh cùng một lúc Vấn đề đặt ra
ở đây là làm thế nào để mỗi giây Facebook hiện được 600 ngàn hìnhảnh ? Để giải quyết vấn đề này Facebook đã sử dụng vùng lưu trữđệm (cache) và đây cũng chính là trái tim của hệ thống
Trang 14 Facebook đã phát triển Haystack – một hệ thống quản lý các tập tinhình ảnh trung gian để cải tiến sự truy vấn Trước đây, Facebook đã
sử dụng hệ thống 2 tầng : một tầng chuyên cho việc upload hình ảnh
và lưu trữ vào server Tầng kia có nhiệm vụ tìm và lấy hình ảnh từserver để trả lời các truy vấn Tuy vậy việc xử lý theo cách cổ điểnnày là không phù hợp với nhu cầu tăng rất nhanh số lượng ngườidùng của Facebook dẫn tới tình trạng nghẽn mạch Input / Output.Haystack sẽ quản lý và lưu trữ các hình ảnh trong vùng đệm và từđây sẽ trả lời các truy vấn hìn ảnh Bên cạnh đó Facebook còn cảitiến các đoạn code trên webserver để giảm thiểu kích thước tập tin vàthời gian tính toán Ngôn ngữ lập trình cho từng bộ phận cũng dầnđược tối ưu hóa Người truy cập sẽ được phân luồng ngẫu nhiên vàocác ngân hàng dữ liệu để giảm tải và các truy vấn của họ sẽ được hệthống cache trả lời nhanh chóng
3.1.3 Cách thức làm việc
Trình duyệt người dùng yêu cầu : http://apps.facebook.com/myapp Địa chỉ này trỏ tới một cụm máy chủ trong trung tâm dữ liệu củaFacebook Những server này sẽ phân tích các yêu cầu , xác định cácứng dụng tương ứng, sau đó tìm kiếm Url callback mà nhà phát triểnứng dụng cung cấp và thực hiện gọi tới Url đó
Máy chủ của Facebook sẽ gửi yêu cầu tới máy chủ của người tạo ứngdụng Yêu cầu này người dùng hoàn toàn không biết
Trang 15 Server chứa ứng dụng tạo một lời gọi API tới server của Facebookbằng cách sử dụng FQL thông qua phương thức fql.query() của APIhoặc trực tiếp bằng các hàm API
Máy chủ chứa ứng dụng sẽ trả về FBML tới máy chủ của Facebook.Kết quả đạt được cuối cùng là 1 tài liệu FBML Tài liệu này sẽ đượcgửi trả lại server của Facebook để thực thi
Tài liệu FBML sẽ được chuyển sang dạng HTML và phục vụ chongười sử dụng Đây là bước cuối cùng trong quá trình thực thi và trả
về kết quả cho trình duyệt
3.2 Kiến trúc của ứng dụng eStore
3.2.1 Kiến trúc hệ thống.
Hệ thống website eStore được chia thành 3 thành phần chính, sự tương tác giữa các thành phần được mô tả hình dưới đây:
Gói 2: Data & Business
Gói này chịu trách nhiệm lưu trữ và truy xuất dữliệu: Info Class
Đảm nhận thực hiện các nhiệm vụ chính của hệ thống: Service Class
Gói 3: Helper Class
Là gói dùng chung cho cho hệ thống Chứa các hàm xử lý được viết chung như: ControlClass,MegBox, SendMail, …
Gói này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả thông qua các thành phần trong giao diện người
Trang 16Gói 1: eStore sử dụng: Các trang aspx, html, …
3.2.2 Mô tả chi tiết từng thành phần của hệ thống eStore.
3.2.2.1. Gói 1 : eStore.
Gói này làm nhiệm vụ giao tiếp với người dùng cuối để thu thập
dữ liệu và hiển thị kết quả thông qua các thành phần trong giaodiện người sử dụng
Là các trang aspx, html, …
3.2.2.2. Gói 2 : Data & Business
Gói này được tích hợp chung trong lớp Service
Gói này thực hiện các nhiệm vụ liên quan đến lưu trữ và truy xuất
dữ liệu của ứng dụng và thực hiện các nhiệm vụ của hệ thống, chi tiết lớp như sau
Lớp Info:
Trang 17Lớp này gồm các lớp đối tượng.
Lớp đối tượng Diễn giải
EbookInfo Định nghĩa các trường CSDL ứng với bảng Ebook
UserInfo Định nghĩa các trường CSDL ứng với User
GroupUserInfo Định nghĩa các trường CSDL ứng với bảng GroupUser
AuthorInfo Định nghĩa các trường CSDL ứng với bảng Author
CategoryInfo Định nghĩa các trường CSDL ứng với bảng Category
ContactInfo Định nghĩa các trường CSDL ứng với bảng Contact
PublisherInfo Định nghĩa các trường CSDL ứng với bảng Publisher
OrderInfo Định nghĩa các trường CSDL ứng với bảng Order
OrderDetailInf
o
Định nghĩa các trường CSDL ứng với bảng OrderDetail
Lớp Business:
Lớp này gồm các lớp đối tượng
Lớp đối tượng Diễn giải
EbookService Thao tác với CSDL ứng với bảng Ebook
UserService Thao tác với CSDL ứng với User
GroupUserService Thao tác với CSDL ứng với bảng GroupUser
AuthorService Thao tác với CSDL ứng với bảng Author
CategoryService Thao tác với CSDL ứng với bảng Category
ContactService Thao tác với CSDL ứng với bảng Contact
PublisherService Thao tác với CSDL ứng với bảng Publisher
Trang 18OrderService Thao tác với CSDL ứng với bảng Order
OrderDetailService Thao tác với CSDL ứng với bảng OrderDetail
3.2.2.3. Gói 3: Lớp Common
Lớp đối tượng Diễn giải
ControlClass Reset các control về dạng mặt định lúc đầu
DateTimeClass Định dạng này tháng theo chuẩn của chúng ta
WebMsgBox Thông báo một tin nhắn
SendMail Giúp hệ thống tự động gởi mail khi người dùng đăng ký
FuntionClass Một số hàm phổ biến thường dùng: FormatPrice,
encryptData…
UrlRewrite Trả về chuỗi không dấu gắn vào đường dẫn
4 Chức năng hệ thống
4.1 Yêu cầu chức năng nghiệp vụ.
Việc
Quy định liên quan Ý nghĩa/ghi chú
1 Lưu danh mục loại sản
phẩm
Lưu trữ qdLuuLoaiSP
Thêm, sửa, xóa
2 Lưu thông tin sản phẩm
đã Upload
Lưu trữ qdLuuSP Thêm, sửa, xóa
Trang 193 Lưu danh mục nhóm
người dùng
Lưu trữ qdLuuNhomNguoiDun
g
Thêm, sửa, xóa
4 Lưu thông tin người dùng Lưu trữ qdLuuTTNguoiDung Thêm, sửa, xóa
5 Lưu thông tin nhà sản xuất Lưu trữ qdLuuNSX Thêm, sửa, xóa
6 Lưu thông tin đơn đặt
hàng
Lưu trữ qdLuuDDH Thêm, sửa, xóa
7 Lưu chi tiết đơn đặt hàng Lưu trữ qdLuuCTHD Thêm, sửa, xóa
8 Thay đổi, phục hồi mật
khẩu người dùng
Lưu trữ qdMatKhau Thêm, sửa, xóa
9 Hiển thị menu loại sản
phẩm
Kết xuất qdHTLoaiSP Thêm, sửa, xóa
10 Hiển thị thông tin tổng
Hiển thị thông tin chi tiết
Tra cứu qdLocDSNguoiDung
18 Hiển thị danh sách người
dùng
Kết xuất qdDSNgDung
19 Tính năng giỏ hàng Lưu trữ qdGioHang
20 Hiển thị thông tin giỏ hàng
22 Hiển thị bình luận của
người tham gia ứng dụng
Trang 20người dùng trên sản phẩm
khi tham gia ứng dụng
24 Cho phép đăng lên tường Lưu trữ
4.2 Quy định liên quan
STT Mã Số Tên quy định Mô tả chi tiết
1 qdLuuLoaiSP Quy định lưu danh mục
loại sản phẩm Thông tin loại sản phẩm bao
- Với mỗi sản phẩm cần 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 nó biếttrạng thái hiển thị hoặc không
3 qdLuuNhomNguoiDung Quy định lưu danh mục
nhóm ng dùng tương tácvới hệ thống
- Thông tin nhóm người dùngbao gồm: mã nhóm, tên nhóm
- Có 4 nhóm người dùng tươngtác với hệ thống: Administrator,User, Visitor
4 qdLuuTTNguoiDung Quy định lưu thông in
người dùng hệ thống
- Đầu tiên cần cho biết ngườidùng thuộc một nhóm ngườidùng nào
- Thông tin chi tiết của từngngười dùng: mã người dùng, têntài khoản, mật khẩu, lần kíchhoạt cuối…
5 qdLuuNSX Quy định lưu thông tin - Thông tin cần lưu trữ và quản
Trang 21nhà sản xuất 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 qdLuuDDH Quy định lưu thông tin
đơn đặt hàng
Mỗi đơn đặt hàng cần lưu cácthông tin sau: mã đơn, mã kháchhàng đặt hàng, địa chỉ để chuyểnhàng cho khách hàng, đơn giácủa hóa đơn và ngày lập đơn đặthàng
7 qdLuuCTHD Quy đinh lưu chi tiết
đơn đặt hàng
Đơn đặt hàng cần cho biếtnhững sản phẩm do khách hàngđặt, giá bán và số lượng củatừng sản phẩm
8 qdMatKhau Quy định thay đổi, phục
9 qdHTLoaiSP Quy định hiển thị Menu này sẽ liệt kê danh sách
tên các loại sản phẩm, khi ngườidùng nhấn vào tên này, sẽ chongười dùng danh sách các sảnphẩm trong nhóm sản phẩm ởmức tổng quan
10 qdHienThiSP Quy định hiển thị thông
tin tổng quan nhiều sảnphẩm
Khi người dùng chọn nhóm sảnphẩm, sẽ hiển thị thông tin tổngquan các sản phẩm: hình ảnh, tênsản phẩm, giá bán, nhà sản xuất
và 1 button để xem thông tin chitiết sản phẩm đó
11 qdHienThiCTSP Quy định hiển thị thông
tin chi tiết sản phẩm
Khi người dùng đã nhấn vàobutton “Chi tiết”, hệ thống sẽ
Trang 22hiển thị thông tin của sản phẩm
đó ở mức chi tiết: hình ảnh, tênsản phẩm, giá bán, thông số kỹthuật
12 qdHienThiSPMoi
Quy định hiển thịnhững sàn phẩm mới
Ở trang chủ, các sản phẩm mớinhất được hiển thị ra cho kháchhàng chọn lựa với các thông tinsau: tên sản phẩm, giá bán, hìnhảnh
13 qdHTCTNguoiD ung qdHTCTNguoiDung Hiển thị các thông tin sau: email,
ngày tạo tài khoản, lần đăngnhập cuối, lần thay đổi mật khẩucuối
14 qdHTHoaDon Quy định hiển thị các
thông tin đơ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ửihàng, đơn giá
15
qdHTCTHD Quy định hiển thị chi
tiết hóa đơn
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ảnkhách hàng, ngày lập, địa chỉ gửihàng, đơn giá
-Thông tin chi tết: sản phẩmđược mua đi kèm với giá sảnphẩm và số lượng đã được đặt
16 qdTimSP Quy định tìm kiếm sản
phẩm
Cho phép người dùng tìm kiếmsản 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ảnphẩm
17 qdLocDSNguoiDung Quy định lọc danh sách
người sử dụng theo
Chứa danh sách người dùngtrong 1 combobox, khi chọn
Trang 2319 qdGioHang Quy định hiển thị giỏ
hàng
-Giỏ hàng của khách hàng sẽđược lưu trữ dựa trên kỹ thuậtlậ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)
20 qdHienThiGioHang Quy định hiển thị 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ọnmua, số lượng, đơn giá, thànhtiền
- Có dòng hiển thị tổng số tiềncủa giỏ hàng
- Có nút xóa sản phẩm đã chọn
Trang 24mua, 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
21 qdTinhThanhTien
Quy định tình thànhtiền những sản phẩmkhách hàng chọn mua
Thành Tiền = (Số lượng sảnphẩm*Đơn giá từng sản phẩm)
22 qdHienThiBinhLuan
Quy định bình luận củangười tham gia ứngdụng trên sản phẩm
Trên sản phẩm cho hiển thị bìnhluận khi người dùng sử dụng vàbình luận sản phẩm trên ứngdụng
23 qdLuuBinhLuan
Quy định lưu bình luậncủa người dùng trên sảnphầm
Khi người dùng gõ bình luận vànhấn vào nút “comment”, sẽ lưulại nội dung bình luận của ngườidùng đó trên sản phẩm
24 qdDangLenTuong
Quy định Cho phépđăng lên tường khiupload sản phẩm vàview sản phẩm
Hiển thị nút “post to yourfriend's wall”, cho phép hoặckhông khi người dùng muốnđăng sản phẩm của họ lêntường
26 qdLuuLikeUser
Quy định hiển thị nútLike trên sản phẩm
Hiển thị lưu trạng thái Like sảnphẩm người dùng