Tải bản đầy đủ (.pdf) (68 trang)

Ứng dụng công nghệ json 2 0 xây dựng website đấu giá trực tuyến

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.89 MB, 68 trang )

Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

TRờng đại học vinh
Khoa công nghệ thông tin
=== ===

lê thị phợng

ứng dụng công nghệ json 2.0
xây dựng website đấu giá trực
tuyến

đồ án TốT NGHIệP kỹ s cntt

Vinh, 5/2010
SV: Lê Thị Ph-ợng

1

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

LI NểI U
Có thể nói sự phát triển v-ợt bậc của Công nghệ thông tin đà giúp con
ng-ời hoá giải đ-ợc rất nhiều bài toán nh-ng một điều quan trọng ở đây là


không chỉ đơn thuần là giải đ-ợc bài toán đó mà là ph-ơng pháp để giải bài
toán đó nh- thế nào sao cho có hiệu quả nhất. Hầu hết trong tất cả các ứng dụng
Web hiện nay đều làm việc dựa trên mô hình 3 lớp và sử dụng công nghệ Ajax.
Việc ng dng n y đà làm cho các phần của ch-ơng trình tr nên độc lập hơn,
đáng tin cậy và do đó tính bảo mật cao hơn. Điều đặc biệt hơn là khi sử dụng
Ajax thì ng-ời dùng cảm thấy kết quả trả về ngay lập tức mà không cần n¹p l¹i
trang. Những ứng dụng cã tÝnh thay đổi thƣờng xuyên nh ng dng Web gi
đây s tr nên linh động hơn khi có nhiều ng-ời truy cập hoặc trở nên dễ dàng
hơn trong việc thay thế và nâng cấp. Tuy nhiên có một số bài toán đòi hỏi sử
dụng thêm công nghệ khác để có thể giải quyết đ-ợc mét c¸ch tèi -u nhÊt.
Riêng đối với bài tốn đấu giá trực tuyến việc hệ thống chạy theo thời gian
thực và việc làm sao để request trang liên tục là vơ cùng quan trọng vì vậy ở
đây em sử dụng công nghệ JSON, một công nghệ của những ngƣời lập trình
client script JSON sẽ giảm tải quá trình truy xuất dữ liệu liên tục cho server.
Cuối cùng, xin chân thành cảm ơn các thầy, cô và các bạn, đặc biệt là
sự hƣớng dẫn trực tiếp của thầy giáo ThS. Vũ Chí Cƣờng cùng các anh trong
bộ phận cơng nghệ của Công ty VTCOnline đã chỉ dẫn công nghệ mới cho em
trong quá trình xây dựng đồ án này.
Mặc dù đã cố gắng hoàn thành đồ án trong phạm vi và khả năng cho
phép nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong
nhận đƣợc sự chia sẻ, góp ý của các thầy, cơ và các bạn.
Sinh viên thc hin
SV: Lê Thị Ph-ợng

2

Lớp 46K2 - CNTT


Đồ án tốt nghiệp


Tr-ờng Đại học Vinh

Lờ Th Phng

SV: Lê Thị Ph-ợng

3

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Chng I

TèM HIU CễNG NGHỆ JSON
I. GIỚI THIỆU
JSON viết tắt của JavaScript Object Notation. Cũng nhƣ XML, JSON
là một định dạng text data, cấu trúc JSON cho phép data dễ đọc, dễ thao tác,
nhẹ, độc lập ngơn ngữ, và đặc biệt là JSON có thể mơ tả dữ liệu theo object
oriented.
Tại sao JSON có liên quan đến Javacript. Đơn giản là vì JSON chính là
cách biểu diễn một đối tƣợng Javascript.
Khi sử dụng Json với Javascript, khơng cần phải có các bƣớc phân tích
phức tạp nhƣ đối với XML. Mà có thể truy vấn trực tiếp giá trị theo tên (khóa)
đƣợc định nghĩa trong JSON.
JSON là một chuẩn cực kỳ quan trọng trong lập trình webclient. Tƣơng

tác client-server (ajax chẳng hạn) với JSON đỡ mệt hơn sử dụng XML rất
nhiều, đƣợc xây dựng dùng cùng với JavaScript để tạo requests. Code ở
server, có thể viết trên nhiều ngôn ngữ khác nhau, nhƣ C#, Python, PHP và
Java.
Đối với lập trình viên clientscript. Nó rút ngắn thời gian phát triển hơn
là sử dụng XML.
JSON là một nét đặc trƣng của ngơn ngữ này. Nó cung cấp cho lập
trình viên một khả năng tạo các mảng cũng nhƣ phác thảo ra các đối tƣợng
một cách đơn giản và ngắn gọn. Để hiểu đƣợc JSON, trƣớc hết ta tìm hiểu
xem cách thức mà mảng trong JavaScript hoạt động.
JavaScript cung cấp cho chúng ta một đối tƣợng Array. Cách cài đặt
một mảng mới khá đơn giản, ví dụ:
myArray = new Array();
myLibrary.books = new Array();
SV: Lê Thị Ph-ợng

4

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Khỏ ging vi cỏc ngôn ngữ nhƣ Java hay C, JavaScript cho phép khai
báo trƣớc số phần tử của mảng cũng nhƣ gán một giá trị cho một phần tử của
mảng:
family=new Array(4);
family[0] = “Tom”;

Hoặc thậm trí ta có thể kết hợp với một giá trị khóa nhƣ sau:
family["father"]=”Tom”;
Tất nhiên ta có thể gán bất cứ giá trị nào cho mảng thậm trí là một
object, bởi JavaScript là một ngơn ngữ có kiểu khá lỏng lẻo. Cách khởi tạo
giá trị mảng nhƣ trên có vẻ nhanh gọn, nhƣng nếu nhƣ mảng của chúng ta khá
lớn và phức tạp thì việc khai báo nhƣ vậy sẽ rất tẻ nhạt. Một cách khác để để
khởi tạo các giá trị ban đầu cho mảng là sử dụng cặp ngoặc vuông [ ]:
family=["Tom","Jery","Jack","Timy"];
Hoặc nếu dùng cặp đấu { } kết hợp với giá trị khóa nhƣ sau:
family={
farther: “Tom”,
mother: “Jery”,
first_son: “Jack”,
second_son: “Timy”
};
Đây chính là cách mơ tả đối tƣợng kiểu JSON.
Nếu muốn sử dụng dấu cách trống cho các khóa ta có thể dùng cắp dấu
“” ví dụ:
“first son”: “Jack”,
Chúng ta cũng có thể lồng các JSON vào nhau để khai báo các đối
tƣợng phức tạp hơn, ví dụ:
var rectangle={

SV: Lê Thị Ph-ợng

5

Lớp 46K2 - CNTT



Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

topleft: { x: 1, y: 2 },
width: 5,
height: 10
};
//Khi đó
alert(rectangle.topleft.x); // sẽ đƣa ra giá trị 1
Để thêm vào một phƣơng thức cho đối tƣợng khai báo theo kiểu JSON
ta làm khá đơn giản nhƣ sau:
var rectangle={
//Thuộc tính
topleft: { x: 1, y: 2 },
width: 5,
height: 10,
//Phƣơng thức
area: function()
{
return this.width*this.height;
}
};
//Khi đó
alert(rectangle.topleft.x); // sẽ đƣa ra giá trị 1
alert(rectangle.area()); // sẽ đƣa ra giá trị 50
Trong ví dụ trên, ta sử dụng từ khóa this để truy cập vào các thuộc tính
vừa khai báo của bản thân đối tƣợng. Đây là một từ khóa đặc biệt và khá
mạnh, ta sẽ có dịp đề cập đến nó nhiều hơn trong các phần sau.
Nhƣ vậy, bây giờ ta có thể sử dụng đối tƣợng Object hoặc JSON để

khai báo một đối tƣợng trong JavaScript hoặc thậm trí sử dng kt hp c

SV: Lê Thị Ph-ợng

6

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

hai phng phỏp trờn. Tuy nhiên, nếu ta thƣờng xuyên phải sử dụng, cũng
nhƣ với rất nhiều đối tƣợng trong chƣơng trình thì cả hai phƣơng pháp trên
tỏ ra kém hiệu quả, bởi lẽ với mỗi lần các thuộc tính thay đổi ta lại phải thực
hiện các khai báo khá phức tạp do vậy tính tái sử dụng của code khơng đƣợc
đảm bảo.
Khi sử dụng JSON với JavaScript hay ActionScript, khơng cần phải có
các bƣớc phân tích phức tạp nhƣ đối với XML. Mà có thể truy vấn trực tiếp
giá trị theo tên (khóa) đƣợc định nghĩa trong JSON.
Ví dụ:
Ta có một dữ liệu XML:
<data>
<x>2</x>
<y>3</y>
</data>
Sử dụng JavaScript để đọc dữ liệu này, ta phải qua một bƣớc phân tích,
đƣa văn bản XML thành một đối tƣợng dữ liệu và đọc dữ liệu theo nodes. Giả
sử object của ta là xmlObj, ta muốn lấy dữ liệu x và y ta sẽ gọi:

var x = xmlObj.childNodes[0].text;
var y = xmlObj.childNodes[1].text;
Trong trƣờng hợp tƣơng tự, ta có một dữ liệu JSON:
var jsonStr = '{ data: { x: 2 , y: 3}}';
Sử dụng JavaScript ta chỉ cần gọi:
eval( 'var jsonObj = ' + jsonStr + ';');
var x = jsonObj.x;
var y = jsonObj.y;
Đối với lập trình viên client script. JSON rút ngắn thời gian viết mã JS,
AS hơn là sử dng XML.

SV: Lê Thị Ph-ợng

7

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

II. S DNG JSON TRONG AJAX RESPONSE
Ta có thể dùng JSON trong bất kì việc gì ta muốn nhƣ cách ta dùng
XML vậy, nhƣng ở đây em muốn đề cập ứng dụng của nó trong Ajax
application
1. Tạo và truy xuất JSON trong Ajax application (both server &
client side)
1.1. Tạo response data và send về client
Nhƣ ta đã biết trong Ajax application, client sẽ send XMLHttpRequest

đến server, server sẽ handle request và trả về response, response có thể là
plain text, xml, js, json ...
VD: chúng ta define 1 java bean có 2 properties nhƣ sau:
public class Customer {
private String id;
private String name;
public Customer(String id, String name) {
this.id = id;
this.name = name;
}
//các accessor methods .....
}
Và khởi tạo object: Customer customer = new Customer("abc",
"sabrina");
Nếu diễn đạt object customer dƣới dạng XML, chúng ta có thể có dạng
sau:
<Customer>
<id>abc</id>
<name>sabrina</name>

SV: Lê Thị Ph-ợng

8

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh


</Customer>
Nu din t object customer dƣới dạng JSON, thì:
{id: "abc", name: "sabrina"}
-----> Cả JSON và XML đều có tính dễ đọc, JSON chiếm dụng bộ nhớ
ít hơn XML.
Để tạo ra xml response trên, ta có thể tạo ra từng String rồi cộng lại.
Hoặc ta có thể dùng các XML data binding framework (JAXB, JDOM,
XMLBeans ...)
VD: dùng JAXB tạo ra xml từ java object
JAXBContext jaxbContext =
JAXBContext.newInstance("com.giaodn.booksearchdemo");
Marshaller marshaller = j axbContext.createMarshaller();
marshaller.marshal(customer, response.getOutputStream());
Để tạo ra JSON response nhƣ trên ta cũng có thể cộng các String lại với
nhau, hoặc dùng library,
VD: tạo ra JSON response dùng Json-lib
response.getWriter().write(JSONObject.fromObject(customer).toString());
1.2. Handle data ở phía client
Nếu ta quyết định dùng XML là reponse data, thì ta phải dùng
javascript để traverse cây DOM(Document Object Model) và lấy ra từng node
bằng DOM api document.getElementById("id");
Nếu dùng JSON thì ta dùng hàm eval() của javascript để evaluate
JSON data thành javascript object:
var jsonRep = eval(respondText);
Sau đó ta s truy xut data t js object:
jsonRep.id;
jsonRep.name;

SV: Lê Thị Ph-ỵng


9

Líp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Chng II

TNG QUAN V ĐỀ TÀI
I. GIỚI THIỆU VỀ ĐẤU GIÁ TRỰC TUYẾN
1. Đấu giá trực tuyến là gì?
Mơ hình đấu giá trực tuyến là hình thức mà các bên tham gia đấu giá
sản phẩm và dịch vụ thông qua Internet. Các hoạt động mua và bán trong đấu
giá trực tuyến sẽ đƣợc phần mềm đấu giá kiểm soát.
2. Các phƣơng thức đấu giá trực tuyến
Hiện tại có hai phƣơng thức chính đƣợc sử dụng:
 Đấu giá kiểu Anh:
Đây là hình thức đấu giá từ thấp tới cao. Ngƣời tham gia sẽ trả giá công
khai với nhau, giá sau cao hơn giá trƣớc. Cuộc đấu giá kết thúc khi không ai
đƣa ra giá cao hơn hoặc đã đạt tới mức giá trần, khi đó ngƣời chiến thắng là
ngƣời đƣa ra mức giá cao nhất.

 Đấu giá kiểu Hà Lan:
Đấu giá Hà Lan là một hình thức đấu giá mà trong cuộc đấu giá này,
một món hàng đƣợc chào với một mức giá rất cao. Giỏ ban u c a ra


SV: Lê Thị Ph-ợng

10

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

ny cao hn rt nhiều giá trị món hàng và chẳng có ngƣời bán nào hy vọng
bán đƣợc món hàng với giá cao nhƣ vậy. Vì bidders biết số lƣợng của bids,
bids khơng đƣợc đóng dấu nhƣ trong các hình thức đấu giá khác.Giá đƣợc
giảm xuống từ từ cho đến khi một bidder quyết định cái giá hiện tại đó.
Bidders sẽ trả cái giá đó và trở thành ngƣời thắng cuộc.
3. Những ƣu điểm của mơ hình ĐGTT:
 Khơng ràng buộc về mặt thời gian: Các sản phẩm đƣợc liệt kê trong
một khoảng thời gian nhất định (tùy theo ngƣời bán), trong khoảng thời gian
này ngƣời tham gia đấu giá có thể đặt giá vào bất kỳ lúc nào.
 Xóa bỏ khoảng cách địa lý: Ngƣời mua, ngƣời bán có thể tham gia
từ bất kì nơi nào có máy tính truy cập Internet.
 Sức mạnh của tƣơng tác xã hội: Tƣơng tác xã hội mà liên quan đến
quá trình đấu giá thì giống nhƣ việc đánh bạc. Những ngƣời đấu giá chờ đợi
trong hi vọng là họ sẽ thắng (eBay gọi những ngƣời đặt giá thành công là
những ngƣời chiến thắng). Cũng giống nhƣ sự ham mê cờ bạc, nhiều ngƣời
tham gia đặt giá chủ yếu để "chơi trị chơi" chứ khơng muốn giành đƣợc
món hàng. Và điều này tạo ra một sự phân chia lớn các khách hàng tiềm
năng của eBay.
 Số lƣợng ngƣời đấu giá lớn: Bởi vì tiềm năng có giá thấp, hàng hóa

và dịch vụ đa dạng, dễ dàng tham gia và lợi ích xã hội của q trình đấu giá.
 Số lƣợng ngƣời bán hàng lớn: Bởi vì có nhiều ngƣời tham gia đặt
giá, có thể đạt đƣợc giá cao, giảm chi phí bán hàng, dễ bn bán.
 Mạng lƣới kinh doanh. Số lƣợng lớn các ngƣời tham gia đấu giá
sẽ khuyến khích nhiều ngƣời bán, ngƣợc lại số lƣợng lớn các ngƣời bán sẽ
làm tăng số lƣợng ngƣời đấu giá. Càng có nhiều hoạt động thì hệ thống
càng lớn mạnh, và mơ hình kinh doanh càng trở nên cú giỏ tr cho nhng
ngi tham gia.

SV: Lê Thị Ph-ợng

11

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

II. TNG QUAN Mễ HÌNH ĐẤU GIÁ KIỂU ANH
Trong phƣơng thức này có 2 hình thức đấu giá chính:
- Penny Auction
- Nail Biter Auction
1. Penny Auction
n
Ta sẽ đƣa sản phẩm A lên đấu giá với 1 mức giá khởi điểm rất thấp và
quy định thời gian đấu giá. Ngƣời dùng sẽ tham gia đấu giá. Mỗi 1 lần đặt
giá, ngƣời dùng sẽ mất 1 khoản phí nhất định và mức giá sẽ tự động nhảy lên
1 bậc. Giá sau= giá trƣớc + bƣớc nhảy giá. Bƣớc nhảy giá là do ta quy định từ

trƣớc. Thời gian đấu giá sẽ đƣợc đếm lùi. Khi thời gian lùi về khoảng thời
gian động (ví dụ 15s cuối) thì mỗi lần ngƣời dùng đặt giá trong khoảng thời
gian đó, thời gian động sẽ đƣợc reset lại. Ngƣời thắng cuộc là ngƣời trả giá
cuối cùng khi thời gian lùi về đến 0.
Để tham gia đấu giá, ngƣời dùng sẽ phải mua các gói đặt giá (10bid,
20bid). Mỗi lần đặt giá, số lƣợt đặt giá còn lại sẽ bị trừ dần.
Ngƣời dùng có thể sử dụng (bid agent = proxy bidding = automatic
bidding). Hệ thống website sẽ tự động đặt giá hộ ngƣời dùng khi họ khơng có
thời gian ngồi trƣớc màn hình. Ngƣời dùng sẽ chọn gói đặt giá tự động
(10bid, 20 bid…) và chọn mức giá cao nhất mà mình chấp nhận mua. Khi đó
hệ thống sẽ tự động đặt giá hộ ngƣời dùng. Mỗi khi có 1 ngƣời dùng khác đặt
giá và thời gian lùi về 4s, hệ thống sẽ tự động đặt giá hộ cho đến khi hết gói
đặt giá và đạt đến mức giá cao nhất thì dừng
Mức giá ngƣời dùng phải trả là giá thắng + chi phí vận chuyển. Vậy
thực chi của ngƣời dùng = giá thắng + chi phí đặt giá. Các website trên thế
giới có 2 sự lựa chọn cho ngƣời dựng.
+ Mua vi giỏ thng

SV: Lê Thị Ph-ợng

12

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

+ Trong trng hp giá thắng + chi phí đặt giá


giá bán lẻ của sản

phẩm thì cho phép ngƣời dùng mua với giá bán lẻ và hồn lại chi phí đặt giá.
m
- Cơng khai: bidder, mức giá, bƣớc nhảy giá là công khai. Thƣờng thì
tên 3 bidder bid gần nhất sẽ hiển thị. Mỗi lần ngƣời dùng đặt giá thì mức giá
sẽ tự động tăng lên và hiển thị ra ngoài
- Bƣớc nhảy giá là rất nhỏ và phí mỗi lần bid là rất lớn.
+ Mức giá khởi điểm và bƣớc nhảy giá rất nhỏ là để thu hút ngƣời tham
gia. User thấy sản phẩm đƣợc bán với giá rất thấp (thƣờng chỉ bằng 1/500 giá
trị sản phẩm sau khi kết thúc đấu giá) sẽ rất hứng thú tham gia. Đây cũng là
điểm mới lạ, hấp dẫn của hình thức này.
+ Phí đặt giá lớn. Phí đặt giá thƣờng lớn hơn gấp nhiều lần so với bƣớc
nhảy giá. Mục đích là để ta có thể thu hồi vốn và có lãi khi bán sản phẩm với
giá rẻ nhƣ vậy.
- Website tham gia hình thức này muốn thành cơng thì phải:
+ Có cộng đồng lớn và nhanh chóng thu hút cộng đồng. Ngƣời tham
gia càng đơng thì phí thu đƣợc càng lớn

bù đƣợc khoản lỗ khi bán sản

phẩm với giá rẻ và có lãi.
+ Minh bạch: Lo lắng của ngƣời dùng khi tham gia hình thức này là
tính minh bạch của website. Ngƣời ta lo là website đấu giá sẽ tạo tài khoản ảo,
tự đấu giá để nâng mức giá lên hoặc để ngƣời mua không thể mua đƣợc sản
phẩm với giá rẻ. Những trang web nhƣ thế kiểu gì cũng sẽ bị ngƣời dùng phát
hiện và liệt kê vào danh sách các site bị tẩy chay và lƣu truyền trên các forum,
các trang reviews.
n


Không dùng hình thức nhà cái tham gia đặt giá.
n

Ta có các tham số sau đối với mỗi sản phẩm
P: giá bán trên thị trƣờng (giá bán lẻ). Đơn vị 10 000 VND

SV: Lê Thị Ph-ợng

13

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Po: giỏ khi im. Đơn vị 10 000 VND
p: phí mỗi lần. Đơn vị 10 000 VND
L: tổng số bid cho mỗi sản phẩm đó
r: bƣớc nhảy giá. Đơn vị 10 000 VND
Những yếu tố sau là giống nhau đối với mỗi sản phẩm
- r: Đúng nhƣ cái tên penny auction, bƣớc nhảy giá ở mối sản phẩm sẽ
chỉ là 1 000 VND. Trên thế giới thì r = 1 cent. Vậy r = 0.1
- Thời gian động: 15s.
Yếu tố quyết định nhất đối với sự thành cơng của website đấu giá kiểu
này chính là L.
L phụ thuộc vào các yếu tố gì?
+ Đặc tính của sản phẩm. Sản phẩm càng hay, càng hot trên thị trƣờng

thì càng thu hút ngƣời tham gia
+ Giá sản phẩm. Quan sát các phiên đấu giá kết thúc thì nhận thấy giá
sản phẩm càng cao, L càng cao. Do giá càng cao, ngƣời dùng thấy mức chênh
lệch giữa P và giá thắng càng lớn >>> càng tham rẻ >>> càng thích tham gia.
Với mỗi sản phẩm để c thể hồ vốn thì:
P = Po + r * L + p * L = Po + L * (r + p)
Do Po nhỏ hơn rất nhiều so với P và r nhỏ hơn rất nhiều so với p nên ta
có thể đơn giản hố nhƣ sau:
P=L*p
p = P/L
Tỷ lệ P/L và Po có thể tính ra con số trung bình dựa vào xác suất thống
kê. Nếu có thời gian ta sẽ lấy dữ liệu của các phiên đấu giá kết thúc để tính ra
con số này.
Ví dụ: http: //www.bidrivals.com/us/completed_auctions.html?page=1

SV: Lê Thị Ph-ợng

14

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Theo em c tớnh, trong thời gian đầu, P/L = 2. Do đó p = 1.5 (tức là
15.000VND) Mức giá này cũng là hợp lý. Bằng giá khi ngƣời dùng chơi
nhắn tin SMS. Khi cộng đồng càng lớn thì P/L sẽ càng giảm, lợi nhuận của
mình sẽ tăng.

Po = P/30
np

m

m

- Về mặt lý thuyết thì bất cứ sản phẩm nào cũng có thể đem đấu giá
theo loại hình này. Tuy nhiên nên chọn các mặt hàng:
+ Dễ bán, nhu cầu tiêu dùng cao
+ Giá trị vừa phải
- Khi site lớn mạnh rồi thì có thể bán những mặt hàng công nghệ, quần
áo, trang sức, phụ kiện.
+ mặt hàng cơng nghệ dễ bán hơn vì có thơng số kỹ thuật quy chuẩn >>
tập trung hơn. Có thể nhập hàng theo hình thức ký gửi. Khi nào mình bán
đƣợc hàng mới nhập chính thức.
+ Quần áo, trang sức, phụ kiện, mỹ phẩm khó bán hơn chút do nguồn
gốc xuất xứ và độ quy chuẩn chƣa r ràng.
2. Nail biter auction (http: //www.junglecents.com/ )
2.1.

n

Về mặt bản chất là tƣơng đối giống penny auction. Chỉ có một số điểm
khác biệt:
+ Thay vì trả phí cho mỗi lần đặt giá thì ngƣời chơi chỉ việc trả phí tham
gia ban đầu (giống nhƣ là vé vào cửa) và đƣợc đặt giá bao nhiêu lần tuỳ thích.
+ Mỗi sản phẩm sẽ có 1 số vé vào cửa nhất định. Chỉ khi nào vé vào
cửa đƣơc bán hết thì auction mới bắt đầu
+ Bƣớc nhảy giá đối với mỗi sản phẩm khác nhau là khác nhau. Sản

phẩm càng đắt tiền thì bƣớc nhy giỏ cng cao

SV: Lê Thị Ph-ợng

15

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

+ Khụng u giỏ tự động đƣợc, phải ngồi chờ
2.2.

m

- Hình thức này bộc lộ nhiều yếu điểm hơn so với penny auction.
http: //www.junglecents.com/page/how-it-works
- Nhƣ junglecent, ngƣời chơi phải đợi đến khi vé vào cửa đƣợc bán hết
thì mới đấu giá đƣợc , chỉ mua đƣợc chỗ lúc đó thơi

đợi lâu, mất thời

gian, ham muốn sản phẩm giảm xuống.
Nếu chỗ khơng bán hết thì sao? >>> Cái này mình có thể cải tiến:
khơng nhất thiết phải đợi hết vé mới bắt đầu đấu giá. Bắt đầu lúc nào cũng
đƣợc và ngƣời tham gia mua vé lúc nào cũng đƣợc, không giới hạn số chỗ
- Bƣớc nhảy giá đối với mỗi sản phẩm khác nhau là khác nhau. Sản

phẩm càng đắt tiền thì bƣớc nhảy giá càng cao
giá bán lẻ
thấp

giá thắng sẽ cao, gần với

Mất đi bản chất của penny auction là giá cực thấp, bƣớc nhảy

Khó thu hút ngƣời dùng, và khoảng thời gian động cũng khó thu hút

ngƣời dùng vì lúc đó giá cũng đã cao rồi. >>> Chẳng khác gì đấu giá lên
thông thƣờng
- Nếu để bƣớc nhảy thấp nhƣ penny aution thì tiền bán vé khơng đủ để
bù lại chênh lệch giá thắng và giá bán lẻ. Nếu nâng giá vé lên q cao thì ít
ngƣời mua. Trong khi đó phí bid ở mức vừa phải, đến cuối auction, ngƣời
dùng hăng máu lên thì sẵn sàng mua nhiều bid.
- Khơng cho đấu giá tự động. Bỏ đi đấu giá tự động là bỏ đi 1 tiện ích
cho ngƣời dùng và hạn chế những ngƣời ít thời gian. Những ngƣời nhiều thời
gian thì vẫn có thể single bid đƣợc. Cịn những ngƣời bận rộn thì sẽ ít tham
gia. User thì cũng giới hạn bởi sức lực, quỹ thời gian

Không cho đấu giá

tự động sẽ hạn chế cộng đồng tham gia. Ngay cả đấu giá lên bình thƣờng nhƣ
eBay họ cũng có đấu giỏ t ng gi l proxy bidding

SV: Lê Thị Ph-ợng

16


Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

- Bc nhy: trong trƣờng hợp này bƣớc nhảy giá không hề mang lại
lợi cho ta nhƣ penny auction là r ràng và không mang lại lợi cho ngƣời tham
gia. Ví dụ user muốn bid cao hơn current bid là 10 bƣớc nhảy thì phải ấn bid
10 lần >>> mất thời gian. Nên cải tiến là cho user đƣợc tự đặt giá và mức giá
sau >= mức giá trƣớc + bƣớc nhảy giá
->>> Chính bởi những yếu điểm đó nên junglecents khó phát triển, số
lƣợt truy cập mỗi ngày tầm 1000 >>> quá ít. Truy cập là vậy chứ chơi thì
chẳng có mấy hơn nữa hiện tại website này có q ít sản phẩm, chợ vắng vẻ
thì làm sao thu hút đƣợc ngƣời đi chợ.
>>> Nên quy về đấu giá lên bình thƣờng, nhƣng có reset time và ai
tham gia thì mua vé, khơng giới hạn số vé, số bid. Mua vé lúc nào cũng đƣợc.
2.3.

n

n

Ta có các tham số sau đối với mỗi sản phẩm
P: giá bán trên thị trƣờng (giá bán lẻ).
Po: giá khởi điểm.
P1: giá thắng
V: tổng số ngƣời tham gia
r: bƣớc nhảy giá.

Với mỗi sản phẩm để hồ vốn thì:
P = P1 + V * p
Đối với hình thức này thì P1 thƣờng xấp xỉ P.
Theo em thì có thể để:
Po = P/30
V = r = P/100
2.4. oạ

np

m

n

Tƣơng tự penny Auction

SV: Lê Thị Ph-ợng

17

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

III. KCH BN CHNG TRÌNH ĐẤU GIÁ TRỰC TUYẾN
1. Mơ tả chung
Đây là hệ thống đấu giá tƣơng tác trực tuyến trên mạng Internet, sản

phẩm sẽ đƣợc đƣa ra để ngƣời dùng đấu giá. Ngƣời trả giá sau cùng và
chiến thắng trong cuộc đấu giá sẽ là ngƣời có quyền mua sản phẩm của
cuộc đấu giá.
2. Cách thức chơi
T am

a và ạo à k o n

Trƣớc khi ngƣời chơi tham gia vào hệ thống đấu giá của VBID, ngƣời
chơi phải mua các quyền đấu giá. Quyền đấu giá, đƣợc gọi là Bid, đƣợc ngƣời
chơi mua trực tiếp của công ty. Sau khi ngƣời chơi hồn tất thanh tốn với
cơng ty, thì tài khoản ngƣời chơi sẽ có số quyền đấu giá tƣơng đƣơng với số
tiền ngƣời chơi đã trả.
Mỗi lần trả giá cho sản phẩm, tài khoản ngƣời chơi sẽ mất một quyền
đấu giá.
và Hệ

ốn

ự ộn

Ngƣời chơi có thể đấu giá sản phẩm bằng 2 cách. Đấu giá bằng trực
tiếp hoặc để hệ thống đấu giá tự động.
- Hệ thống đấu giá tự động sẽ thay thế ngƣời chơi đấu giá tự động sản
phẩm trong trƣờng hợp họ khơng có mặt tại thời điểm đấu giá. Hệ thống đấu
giá sẽ tự động nhập quyền đấu giá theo số lƣợng quyền đấu giá và giá tiền cao
nhất mà ngƣời chơi muốn trả cho sản phẩm.
- Ngƣời chơi tham gia đấu giá sản phẩm trực tiếp vi ngi chi khỏc
theo thi gian thc.


SV: Lê Thị Ph-ợng

18

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh



o

n

no?

Vi mi ln ngƣời chơi đấu giá, họ sẽ mất đi một quyền đấu giá trong
tài khoản của mình, đồng thời giá của sản phẩm họ đấu giá sẽ tăng lên theo
một định mức VBID xác định. Khi ngƣời chơi đấu giá, họ sẽ có cơ hội sở hữu
sản phẩm với mức giá của cuộc đấu giá khi cuộc đấu giá kết thúc. Tuy nhiên,
họ sẽ là ngƣời thắng cuộc đấu giá chỉ khi cuộc đấu giá kết thúc và là ngƣời
cuối cùng của cuộc đấu giá.
10 giây cuối cùng của cuộc đấu giá sẽ là thời gian lặp lại. Nếu trong
thời gian lặp lại, có ngƣời tiếp tục đấu giá cho sản phẩm, thì thời gian kết thúc
cuộc đấu giá sẽ tự động cộng thêm ( thƣờng là … giây). Cuộc đấu giá sẽ chỉ
kết thúc khi khơng có ai đấu giá và thời gian lặp lại bằng 0. Ngƣời chơi nào là
ngƣời đấu giá cuối cùng sẽ là ngƣời chiến thắng sản phẩm.

Tất cả những đấu giá sau khi cuộc đấu giá kết thúc sẽ khơng tính.
Kế

ú



/ T an

o n

Sau khi cuộc đấu giá kết thúc, ngƣời trả giá cuối cùng (Ngƣời thắng cuộc
đấu giá) sẽ vào Tài khoản của họ. Tại đây, thông tin cuộc đấu giá hiển thị chi
tiết, bao gồm tổng số tiền (giá sản phẩm tại thời điểm cuộc đấu giá kết thúc và
giá vận chuyển sản phẩm nếu ngƣời thắng không đến lấy trực tiếp) ngƣời thắng
phải trả cho VBID để nhận đƣợc sản phẩm thắng và cách thức trả tiền.
5 Vận

y n

np

m

on



ắn




Sau khi ngƣời thắng chọn mục chấp nhận sản phẩm, họ có thể đến trực
tiếp tại các điểm giao dịch của VBID để thanh toán và nhận sản phẩm hoặc họ
thanh toán tiền vận chuyển và VBID sẽ chuyển sản phẩm đến ngƣời thắng.

SV: Lê Thị Ph-ợng

19

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Chng III

PHN TCH THIT KẾ VÀ CÀI ĐẶT CHƢƠNG TRÌNH
I. PHÂN TÍCH THIẾT KẾ HỆ THỐNG
1. Phân tích hệ thống về mặt chức năng
1.1. B

ồ p ân

p

năn
Website Auctions


FrontEnd

BackEnd

Đăng ký tài khoản

Quản lý sản phẩm

Quản lý đặt giá

Quản lý đấu giá

Hiện danh sách đấu giá

Quản lý nội dung

Quản lý tài khoản

Quản lý ngƣời dùng

Báo cáo thống kê

1.2. B

ồ l ồn dữ l ệ

Biểu đồ luồng dữ liệu là phƣơng tiện diễn tả chức năng xử lý và việc
trao đổi thông tin giữa các chức năng.


SV: Lê Thị Ph-ợng

20

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

Cỏc ký hiu c dùng trong biểu đồ
+

ồn dữ l ệ : Là một tuyến truyền dẫn thông tin vào hay ra một

chức năng nào đó.
Ký hiệu:

Tên luồng dữ liệu

năn : Là một quá trình biến đổi dữ liệu.

+
Kí hiệu:

Tên chức năng

+


k o dữ l ệ : Là một dữ liệu đƣợc lƣu lại, để có thể đƣợc truy

cập nhiều lần về sau.
Kí hiệu:
Tên kho dữ liệu
+ Tác nhân ngoài: Một tác nhân ngoài là một thực thể ngồi hệ thống,
có trao đổi thơng tin vi h thng.
Kớ hiu:

SV: Lê Thị Ph-ợng

Tờn tỏc nhõn ngồi

21

Líp 46K2 - CNTT


§å ¸n tèt nghiƯp

1.2.1. B

ồ l ồn dữ l ệ m

ỏp ng
yờu cu

Admin

Tr-ờng Đại học Vinh


k

n

n

Cp nht
thụng tin

User

Gi yờu cu
Gi yêu cầu

Website Auctions

Đáp ứng
yêu cầu

Gửi yêu cầu
Gửi yêu cầu

AuctionsManager

Đáp ứng

Đáp ng

yờu cu


yờu cu

SV: Lê Thị Ph-ợng

22

AuctionManagerSite

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

B

Tr-ờng Đại học Vinh

l n d l ệ m

ỉn :

- FrontEnd: Phần giao tiếp ngƣời dùng
1

3

User

2


4

Đăng ký

Quản lý
đặt giá

tài khoản

Kho dữ liệu

Hiện danh sách
đấu giá

Quản lý tài khoản
6

5

8

User

7

Chú thích:
1: Cập nhật thơng tin tài khoản
2: Thơng báo kết quả
3: Đặt giá sản phẩm

4: Thông báo kết quả
5: Gửi yêu cầu xem đấu giá
6: Đáp ứng yêu cầu
7: Yêu cầu xem thông tin tài khoản cá nhân, thụng tin ó u giỏ

SV: Lê Thị Ph-ợng

23

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

8: ỏp ng yờu cầu
- BackEnd: Phần quản trị

AuctionsManager

2

2

4

1

AuctionManagerSite

3

4

Admin

2
3
4

Quản lý đấu
giá

5

6
7

Quản lý sản
phẩm

Quản lý nội
dung

8

Kho dữ liệu
2

4


1
Cấu hình hệ
thống
9

Admin

Báo cáo thống

8
7

4
2

AuctionManagerSite

8
7
AuctionsManager

Chú thích:
1: Cập nhật thơng tin sản phẩm
2: Gửi u cầu tìm kiếm
3: Cập nhật thơng tin đấu giá
4: Đáp ứng u cầu tìm kiếm
5: Cập nhật nội dung
6: Tìm kiếm nội dung
7: Yêu cầu báo cáo thống kê

8: Đáp ứng yêu cầu
SV: Lª Thị Ph-ợng

24

Lớp 46K2 - CNTT


Đồ án tốt nghiệp

Tr-ờng Đại học Vinh

9: Cp nht thụng tin cấu hình
1.2.3. ơ ồ mộ ố

năn

n

ế

- BackEnd:
Phần BackEnd sẽ quản trị tồn bộ website đấu giá. Nó bao gồm các
nghiệp vụ sau:
- Cấu hình hệ thống: Bao gồm việc quản lý menu, phân quyền trên hệ
thống, quản lý ngƣời dùng thiết lập các thông số hoạt động cho nghiệp vụ đấu
giá.
uc AccountMgmtByAdmin

- Quản lý sản phẩm: Bao gồm việc thêm mới, sửa, xóa sản phẩm sẽ

tham gia đấu giá.

SV: Lê Thị Ph-ợng

25

Lớp 46K2 - CNTT


×