Tải bản đầy đủ (.docx) (37 trang)

XÂY DỰNG WEBSITE PYTHON TỔNG HỢP RAO VẶT TỪ CÁC TRANG WEB.(FRAMEWORK DJANGO)

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.4 MB, 37 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG

BÁO CÁO ĐỒ ÁN
XÂY DỰNG WEBSITE TỔNG HỢP RAO VẶT
GVHD: ThS. Trần Thị Dung
Nhóm sinh viên:

TP.HCM, tháng 6 năm 2016


Lời mở đầu
Ngày nay, công nghệ thông tin nói riêng và Internet nói chung đang là một yếu tố
cần thiết trong hầu hết các lĩnh vực của đời sống. Các thông tin trên Internet được cập
nhật liên tục, nhanh chóng và chính xác. Và website là một ứng dụng phổ biến hiện nay
trên Internet. Nó đang ngày phát triển mạnh mẽ và có nhiều ứng dựng thực tiễn trong
cuộc sống.
Người tiêu dùng Việt Nam đã xem Internet là một công cụ để tìm kiếm thông tin
về những sản phẩm, mặt hàng, những thông tin về người bán, người mua. Thực tế, hiện
nay trên Internet có rất nhiều website rao vặt nhằm tạo liên kết giữa người bán và người
mua, hỗ trợ người mua biết thêm nhiều thông tin về sản phẩm mình cần mua, rao quảng
cáo và đưa các thông tin về bất động sản, phòng trọ, nhà ở … Tuy nhiên, những thông tin
về các sản phẩm mình cần bán, cần mua chỉ đến được một website mà mình đăng tin trên
đó mà thôi.
Do đó nhóm em chọn đề tài “Xây dựng website tổng hợp rao vặt” nhằm giúp
cho người sử dụng có thể dễ dàng đăng tin rao vặt trên các trang rao vặt như:
canmuaban.vn, raovat123.com, tudomuaban.com… với một lần đăng duy nhất mà không
cần phải thao tác nhiều.




Lời cảm ơn
Để hoàn thành được đề tài này nhóm chúng em chân thành cảm ơn Quý Thầy/Cô
trong khoa Mạng Máy Tính và Truyền Thông đã nhiệt tình chỉ dẫn và giúp đỡ, trong đó
nhóm xin gửi lời cảm ơn sâu sắc đến ThS. Trần Thị Dung đã nhiệt tình hướng dẫn cho
nhóm các bước để thực hiện đề tài, giúp nhóm giải quyết nhiều khó khăn và nảy ra nhiều
ý tưởng mới. Đồng thời nhóm cũng gửi lời cảm ơn đến các anh/chị khóa trên, các bạn
trong lớp đã đóng góp ý kiến để nhóm hoàn thiện bài báo cáo một cách tốt nhất.
Mặc dù nhóm chúng em đã cố gắng, tuy nhiên trong một thời gian ngắn cũng như
kiến thức còn nhiều hạn chế nên chắc chắn không thể tránh khỏi những sai sót. Chúng em
rất mong nhận được những sự đánh giá, góp ý của cô để hoàn thiện kiến thức của mình
hơn.
Một lần nữa, nhóm chúng em xin chân thành cảm ơn cô rất nhiều!

Tp Hồ Chí Minh, tháng 06 năm 2016
Sinh viên thực hiện


Nhận xét của giáo viên hướng dẫn
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................

.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................

ĐỀ CƯƠNG ĐỒ ÁN MÔN HỌC
1. Tên đề tài :
Xây dựng Website tổng hợp rao vặt
2. Giảng viên hướng dẫn :
ThS. Trần Thị Dung
3. Sinh viên thực hiện :
4. Thời gian thực hiện: 03/2016 đến 06/2016


5. Nội dung đề tài :
 Tìm hiểu, giới thiệu về ngôn ngữ lập trình Python
 Tìm hiểu và xây dựng giao diện bằng HTML, CSS, jQuery, Boostrap …
 Tìm hiểu và xây dựng website trên Framework Django
 Tìm hiểu về hệ quản trị cơ sở dữ liệu SQLite
6. Cấu trúc báo cáo
Chương 1: Giới thiệu đề tài. Chương này trình bày về bối cảnh, mục đích và lý do
chọn đề tài.
Chương 2: Cơ sở lý thuyết. Chương này trình bày các lý thuyết cơ bản về python,
framwork django, sql lite...
Chương 3: Phân tích thiết kế hệ thống. Chương này trình bày về phân tích và thiết
kế xây dựng hệ thống của website tổng hợp rao vặt.
Chương 4: Triển khai website. Chương này trình bày hướng triển khai về kết quả
demo chương trình, thông tin sản phẩm, cách cài đặt và hướng dẫn sử dụng.

Chương 5: Kết luận, hướng phát triển đề tài. Chương này tổng kết về những kết
quả đạt được, những ưu khuyết điểm của chương trình và hướng phát triển.


Chương 1: TỔNG QUAN ĐỀ TÀI
1.1 Tên đề tài
Xây dựng website “Tổng hợp rao vặt”
1.2 Thực trạng và lý do chọn đề tài
1.2.1 Thực trạng vấn đề
Hiện nay Internet ngày càng phát triển thì hình thức mua bán trên mạng internet lại
càng trở nên phổ biến. Ở Việt Nam hình thức này tiến triển khá nhanh và tập trung vào
hầu hết các lĩnh vực trong cuộc sống.Vì thế rao vặt trực tuyến là một sự lựa chọn thông
minh cho các nhà kinh doanh hay một cá nhân, tổ chức nào đó.
Trên hàng tỉ người đang sử dụng internet hằng ngày, phần lớn họ thường đọc các
tin rao vặt khi lướt web và đó là cơ hội lớn để các nhà kinh doanh hay cá nhân, tổ chức
nào đó có thể quảng bá, tiếp thị sản phẩm của mình đến với nhà tiêu dùng.
1.2.2 Hướng giải quyết
Cũng chính vì những vấn đề trên mà nhóm đã nảy ra ý tưởng và tiến hành xây dựng
lên website “Tổng hợp rao vặt”. Nhằm đáp ứng mọi nhu cầu mua bán, trao đổi những sản
phẩm, mặt hàng và cả những dịch vụ cho những tổ chức, công ty, cá nhân có nhu cầu.
Thông tin sẽ được truyền tải đến người sử dụng một cách nhanh chóng và hiệu quả
nhất giúp người dùng dễ dàng tìm kiếm thông tin sản phẩm mình cần và giúp quản g bá
sản phẩm đến tay người tiêu dùng một cách rộng rãi nhất có thể.
Website sẽ giúp người dùng phát tán các tin rao vặt lên các website rao vặt khác và
giúp quảng bá tin rao vặt đến tất cả mọi người ghé thăm website. Tin rao vặt của người
dùng sẽ có cơ hội rất cao để được một số lượng người dùng lớn đang sử dụng các dịch vụ
mua bán trực tuyến biết đến vào theo dõi.


Chương 2 : CƠ SỞ LÝ THUYẾT

2.1 Ngôn ngữ Python và SQLite
2.1.1 Ngôn ngữ Python
2.1.1.1 Python là gì?
Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm
1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó
tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự
án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý.[1]
Theo đánh giá của Eric S. Raymond, Python là ngôn ngữ có hình thức rất sáng
sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn
cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của
chính Guido van Rossum trong một bài phỏng vấn ông.
Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian,
nó đã "bành trướng" sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows,
Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự
đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ
yếu của Python. Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của
Python.


Hình 2.0 : Python
2.1.1.2 Các phiên bản
Python 1: bao gồm các bản phát hành 1.x. Giai đoạn này, kéo dài từ đầu đến cuối
thập niên 1990. Từ năm 1990 đến 1995, Guido làm việc tại CWI (Centrum voor
Wiskunde en Informatica – Trung tâm Toán-Tin học tại Amsterdam, Hà Lan). Vì vậy, các
phiên bản Python đầu tiên đều do CWI phát hành. Phiên bản cuối cùng phát hành tại CWI
là 1.2.
Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến BeOpen.com
và thành lập BeOpen PythonLabs team. Phiên bản Python 2.0 được phát hành tại đây. Sau
khi phát hành Python 2.0, Guido và các thành viên PythonLabs gia nhập Digital
Creations.

Python 3, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽ không hoàn toàn tương
thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x.
Nguyên tắc chủ đạo để phát triển Python 3.x là “bỏ cách làm việc cũ nhằm hạn chế trùng
lặp về mặt chức năng của Python”.
2.1.1.3 Những ưu điểm của Python
Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục
trực quan, dễ hiểu. Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các kí hiệu và
cấu trúc cú pháp so với các ngôn ngữ khác.
Python đã hỗ trợ cho một chế độ tương tác cho phép thử nghiệm tương tác và gỡ
lỗi các đoạn mã. Việc thực hiện tiêu chuẩn của Python được viết trong ANSI C, và biên
dịch và chạy trên hầu như tất cả các nền tảng lớn hiện đang sử dụng.
Python cho phép chia chương trình thành các module để có thể sử dụng lại trong
các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập
trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều
chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình


mạng (socket) … Python có khả năng giao tiếp đến hầu hết các loại cơ sở dữ liệu, có khả
năng xử lí văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệ Web khác.
GUI (Giao diện đồ họa người dùng) đơn giản và nhanh chóng Python cũng làm
cho người dùng đồ họa hướng đối tượng tiêu chuẩn để các Tk GUI API gọi là Tkinter
(Tkinter trong 2.x) cho phép các chương trình Python để thực hiện ảnh minh hoạ di động
với một cái nhìn tự nhiên và cảm nhận.
2.1.2 SQLite
2.1.2.1 SQLite là gì?
SQLite là phần mềm quản lý cơ sở dữ liệu (DBMS) Database Management
System tương tự như MySQL, PostgreSQL... Đặc điểm của SQLite là gọn, nhẹ, đơn giản.
Chương trình gồm 1 file duy nhất vỏn vẹn chưa đến 500KB, không cần cài đặt, không
cần cấu hình hay khởi động mà có thể sử dụng ngay. Dữ liệu database cũng được lưu ở
một file duy nhất. Không có khái niệm user, password hay quyền hạn trong SQLite

database. SQLite vẫn có transaction để đảm bảo tính toàn vẹn và an toàn trong quá trình
thao tác dữ liệu. Có thể so sánh nó có một vài điểm giống với Access, nhưng nhìn chung
vẫn có nhiều sự khác biệt. [2]
SQLite không thích hợp với những hệ thống lớn nhưng ở quy mô vừa tầm thì
SQLite phát huy uy lực và không hề yếu kém về mặt chức năng hay tốc độ. Với các đặc
điểm trên SQLite được sử dụng nhiều trong việc phát triển, thử nghiệm v..v.. và là sự lưa
chọn phù hợp cho những người bắt đầu học database.
2.1.2.2 Một số ưu điểm của SQLite
SQLite có các ưu điểm sau:
-

Tin cậy: các hoạt động transaction (chuyển giao) nội trong cơ sở dữ liệu được thực

-

hiện trọn vẹn, không gây lỗi khi xảy ra sự cố phần cứng.
Tuân theo chuẩn SQL92 (chỉ có một vài đặc điểm không hỗ trợ)
Không cần cài đặt cấu hình.
Kích thước chương trình gọn nhẹ, với cấu hình đầy đủ chỉ không đầy 500 kB.


-

Thực hiện các thao tác đơn giản nhanh hơn các hệ thống cơ sở dữ liệu khách/chủ

-

khác.
Không cần phần mềm phụ trợ.
Phần mềm tự do với mã nguồn mở, được chú thích rõ ràng.


2.1.2.3 Một vài đặc tính của SQLite
-

Zero-Configuration: Bạn hoàn toàn không phải thiết lập bất kỳ một cấu hình nào

-

để có thể sử dụng SQLite, tất cả những gì bạn cần là một file SQLite.exe và chạy.
Serverless: Các Hệ quản trị CSDL như SQLServer, Oracle, PostgreSQL... thường
cần một server riêng để triển khai ứng dụng, cài đặt database engine, các máy
khách sẽ kết nối đến server để xử lý dữ liệu một cách tập trung. Tuy nhiên SQLite
không làm việc theo cách này mà ứng dụng sẽ truy xuất trực tiếp vào file
database, các máy khách cũng có thể truy xuất một file database SQLite để trên
một server thông qua cơ chế chia sẻ và bảo mật file của hệ điều hành, người dùng
nào truy cập được vào thư mục và có quyền đọc – ghi thì sẽ có thể đọc ghi vào

-

file database SQLite.
Single Database File: Database do SQLite tạo ra là một file dữ liệu duy nhất. Tất

-

cả chỉ có thế.
Stable Cross-Platform Database File: Bạn có thể copy file database SQLite từ hệ
thống này sang hệ thống khác, từ hệ thống 32 hay 64 bit, từ phiên bản SQLite này
sang phiên bản khác mà không cần chuyển đổi, nâng cấp hệ điều hành, cấu trúc

-


hệ thống hay phải làm lại file database.
Compact: Cực kỳ nhỏ gọn. Toàn bộ thư viện SQLite gồm một file duy nhất vỏn
vẹn chưa đến 500kB, không cần cài đặt, không cần cấu hình hay khởi động mà có
thể sử dụng ngay. Nếu lược bỏ một số chức năng không cần thiết thì kích thước

-

của file có thể giảm chỉ còn khoảng 300kB.
Manifest typing: Khi bạn dùng SQLite sẽ để ý là số lượng kiểu dữ liệu của nó rất
ít, điều này là một đặc trưng của nó, bởi trong SQLite, kiểu dữ liệu là một thuộc
tính của chính giá trị được lưu chứ không phải là thuộc tính của cột lưu giá trị đó.
Tuy vậy, cũng có một vài ràng buộc, là với cột khóa chính kiểu integer thì phải
lưu giá trị phải chính xác là kiểu int, ngoài ra SQLite cũng cố gắng chuyển đổi


kiểu của giá trị sang kiểu của cột lưu nó khi có thể. Mục đích của việc thiết kế
kiểu dữ liệu như vậy nhằm làm cho nó tin cậy và đơn giản hóa việc sử dụng, và
-

cũng để dễ tương thích hơn khi sử dụng với các ngôn ngữ như Tcl hoặc Python.
Variable-length records: Dữ liệu lưu bao nhiêu thì hệ thống cấp phát cho bấy
nhiêu không gian bộ nhớ cho từng dòng dữ liệu, không cấp phát thừa hoặc thiếu
không gian lưu trữ cho dữ liệu, nhờ đó mà file database trở nên nhỏ gọn và tốc độ
xử lý dữ liệu cũng nhanh hơn. [3]

2.2 Ngôn ngữ HTML
2.2.1 Cấu trúc chung của một trang HTML
HTML là chữ viết tắt của HyperText Markup Language, có nghĩa là ngôn ngữ
đánh dấu siêu văn bản. Nó dùng để định dạng bố cục, các thuộc tính liên quan đến cách

hiển thị của một đoạn text và được hiển thị trên một chương trình đặc biệc ta gọi là
Browser. Hiện nay có khá nhiều Browser như Firefox, Chrome, Cốc Cốc, ...Tất cả
Browser đều có điểm chung là giúp người dùng thao tác với website và nó đều có khả
năng biên dịch những đoạn mã HTML, CSS và Javascript. [4]
Thông thường bố cục HTML của một website có dạng như sau:

Hình 2.1 : Bố cục HTML cơ bản của một website

Trong đó:


-

<!DOCTYPE html> là phần khai báo kiểu dữ liệu hiển thị là html để trình

-

duyệt (Browser) biết.
<html> và </html> là cặp thẻ nằm ngoài cùng và nó có nhiệm vụ là bao hết nội

-

dung của trang web lại. Thẻ này là bắt buộc.
<head> và </head> là phần khai báo thông tin của trang web
<title> và </title> nằm bên trong thẻ <head> và đây chính là khai báo tiêu đề

-

cho trang web.
<body> và </body> là thành phần quan trọng nhất, nó chứa nhưng đoạn mã


-

HTML dùng để hiển thị trên website
Các thẻ còn lại nằm trong thẻ <body> chính là các thẻ định dạng dữ liệu.

Như vậy một website chúng ta chia thành 2 phần chính :
-

Phần 1: Là những khai báo thông tin cho trang web và ta đặt nó trong thẻ head.
Phần 2: Là phần hiển thị định dạng nội dung của trang web và ta đặt trong thẻ
body

Hình 2.2 : Hai phần cơ bản của một website.
2.2.2 Các thẻ HTML cơ bản
Các thẻ HTML định dạng văn bản thông dụng :
-

Thẻ
dùng để xuống hàng:


Hình 2.3 : Ví dụ về thẻ br
-

Thẻ < b> có tác dụng dùng để bôi đậm một đoạn văn bản:

Hình 2.4 : Ví dụ về thẻ b
-

Thẻ <i> có nghĩa là Italic, có tác dụng in nghiêng đoạn text.


Hình 2.5 : Ví dụ về thẻ i
Các thẻ định dạng Heading và List :

Hình 2.6 : Ví dụ về thẻ Heading


Hình 2.7 : Ví dụ về thẻ định dạng List
2.2.3 CSS
CSS là chữ viết tắt của cụm từ tiếng Anh "Cascading Style Sheet", nó là một ngôn
ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh
dấu (ví dụ như HTML). Có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng
các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS sẽ
giúp chúng ta có thể thêm một chút “phong cách” vào các phần tử HTML đó như đổi màu
sắc trang, đổi màu chữ, thay đổi cấu trúc,…rất nhiều. [5]
Có một ví dụ trực quan để diễn tả nhiệm vụ của CSS như sau, giả sử bạn xây nhà
và bạn sẽ sử dụng gạch để xây dựng ngôi nhà. Nhưng để trang trí cho ngôi nhà thì bạn sẽ
sử dụng một số đồ nội thất khác như sơn màu, ... thì lúc này sơn màu sẽ tác động làm
thay đổi color mặc định của gạch. Nói ví von thì màu sơn chính là CSS và gạch chính là
HTML.
CSS đóng một vai trò rất quan trọng khi bạn xây dựng giao diện website. Thông
thường bạn sẽ sử dụng một chương trình thiết kế như Photoshop để tạo giao diện, sau đó
các Frontend Developer sẽ dựa vào file đó kết hợp với HTML & CSS để convert thành
một file có đuôi mở rộng là .html, file này sẽ chứa code HTML và CSS.
CSS có nhiều kiểu nhưng gom lại thì chúng ta sẽ có các thể loại CSS thông dụng
như sau:
-

Background: CSS tùy chỉnh hình nền
Text: CSS tùy chỉnh cách hiển thị đoạn text

Font: CSS tùy chỉnh kích thước, kiểu chữ
Link: CSS tùy chỉnh link
List: CSS tùy chỉnh danh sách
Table: CSS tùy chỉnh bảng
Box model: Mô hình box model kết hợp padding, margin, border.
...

2.3 Framework Django


2.3.1 Giới thiệu
Django là một web framework miễn phí mã nguồn mở được viết bằng Python.
Django sử dụng mô hình Model-View-Control (MVC), được phát triển bởi Django
Software Foundation(DSF) – một tổ chức phi lợi nhuận độc lập. Nó không phải là một
micro-framework như Flask, mà là một framework với đầy đủ các thư viện, module hỗ
trợ các web-developer. [6]
Django được đưa vào sử dụng rộng rãi từ năm 2005, ban đầu là một framework
hướng đối tượng cho một website của tờ báo ở Kansas. Ngay lập tức framework này
được phổ biến và phát triển rất mạnh. Django rất thích hợp để xây dựng nên các trang
web lớn. Đó là lí do tại sao Django đang dần được phổ biến nhằm triển khai các dự án
một cách nhanh chóng với những quy mô lớn.

Hình 2.8 : Framework Django
2.3.2 Một số ưu điểm của Framework Django
-

Django được thiết kế với triết lý làm sao để các lập trình viên đưa các ý tưởng trở

-


thành một sản phẩm nhanh nhất có thể.
Có đầy đủ các thư viện/module cần thiết: Django có sẵn các thư viện về user
authentication, content admin, site maps, RSS feed, ...


-

Đảm bảo về tính bảo mật: Không còn các nỗi lo về các lỗi bảo mật thông thường
như SQL Injection, cross-site scripting, cross-site request forgery hay clickjacking

-

nữa. Django cũng cung cấp cả phương pháp để lưu mật khẩu an toàn nữa.
Khả năng mở rộng tốt: Django có thể đáp ứng lượng traffic lớn, nghĩa là bạn

-

không cần phải lo lắng về khả năng scale sản phẩm của mình nữa.
Tính linh hoạt: Xây dựng CMS, hoặc Ecommerce Website, hay kể cả Social
Network, Scientific Computing Platforms, tất cả đều có thể với Django.

2.3.3 Cấu trúc của một Django project
Để tạo một project Django thì bạn mở Command Prompt (cmd) lên và chuyển đến
thư mục mà bạn muốn tạo, sau đó gõ đoạn lệnh phía trên, ở trên chúng ta tạo một project
với tên là doan. Khi đặt tên project bạn tránh đặt những tên trùng với các từ khóa có sẵn
trong Python như sys, os, django…. để tránh bị xung đột.

Hình 2.9 : Tạo project Django
Lệnh startproject sẽ tạo một thư mục có tên là doan, cấu trúc bên trong thư mục sẽ
như thế này:


Hình 2.10 : Cấu trúc của một Django Project
Trong đó:
 doan/: ngoài cùng là root directory chứa project.


 manage.py: đây là 1 command-line utility cho phép mình thao tác với theo nhiều
cách với project hiện hành của mình
 doan/: bên trong là gói các package Python mình sẽ sử dụng cho project
 doan/__init__.py: là 1 file rỗng chỉ định việc cái đường dẫn này sẽ được xem như
là 1 Python package.
 doan/settings.py: Settings/configuration cho project Django
 doan/urls.py: khai báo URL cho project
 doan/wsgi.py: entry-point cho tích hợp web server WSGI


Chương 3 : PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Mô tả hệ thống
- Hệ thống website tổng hợp rao vặt là một hệ thống nhằm giúp cho mọi người tiếp
-

cận với việc rao vặt online một cách đơn giản và nhanh chóng nhất có thể.
Hệ thống còn giúp cho người sử dụng đăng tin lên các trang rao vặt khác mà
không cần vào từng trang để đăng tin.

3.2 Phân tích thành phần xử lý
Sau khi tiến hành phân tích những yêu cầu về mặt kỹ thuật cũng như những chức năng
cần thiết của một website rao vặt, nhóm tiến hành tổng hợp và đưa ra những chức năng
chính như sau:
-


Quản lý liên hệ: Xem, chỉnh sửa, xử lý thông tin liên hệ - phản hồi.
Quản lý tin rao vặt: Thêm, xóa, sửa dữ liệu rao vặt.
Quản trị hệ thống: Thêm, xóa, sửa quản trị viên website.

3.2.1 Quản trị hệ thống
-

Khi quản trị viên muốn thêm người quản lý website quản trị viên sẽ thêm admin
vào trong dữ liệu.

3.2.2 Quản lý tin rao vặt
-

Đăng nhập vào hệ thống quản trị.
Vào danh mục các tin đã đăng -> tiến hành thêm, sửa, xóa dữ liệu rao vặt.

3.2.3 Quản lý liên hệ
-

Khi người sử dụng gửi yêu cầu hỗ trợ vấn đề nào đó thì quản trị viên sẽ quản lý

-

thông tin liên hệ của khách hàng.
Quản trị viên sẽ xem và xử lý yêu cầu của khách hàng.
Sau khi xử lý xong yêu cầu liên hệ của người sử dụng, quản trị viên sẽ xóa thông
tin liên hệ đó đi.

3.3 Sơ đồ phân rã chức năng.



Kí hiệu sử dụng: Sử dụng hình chữ nhật để biểu diễn chức năng chi tiết của hệ thống.
Chức năng công việc cần làm và được phân theo từng mức từ tổng hợp đến chi tiết.

Tên chức năng
Mỗi chức năng được phân rã thành các chức năng con. Chức năng con có quan hệ phân
cấp với chức năng cha. Có 2 loại phân cấp là phân cấp dọc và phân cấp ngang. Các phân
cấp này có ý nghĩa tương đương nhau, các chức năng ở trên cùng một mức có tầm quan
trọng như nhau.
Biểu diễn:

Biểu đồ phân cấp:


3.4 Xây dựng mô hình dòng dữ liệu (Data Flow Diagram – DFD)
Mô hình chức năng chưa biểu diễn khía cạnh dữ liệu của hệ thống. Dữ liệu là một mặt rất
quan trọng của các hệ thống tin học
Mô hình dòng dữ liệu (Data Flow Diagram – DFD) chỉ ra:
-

Dữ liệu vào ra của các chức năng
Luồng trao đổi dữ liệu giữa các chức năng

DFD – Các khái niệm:
-

Ô xử lý: Một hoạt động bên trong hệ thống.



-

Luồng dữ liệu: Sự chuyển đổi thông tin giữa các thành phần.

-

Kho dữ liệu: Vùng

chứa dữ liệu, lưu thông tin hệ

thống.
-

Thực thể ngoài: Một đối tượng tương tác với hệ thống.
Nhân viên

Mô hình DFD mức ngữ cảnh: mô tả hệ thống ở mặt tổng thể

3.5 Phân tích thành phần dữ liệu
3.5.1 Xác định các thực thể thuộc tính


Thực thể: ADMIN
-

Thuộc tính: username, password, hoten, email, permission, date_join,

Thực thể: POST_ARTICLE
-


Thuộc tính: post_id, post_title, post_location, post_category, post_status,
post_needs,

post_price,

post_content,

post_tudomuaban_link

,

post_raovat113_link , post_canmuaban_link, post_name , post_email, post_phone.
3.5.2 Mô hình ERD
3.5.2.1 Biểu diễn các thực thể

3.5.2.2 Biểu diễn các quan hệ
Quan hệ một – một (bắt buộc):

Quan hệ một – nhiều:


Quan hệ một – nhiều (bắt buộc):
.

3.5.2.3 Biểu diễn mô hình ERD


Chương 4 : TRIỂN KHAI WEBSITE
4.1 Triển khai website
Đầu tiên là việc lựa chọn website rao vặt, với tiêu chí tạo sự thoải mãi cho người

sử dụng, nhóm em sẽ không lựa chọn những website như: yêu cầu xác nhận rao vặt qua
điện thoại, thu phí mỗi lần rao vặt. Những website mà nhóm lựa chọn sẽ gồm có website
rao vặt không cần tài khoản và cần tài khoản đăng nhập. Trong đó gồm có:
tudomuaban.com, raovat113.com, canmuaban.vn, đều là những website có lượng thông
tin rao vặt hàng ngày lớn. Các phần chính trong việc triển khai website:
-

Theo vết thông tin rao vặt khi một người dùng rao vặt ở các website trên: 2
phương thức hoạt động chính của một website là: POST và GET dữ liệu đến Web
– Server của website, sau đó Server sẽ xử lý và trả về dữ liệu và Brower hiển thị
cho người dùng.
o Sử dụng công cụ Inspect của Browers, chuyển qua mục Network và theo
dõi các method POST, GET. Thao tác từng bước rao vặt trên một website
và ghi chú lại những thông tin cần thiết như: Responsive Headers, Request
Headers, Form Data(dữ liệu mà ta nhập).
o Từ thông tin có được, đặc biệt là trong phần Form Data(cấu trúc dữ liệu gửi
lên Web – Server của website) và thông tin view-source website ở mục


thông tin lựa chọn, ta biết được các dữ liệu đó tương ứng với gì(đã số dữ
liệu trong Form Data là số, như category_id, location_id). Ví dụ theo vết:
 Giao diện rao vặt: Ta điền thông tin như trên, chọn danh mục là
“Điện thoại – sim số”

 view-source website: Ta thấy danh mục “Điện thoại – sim số” có
data_id = 2

 POST data đã gửi đi: Có các cặp key – value sau:
o fSubject(Tiêu đề): Bán điện thoại
o fCategory(Danh mục): 2(chính là data_id của danh mục trong

view – source) – tương ứng mục với “Điện thoại – sim số”
o fLocation(Thanh phố): 2(data_id của thành phố trong view –
source) – tương ứng với “Hồ Chí Minh”
o fContent: Nội dung của tin rao


×