Do đó, em chọn phát triển đề tài: “Xây dựngwebsite chợ mua bán, trao đổi đồ cũ ”, mong muốn có thể giúp mọi người vừa có thểmua bán, vừa có thể trao đổi đồ cũ ngang hàng với nhau một các
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 2Đà Nẵng, tháng 06/2022
Trang 3ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Đà Nẵng, ngày 20 tháng 06 năm 2022
Giảng viên hướng dẫn
i
Trang 5NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Đà Nẵng, ngày 25 tháng 06 năm 2022
Giảng viên phản biện
ii
Trang 6TÓM TẮT
Tên đề tài: Xây dựng website mua bán, trao đổi đồ cũ
Sinh viên thực hiện: Nguyễn Văn Hiệp
Mã SV: 1811505310412 Lớp: 18T4
Hiện nay, các hình thức tái sử dụng và giảm thiểu lượng rác thải đã trở thành một
mô hình kinh doanh mang lại lợi nhuận cho nhiều doanh nghiệp Trong đó, xu hướng
sử dụng đồ cũ đang được yêu thích tại nhiều quốc gia Cùng với xu hướng sử dụngchất liệu bền vững, dùng đồ cũ, đồ secondhand cũng là một cách bảo vệ môi trườngthông qua việc giảm rác thải tiêu dùng Để giải quyết vấn đề này, nhiều trung tâm muabán đồ cũ và các vật dụng secondhand được thành lập Tuy nhiên, hầu hết những trungtâm này đều tập trung vào việc mua bán đồ cũ bằng tiền mặt, nếu những người muốnđổi từ đồ cũ của mình sang đồ cũ của người khác thì cần phải bán ra tiền mặt rồi mớidùng tiền mặt để mua lại đồ khác Do đó, em chọn phát triển đề tài: “Xây dựngwebsite chợ mua bán, trao đổi đồ cũ ”, mong muốn có thể giúp mọi người vừa có thểmua bán, vừa có thể trao đổi đồ cũ ngang hàng với nhau một cách dễ dàng và an toànnhất
Bài báo cáo ngoài các nội dung gồm phần mở đầu và kết thì có bố cục 3 chương:CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Chương này trình bày tổng quan về việc sử dụng các phần mềm hỗ trợ xây dựngwebsite, các công cụ thường xuyên sử dụng để xây dựng nền tảng cho bài toán Mô tảmột số công nghệ mới hỗ trợ phát triển website
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Chương này trình bày một hướng tiếp cận trong việc phân tích hệ thống Trìnhbày những hướng chức năng cơ bản cho người dùng, sơ đồ cơ sở dữ liệu…
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
Trên cơ sở tìm hiểu và phân tích bài toán liên quan, đặc biệt là các chức năng hệthống Từ các phân tích hệ thống và dữ liệu có được, website được triển khai và cậpnhật
iii
Trang 7TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ
Giảng viên hướng dẫn: Ths Trần Bửu Dung
Sinh viên thực hiện: Nguyễn Văn Hiệp Mã SV: 1811505310412
1 Tên đề tài: Xây dựng website chợ mua bán, trao đổi đồ cũ.
2 Các số liệu, tài liệu ban đầu:
- Tài liệu về JavaScript, công nghệ NodeJS, ReactJS, MongoDB
- Tham khảo một số trang web về mua bán đồ cũ, chức năng, số liệu củanhững trang web đó
3 Nội dung chính của đồ án:
- Chương 1: Cơ sở lý thuyết
- Chương 2: Phân tích thiết kế hệ thống
- Chương 3: Xây dựng chương trình
- Kết luận và hướng phát triển
Trang 8LỜI NÓI ĐẦU
Đề tài: “Xây dựng website chợ mua bán, trao đổi đồ cũ” được thực hiện bởi em làNguyễn Văn Hiệp dưới sự hướng dẫn, giúp đỡ tận tình của cô Trần Bửu Dung Sảnphẩm là thành quả, công sức và là sự cố gắng trong dạy và học, tìm tòi, sáng tạo củathầy/cô và em trong quá trình xây dựng và phát triển đồ án
Qua đây, em xin tỏ lòng biết ơn sâu sắc đến cô Trần Bửu Dung đã tận tình hướngdẫn, giúp đỡ nhóm trong suốt quá trình làm đồ án tốt nghiệp
Em xin chân thành cảm ơn quý thầy cô toàn trường nói chung và quý thầy côtrong Bộ môn Công nghệ thông tin nói riêng đã tận tình, tâm huyết truyền đạt nhữngkiến thức, những kỹ năng cho em trong suốt quá trình học tập tại trường Với vốn kiếnthức được tiếp thu trong quá trình học tập không chỉ là nền tảng để hoàn thành đồ ántốt nghiệp này mà còn là hành trang quý báu để chúng em bước vào đời, làm việc vớidoanh nghiệp một cách vững chắc và tự tin
Sau cùng, em xin kính chúc quý thầy cô luôn dồi dào sức khoẻ, luôn tâm huyết
để tiếp tục thực hiện sứ mệnh cao đẹp của mình là dẫn dắt, truyền đạt kiến thức chonhững thế hệ mai sau Em cũng như tất cả các bạn của khoa Công nghệ số rất tự hào
và vinh hạnh khi được làm học trò của quý thầy cô, khi được là sinh viên của Đại học
Sư phạm Kỹ thuật – Đại học Đà Nẵng
Em xin chân thành cảm ơn!
v
Trang 9Sinh viên thực hiện
vi
Trang 10MỤC LỤC
MỤC LỤC vii
DANH MỤC BẢNG BIỂU xi
DANH MỤC HÌNH VẼ xii
MỞ ĐẦU 1
1 Tổng quan 1
2 Lý do chọn đề tài 1
3 Mục tiêu đề tài 1
4 Đối tượng nghiên cứu và phạm vi nghiên cứu 2
a Đối tượng nghiên cứu 2
b Phạm vi nghiên cứu 2
5 Phương pháp nghiên cứu 2
6 Giải pháp công nghệ 2
7 Cấu trúc đồ án 2
Chương 1 CƠ SỞ LÝ THUYẾT 3
1.1 Phần mềm 3
1.1.1 Visual Studio Code 3
1.1.2 Postman 4
1.1.3 MongoDB Compass 5
1.1.4 StarUML 6
1.2 Công nghệ 7
1.2.1 ReactJs 7
1.2.2 NodeJs 8
1.2.3 MongoDB 10
vii
Trang 11Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 11
2.1 Phân tích đối tượng sử dụng hệ thống 11
2.1.1 Khách vãng lai 11
2.1.2 Thành viên 11
2.1.3 Người vận chuyển 11
2.1.4 Quản trị hệ thống 11
2.2 Phân tích các chức năng 12
2.2.1 Đăng ký 12
2.2.2 Đăng nhập 12
2.2.3 Lọc/ Sắp Xếp/ Tìm kiếm 12
2.2.4 Cập nhật thông tin cá nhân 12
2.2.5 Đăng bài viết mới 12
2.2.6 Cập nhật bài viết 13
2.2.7 Gửi yêu cầu trao đổi 13
2.2.8 Cập nhật phương thức giao dịch 13
2.2.9 Cập nhật trạng thái đơn vận chuyển 13
2.2.10 Quản lý tài khoản 13
2.2.11 Quản lí bài viết 13
2.2.12 Cập nhật loại đồ 13
2.2.13 Quản lý đơn vận chuyển 13
2.3 Sơ đồ UseCase 14
2.3.1 Danh sách các Actor và hành động của từng Actor 14
2.3.2 Sơ đồ UseCase của hệ thống 15
2.4 Sơ đồ quan hệ 16
2.5 Thiết kế cơ sở dữ liệu 16
viii
Trang 122.5.1 Bảng user (Người dùng) 16
2.5.2 Bảng role (vai trò) 17
2.5.3 Bảng post (Bài viết) 17
2.5.4 Bảng post_status (Trạng thái bài viết) 18
2.5.5 Bảng categories (Loại đồ) 18
2.5.6 Bảng transaction (Giao dịch) 18
2.5.7 Bảng transaction_status (Trạng thái giao dịch) 19
2.5.8 Bảng method (Phương thức trao đổi) 19
2.5.9 Bảng delivery (Vận chuyển) 20
2.5.10 Bảng delivery_status (Trạng thái của đơn vận chuyển) 20
2.5.11 Bảng notification (Thông báo) 21
2.5.12 Bảng conversation (Cuộc hội thoại) 21
2.5.13 Bảng members (Thành viên trong một cuộc hội thoại) 21
2.5.14 Bảng message (Đoạn tin nhắn của thành viên trong cuộc hội thoại) 22
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 23
3.1 Công cụ xây dựng chương trình 23
3.2 Giao diện chương trình 23
3.2.1 Màn hình đăng ký 23
3.2.2 Màn hình đăng nhập 24
3.2.3 Màn hình sau khi đăng nhập thành công 24
3.2.4 Tab cập nhật thông tin cá nhân 24
3.2.5 Đăng bài viết mới 25
3.2.6 Tab bài viết 25
3.2.7 Màn hình danh sách các món đồ 27
ix
Trang 133.2.8 Màn hình chi tiết từng món đồ 27
3.2.9 Tab yêu cầu 30
3.2.10 Tab giao dịch 30
3.2.11 Tab vận chuyển 32
3.2.12 Màn hình trò chuyện 33
3.2.13 Màn hình trang thông tin cá nhân 34
3.2.14 Màn hình thông báo 35
3.2.15 Màn hình thống kê 36
3.2.16 Màn hình báo cáo 39
3.2.17 Màn hình quản lý thành viên 40
3.2.18 Màn hình quản lý bài đăng 41
3.2.19 Màn hình quản lý giao dịch 41
3.2.20 Màn hình quản lý đơn vận chuyển 42
3.2.21 Màn hình quản lý loại đồ 42
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 43
1 Kết luận 43
2 Hướng phát triển 43
TÀI LIỆU THAM KHẢO 44
x
Trang 14DANH MỤC BẢNG BIỂU
Bảng 2-1 Bảng Actor và hành động của Actor 14
Bảng 2-2 Bảng user 16
Bảng 2-3 Bảng role 17
Bảng 2-4 Bảng post 17
Bảng 2-5 Bảng post_status 18
Bảng 2-6 Bảng categories 18
Bảng 2-7 Bảng transaction 19
Bảng 2-8 Bảng transaction_status 19
Bảng 2-9 Bảng method 20
Bảng 2-10 Bảng delivery 20
Bảng 2-11 Bảng delivery_status 20
Bảng 2-12 Bảng notification 21
Bảng 2-13 Bảng conversation 21
Bảng 2-14 Bảng members 21
Bảng 2-15 Bảng message 22
xi
Trang 15DANH MỤC HÌNH VẼ
Hình 1-1 Giao diện Visual Studio Code 3
Hình 1-2 Giao diện Postman 4
Hình 1-3 Giao diện Mongo Compass 5
Hình 1-4 Giao diện chính của StarUML 6
Hình 1-5 Minh hoạ ReactJs 7
Hình 1-6 Minh hoạ NodeJs 9
Hình 2-1 Sơ đồ UseCase 15
Hình 2-2 Sơ đồ quan hệ 16
Hình 3-1 Màn hình đăng ký (Khách vãng lai) 23
Hình 3-2 Màn hình đăng nhập (Khách vãng lai) 24
Hình 3-3 Sau khi đăng nhập (Thành viên) 24
Hình 3-4 Tab Thông tin cá nhân (Thành viên) 25
Hình 3-5 Đăng bài viết mới (Thành viên) 25
Hình 3-6 Tab bài viết chưa duyệt (Thành viên) 26
Hình 3-7 Tab bài viết đã duyệt (Thành viên) 26
Hình 3-8 Màn hình danh sách các món đồ 27
Hình 3-9 Tab Thông tin chi tiết món đồ (Thành viên/ Khách vãng lai) 27
Hình 3-10 Tab yêu những cầu gửi đến món đồ đó(1) (Thành viên) 28
Hình 3-11 Tab gửi yêu cầu đến món đồ đó(2) (Thành viên) 28
Hình 3-12 Tab gửi yêu cầu đến món đồ đó(3) (Thành viên) 29
Hình 3-13 Tab gửi yêu cầu đến món đồ đó(4) (Khách vãng lai) 29
Hình 3-14 Tab gửi yêu cầu đến món đồ đó(5) (Thành viên/ Chủ món đồ) 30
Hình 3-15 Tab yêu cầu đã gửi đi (Thành viên) 30
Hình 3-16 Tab giao dịch(1) (Thành viên) 31
Hình 3-17 Tab giao dịch(2) (Thành viên) 31
Hình 3-18 Tab giao dịch(3) (Thành viên) 32
xii
Trang 16Hình 3-19 Tab vận chuyển (Thành viên) 32
Hình 3-20 Màn hình trò chuyện(1) (Thành viên) 33
Hình 3-21 Màn hình trò chuyện(2) (Thành viên) 33
Hình 3-22 Màn hình trang thông tin cá nhân(1) (Thành viên/Đang giao dịch) 34
Hình 3-23 Màn hình trang thông tin cá nhân(1) (Thành viên/Khách vãng lai) 34
Hình 3-24 Màn hình thông báo (Thành viên) 35
Hình 3-25 Thông báo qua email (Thành viên) 35
Hình 3-26 Màn hình thống kê(1) (Admin) 36
Hình 3-27 Màn hình thống kê(2) (Admin) 36
Hình 3-28 Màn hình thống kê(3) (Admin) 37
Hình 3-29 Màn hình thống kê(4) (Admin) 37
Hình 3-30 Màn hình thống kê(5) (Admin) 38
Hình 3-31 Màn hình báo cáo(1) (Admin) 39
Hình 3-32 Màn hình báo cáo(2) (Admin) 40
Hình 3-33 Màn hình quản lý thành viên (Admin) 40
Hình 3-34 Màn hình quản lý bài đăng (Admin) 41
Hình 3-35 Màn hình quản lý giao dịch (Admin) 41
Hình 3-36 Màn hình quản lý đơn vận chuyển (Admin) 42
Hình 3-37 Màn hình quản lý loại đồ (Admin) 42
xiii
Trang 17Xây dựng website chợ mua bán, trao đổi đồ cũ
MỞ ĐẦU
1 Tổng quan
Website chodoido.vn là cầu nối giữa những người có nhu cầu mua bán, trao đổi
đồ cũ Giúp các thành viên có thể mua bán, trao đổi bất kỳ món đồ nào mà mình đang
sở hữu Mỗi thành viên chỉ việc đăng món đồ của mình lên chodoido.vn và khi cóthành viên khác gửi yêu cầu đến, nếu chấp nhận yêu cầu đó thì cả hai cần thống nhấtviệc tự trao đổi hay trao đổi qua trung gian của chodoido.vn Nếu tự trao đổi, thì giaodịch đó sẽ xem như hoàn thành, còn qua trung gian sẽ có bên vận chuyển đến địa chỉnhận hàng, kiểm tra và xác nhận khi vận chuyển thành công
Với tiêu chí “Cũ người mới ta”, những món đồ cũ có thể bạn không cần nhưng
người cần mua bán, trao đổi đồ với nhau một cách nhanh chóng và tiết kiệm nhất.Ngoài ra các đồ vật cũ được tái sử dụng chính là chúng ta đã chung tay giảm thải ramôi trường, góp phần bảo vệ môi trường sống xanh – sạch – đẹp
2 Lý do chọn đề tài
Hiện nay, các hình thức tái sử dụng và giảm thiểu lượng rác thải đã trở thànhmột mô hình kinh doanh mang lại lợi nhuận cho nhiều doanh nghiệp Trong đó, xuhướng sử dụng đồ cũ đang được yêu thích tại nhiều quốc gia Cùng với xu hướng sửdụng chất liệu bền vững, dùng đồ cũ, đồ secondhand cũng là một cách bảo vệ môitrường thông qua việc giảm rác thải tiêu dùng Để giải quyết vấn đề này, nhiều trungtâm mua bán đồ cũ và các vật dụng secondhand được thành lập Tuy nhiên, hầu hếtnhững trung tâm này đều tập trung vào việc mua bán đồ cũ bằng tiền mặt, nếu nhữngngười muốn đổi từ đồ cũ của mình sang đồ cũ của người khác thì cần phải bán ra tiềnmặt rồi mới dùng tiền mặt để mua lại đồ khác Do đó, em chọn phát triển đề tài: “Xâydựng website chợ mua bán, trao đổi đồ cũ ”, mong muốn có thể giúp mọi người có thểmua bán, trao đổi đồ cũ ngang hàng với nhau một cách dễ dàng và an toàn nhất
3 Mục tiêu đề tài
Xây dựng website làm cầu nối giữa những người có nhu cầu mua bán, trao đổi đồ
cũ Giúp các thành viên có thể mua bán, trao đổi bất kỳ món đồ nào mà mình đang sởhữu bằng cách đăng món đồ của mình và chấp nhận những yêu cầu của người khác
Từ đó, giúp tái sử dụng những đồ vật cũ, góp phần bảo vệ môi trường
Trang 18Xây dựng website chợ mua bán, trao đổi đồ cũ
4 Đối tượng nghiên cứu và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Đối tượng nghiên cứu là những người có nhu cầu mua bán, trao đổi đồ cũ
b Phạm vi nghiên cứu
Phạm vi nghiên cứu trong lãnh thổ Việt Nam
5 Phương pháp nghiên cứu
Đề tài nghiên cứu bằng các phương pháp sau
- Khảo sát thực tế và tham khảo các tài liệu trên mạng
- Lên ý tưởng cho hệ thống
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Chương này trình bày một hướng tiếp cận trong việc phân tích hệ thống Trìnhbày những hướng chức năng cơ bản cho người dùng, sơ đồ cơ sở dữ liệu…
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH
Trên cơ sở tìm hiểu và phân tích bài toán liên quan, đặc biệt là các chức năng hệthống Từ các phân tích hệ thống và dữ liệu có được, website được triển khai và cậpnhật
Trang 19Xây dựng website chợ mua bán, trao đổi đồ cũ
Chương 1
CƠ SỞ LÝ THUYẾT
1.1 Phần mềm
1.1.1 Visual Studio Code
Visual Studio Code là một trong những trình soạn thảo mã nguồn phổ biến nhấthiện nay được sử dụng bởi các lập trình viên Nhanh, nhẹ, hỗ trợ đa nền tảng, nhiềutính năng và là mã nguồn mở chính là những ưu điểm vượt trội khiến Visual StudioCode ngày càng chứng tỏ ưu thế vượt trội của mình so với những phần mềm khác vàđược ứng dụng rộng rãi
Hình 1-1 Giao diện Visual Studio CodeVisual Studio Code hỗ trợ chức năng Debug, đi kèm với Git, có SyntaxHighlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn Nhờ tínhnăng tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi Theme, phímtắt, và các tùy chọn khác
Một số tính năng vượt trội của Visual Studio Code:
- Hỗ trợ nhiều ngôn ngữ lập trình
- Hỗ trợ đa nền tảng
- Cung cấp kho tiện ích mở rộng
Trang 20Xây dựng website chợ mua bán, trao đổi đồ cũ
- Kho lưu trữ an toàn
- Hỗ trợ web
- Lưu trữ dữ liệu dưới dạng phân cấp
- Hỗ trợ nhắc Code
- Hỗ trợ thiết bị đầu cuối
- Intellisense chuyên nghiệp
Postman có sẵn nhiều phiên bản cho các hệ điều hành và môi trường khác nhau
Đó cùng là điểm khiến nó trở nên phổ biến hơn
Postman hỗ trợ tất cả các phương thức HTTP (GET, POST, PUT, PATCH,DELETE, …) Bên cạnh đó, nó còn cho phép lưu lại lịch sử các lần request, rất tiệncho việc sử dụng lại khi cần
Hình 1-2 Giao diện Postman
Trang 21Xây dựng website chợ mua bán, trao đổi đồ cũ
Những lợi ích khi sử dụng Postman:
- Sử dụng Collections (Bộ sưu tập) – Postman cho phép người dùng tạo bộ sưutập cho các lệnh gọi API của họ Mỗi bộ sưu tập có thể tạo các thư mục con
và nhiều yêu cầu (request) Điều này giúp việc tổ chức các bộ thử nghiệm
- Collaboration – Collections và environment có thể được import hoặc exportgiúp chia sẻ tệp dễ dàng
- API Testing – Test trạng thái phản hồi HTTP
- Gỡ lỗi – Bảng điều khiển Postman giúp kiểm tra dữ liệu nào đã được truyxuất giúp dễ dàng gỡ lỗi kiểm tra
ưu hóa hiệu suất, quản lý chỉ mục và triển khai xác thực Document
Hình 1-3 Giao diện Mongo Compass
Trang 22Xây dựng website chợ mua bán, trao đổi đồ cũ
1.1.4 StarUML
Là một mô hình nền tảng, là phần mềm hỗ trợ UML (Unified Modeling Language)
Nó hỗ trợ các phương pháp tiếp cận MDA (Model Driven Architecture) bằng cách hỗtrợ các khái niệm hồ sơ UML Tức là StarUML hỗ trợ phân tích và thiết kế hệ thốngmột điều mà bất cứ dự án nào đều cần có
Hình 1-4 Giao diện chính của StarUML
Ngoài ra dùng StarUML sẽ đảm bảo tối đa hóa năng suất và chất lượng của các dự
án phần mềm của bạn Vì nó cho phép mô hình hóa nên sẽ không phụ thuộc vào ngườicode, ngôn ngữ code hay nền tảng sử dụng Do mô hình hóa nên rất dễ đọc và dễ hiểu.Một điều mình thích nhất ở StarUML là khả năng tự sinh code từ những mô hình class
Trang 23Xây dựng website chợ mua bán, trao đổi đồ cũ
1.2 Công nghệ
1.2.1 ReactJs
Hình 1-5 Minh hoạ ReactJs
ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giaodiện người dùng hay UI Trong lập trình front-end, lập trình viên thường sẽ phải làmviệc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng
Ưu điểm:
- Reactjs cực kì hiệu quả: Reactjs tạo ra cho chính nó DOM ảo – nơi mà cáccomponent thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rấtnhiều Reactjs cũng tính toán những thay đổi nào cần cập nhật len DOM và chỉthực hiện chúng Điều này giúp Reactjs tránh những thao tác cần trên DOM mànhiều chi phí
- Reactjs giúp việc viết các đoạn code JS dễ dàng hơn: Nó dung cú pháp đặc biệt
là JSX (Javascript mở rộng) cho phép ta trộn giữa code HTML và Javascript Ta
có thể them vào các đoạn HTML vào trong hàm render mà không cần phải nốichuỗi Đây là đặc tính thú vị của Reactjs Nó sẽ chuyển đổi các đoạn HTMLthành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX
- Nó có nhiều công cụ phát triển: Khi bạn bắt đầu Reactjs, đừng quên cài đặt ứngdụng mở rộng của Chrome dành cho Reactjs Nó giúp bạn debug code dễ dànghơn Sau khi bạn cài đặt ứng dụng này, bạn sẽ có cái nhìn trực tiếp vào virtualDOM như thể bạn đang xem cây DOM thông thường
Trang 24Xây dựng website chợ mua bán, trao đổi đồ cũ
- Render tầng server: Một trong những vấn đề với các ứng dụng đơn trang là tối
ưu SEO và thời gian tải trang Nếu tất cả việc xây dựng và hiển thị trang đềuthực hiện ở client, thì người dung sẽ phải chờ cho trang được khởi tạo và hiển thịlên Điều này thực tế là chậm Hoặc nếu giả sử người dung vô hiệu hóaJavascript thì sao? Reactjs là một thư viện component, nó có thể vừa render ởngoài trình duyệt sử dụng DOM và cũng có thể render bằng các chuỗi HTML
mà server trả về
- Làm việc với vấn đề test giao diện: Nó cực kì dễ để viết các test case giao diện
vì virtual DOM được cài đặt hoàn toàn bằng JS
- Hiệu năng cao đối với các ứng dụng có dữ liệu thay đổi liên tục, dễ dàng chobảo trì và sửa lỗi
Nhược điểm:
- Reactjs chỉ phục vụ cho tầng View React chỉ là View Library nó không phải làmột MVC framework như những framework khác Đây chỉ là thư viện củaFacebook giúp render ra phần view Vì thế React sẽ không có phần Model vàController, mà phải kết hợp với các thư viện khác React cũng sẽ không có 2-way binding hay là Ajax
- Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấuhình lại
- React khá nặng nếu so với các framework khác React có kích thước tươngtương với Angular (Khoảng 35kb so với 39kb của Angular) Trong khi đóAngular là một framework hoàn chỉnh
- Khó tiếp cận cho người mới học Web
1.2.2 NodeJs
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine,
nó được sử dụng để xây dựng các ứng dụng web như các trang video clip, các forum
và đặc biệt là trang mạng xã hội phạm vi hẹp NodeJS là một mã nguồn mở được sửdụng rộng bởi hàng ngàn lập trình viên trên toàn thế giới
Trang 25Xây dựng website chợ mua bán, trao đổi đồ cũ
Hình 1-6 Minh hoạ NodeJsNodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Window cho tớiLinux, MacOS nên đó cũng là một lợi thế NodeJS cung cấp các thư viện phong phú ởdạng Javascript Module khác nhau giúp đơn giản hóa việc lập trình và giảm thời gian
ở mức thấp nhất
Các đặc tính của NodeJS:
- Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ blocking), nó chủ yếu dựa trên nền của NodeJS Server và chờ đợi Server trả dữliệu về Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chếthông báo các sự kiện của Node.js giúp máy chủ để có được một phản ứng từcác cuộc gọi API trước
(none Chạy rất nhanh: NodeJS được xây dựng dựa vào nền tảng V8 Javascript Enginenên việc thực thi chương trình rất nhanh
- Đơn luồng nhưng khả năng mở rộng cao: NodeJS sử dụng một mô hình luồngduy nhất với sự kiện lặp Cơ chế tổ chức sự kiện giúp các máy chủ để đáp ứngmột cách không ngăn chặn và làm cho máy chủ cao khả năng mở rộng như tráingược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.NodeJS sử dụng một chương trình đơn luồng và các chương trình tương tự cóthể cung cấp dịch vụ cho một số lượng lớn hơn nhiều so với yêu cầu máy chủtruyền thống như Apache HTTP Server
- Không đệm: NodeJS không đệm bất kì một dữ liệu nào và các ứng dụng nàychủ yếu là đầu ra dữ liệu
- Có giấy phép: NodeJS đã được cấp giấy phép bởi MIT License
Trang 26Xây dựng website chợ mua bán, trao đổi đồ cũ
1.2.3 MongoDB
MongoDB là một database hướng tài liệu (document), một dạng NoSQL database
Vì thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứngvới các tài liệu như JSON có một schema rất linh hoạt gọi là BSON MongoDB sửdụng lưu trữ dữ liệu dưới dạng Document JSON nên mỗi một collection sẽ các cáckích cỡ và các document khác nhau Các dữ liệu được lưu trữ trong document kiểuJSON nên truy vấn sẽ rất nhanh
- Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng
- Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộnhớ RAM lớn
- Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức
vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao
Trang 27Xây dựng website chợ mua bán, trao đổi đồ cũ
Chương 2
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Phân tích đối tượng sử dụng hệ thống
Chodoido.vn gồm những đối tượng sử dụng như sau:
2.1.3 Người vận chuyển
Khi có giao dịch nào cần vận chuyển qua trung gian, đơn giao dịch sẽ xuất hiệntrên giao diện của người vận chuyển, Người vận chuyển sẽ liên hệ và xác nhận rồi tiếnhành vận chuyển cho cả hai
Trang 28Xây dựng website chợ mua bán, trao đổi đồ cũ
2.2.4 Cập nhật thông tin cá nhân
Cập nhật thông tin cá nhân đầy đủ để người khác có thể liên lạc cũng như hệthống sẽ gửi thông báo qua email khi yêu cầu người dùng được chấp nhận
Gồm những trường dữ liệu sau:
2.2.5 Đăng bài viết mới
Thành viên có thể đăng bài viết mới, cần cung cấp đủ các trường dữ liệu:
- Tên bài viết
- Mô tả về món đồ
Trang 29Xây dựng website chợ mua bán, trao đổi đồ cũ
2.2.7 Gửi yêu cầu trao đổi
Thành viên có thể gửi yêu cầu trao đổi sau khi vào xem trang chi tiết của mộtbài đăng nào đó Nếu vào những bài đăng đã có gửi yêu cầu đến đồ của bạn trước đó,yêu cầu của họ cũng sẽ được hiển thị
2.2.8 Cập nhật phương thức giao dịch
Chọn một trong hai phương thức là tự trao đổi hoặc trung gian để tiếp tục quátrình trao đổi
2.2.9 Cập nhật trạng thái đơn vận chuyển
Người vận chuyển sẽ liên hệ và xác nhận rồi tiến hành vận chuyển cho cả hai,rồi cập nhật trạng thái vận chuyển (chờ xác nhận, chờ lấy hàng , đang giao , đã giao,
đã huỷ)
2.2.10 Quản lý tài khoản
Quản trị hệ thống của tất cả thành viên hệ thống, có thể chặn thành viên hoạtđộng, nhắn tin qua chat với thành viên, cập nhật vai trò cho thành viên
2.2.11 Quản lí bài viết
Quản trị hệ thống quản lý tất cả cả bài viết được đăng lên(duyệt hay từ chối)
2.2.12 Cập nhật loại đồ
Quản trị hệ thống cập nhật danh sách loại đồ (người dùng chọn loại đồ trongdanh sách này trong chức năng đăng bài viết
2.2.13 Quản lý đơn vận chuyển
Xuất báo cáo thống kê theo khoảng thời gian (hôm nay, 3 ngày , 7 ngày, 1tháng, năm)
Trang 30Xây dựng website chợ mua bán, trao đổi đồ cũ
2.3 Sơ đồ UseCase
2.3.1 Danh sách các Actor và hành động của từng Actor
Khách vãng lai
- Đăng ký tài khoản
- Xem bài đăng
- Lọc/ Sắp Xếp tìm kiếm bài đăng
- Xuất báo cáo
- Cập nhật tài khoản thành viên
- Cập nhật loại đồBảng 2-1 Bảng Actor và hành động của Actor