Song kết hợp những kiến thức từ trước và nhiều môn học của kì này, chúng em quyết định xây dựng một sản phẩm đa nền tảng có thể chạy trên ứng dụng di động và trang web nhằm giải quyết nh
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 1
XÂY DỰNG HỆ THỐNG ĐA NỀN TẢNG
BÁN HÀNG TRỰC TUYẾN
Sinh viên thực hiện: Trương Huy Hoàng 20IT811
Nguyễn Thị Thùy Trang 20IT800
Giảng viên hướng dẫn: TS Nguyễn Thu Hương
Đà Nẵng, 01 tháng 5 năm 2023
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN &
TRUYỀN THÔNG VIỆT HÀN
Khoa Khoa Học Máy Tính
ĐỒ ÁN CHUYÊN NGÀNH 1
XÂY DỰNG HỆ THỐNG ĐA NỀN TẢNG
BÁN HÀNG TRỰC TUYẾN
Sinh viên thực hiện: Trương Huy Hoàng 20IT811
Nguyễn Thị Thùy Trang 20IT800
Giảng viên hướng dẫn: TS Nguyễn Thu Hương
Đà Nẵng, 01 tháng 5 năm 2023
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Đà Nẵng 01 tháng 5 năm 2023
Trang 4LỜI CẢM ƠN
Đồ án này được hoàn thành tại trường Đại học Công nghệ thông tin và Truyền thôngViệt Hàn Trong quá trình học tập và hoàn thành đồ án chúng em đã nhận được rất nhiều
sự giúp đỡ, vì vậy chúng em muốn viết lời cảm ơn này đến:
Chúng em xin gửi lời cảm ơn chân thành tới thầy cô trường Đại học Công nghệthông tin và Truyền thông Việt Hàn đã giảng dạy cho chúng em thời gian qua Đặc biệt
là TS.Nguyễn Thu Hương là người trực tiếp chỉ bảo và hướng dẫn chúng em hoàn thành
Trang 5MỤC LỤC
DANH SÁCH CÁC TỪ VIẾT TẮT i
DANH MỤC HÌNH ẢNH ii
DANH MỤC BẢNG iii
MỞ ĐẦU 1
1 Giới thiệu 1
2 Mục tiêu của đề tài 2
3 Nội dung và kế hoạch thực hiện 2
4 Bố cục báo cáo 2
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 4
1 Tìm hiểu về các ngôn ngữ lập trình 4
1.1 Ngôn ngữ lập trình HTML 4
1.2 Ngôn ngữ CSS 4
1.3 Ngôn ngữ lập trình PHP 5
1.4 Ngôn ngữ lập trình Javascript 5
1.5 Framework Vue.js 6
1.6 Framework Flutter 6
1.7 Nền tảng Node.js 8
1.8 Mô hình MVC 8
1.9 Thư viện Ajax 9
1.10 Thư viện BOOTSTRAP 9
1.11 Thư viện JQUERY 10
2 Cơ sở dữ liệu MongoDB 10
2.1 Khái niệm cơ sở dữ liệu MongoDB 10
2.2 Các tính năng của MongoDB 11
CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 12
1 Khảo sát và đặc tả yêu cầu 12
1.1 Phần quản lý trong admin 12
1.2 Giao diện ứng dụng người dùng 12
1.3 Các yêu cầu phi chức năng 12
Trang 62 Phân tích và thiết kế hệ thống 13
2.1 Các chức năng của hệ thống 13
2.2 Các tác nhân của hệ thống 13
2.3 Biểu đồ ca sử dụng use case 15
2.4 Biểu đồ ERD 20
2.5 Biểu đồ tuần tự 21
CHƯƠNG III XÂY DỰNG HỆ THỐNG BÁN SÁCH TRỰC TUYẾN ĐA NỀN TẢNG 23
1 Giao diện người dùng user 23
1.1 Giao diện trang web 23
1.2 Giao diện ứng dụng di động 27
2 Giao diện quản trị admin 33
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37
1 Kết quả đạt được 37
2 Hạn chế 37
3 Hướng phát triển 38
DANH MỤC TÀI LIỆU THAM KHẢO 39
Trang 7DANH SÁCH CÁC TỪ VIẾT TẮT
CNTT Công nghệ thông tin
AI Trí tuệ nhân tạo
Trang 8DANH MỤC HÌNH ẢNH
Hình 2 1 Biểu đồ use case tổng quát hệ thống 16
Hình 2 2 Biểu đồ use case đăng nhập 16
Hình 2 3 Biểu đồ use case quản lý sách 17
Hình 2 4 Biểu đồ use case quản lý thể loại sách 19
Hình 2 5 Biểu đồ use case bình luận, đánh giá sách 19
Hình 2 6 Biểu đồ ERD tổng quát 20
Hình 2 7 Biểu đồ tuần tự đăng nhập 21
Hình 2 8 Biểu đồ tuần tự tìm kiếm 21
Hình 2 9 Biểu đồ tuần tự thêm sách 22
Hình 2 10 Biểu đồ tuần tự đề cử sách 22
Hình 3 1 Giao diện đăng nhập người dùng trên website 23
Hình 3 2 Giao diện trang chủ website mua sách 1 trên website 24
Hình 3 3 Giao diện trang chủ website mua sách 2 trên website 24
Hình 3 4 Giao diện chi tiết sách trên website 25
Hình 3 5 Giao diện giỏ hàng trên website 25
Hình 3 6 Giao diện tìm kiếm sách theo thể loại trên website 26
Hình 3 7 Giao diện đơn hàng trên website 26
Hình 3 8 Giao diện tài khoản trên ứng dụng di động 27
Hình 3 9 Giao diện trang chủ trên ứng dụng di động 28
Hình 3 10 Giao diện xem chi tiết sách trên ứng dụng di động 29
Hình 3 11 Giao diện tìm kiếm sách trên ứng dụng di động 30
Hình 3 12 Giao diện đơn hàng trên ứng dụng di động 31
Hình 3 13 Giao diện thanh toán mua hàng trên ứng dụng di động 32
Hình 3 14 Giao diện đăng nhập hệ thống quản trị 33
Hình 3 15 Giao diện thêm thể loại sách 33
Hình 3 16 Giao diện thêm sách mới 34
Hình 3 17 Giao diện quản lí toàn bộ sách 34
Hình 3 18 Giao diện chỉnh sửa sách 35
Trang 9Hình 3 19 Giao diện danh sách quản trị viên 35 Hình 3 20 Giao diện thêm tài khoản quản trị mới 36
Trang 10DANH MỤC BẢNG
Bảng 1 Bảng nội dung và kế hoạch thực hiện Đồ án 2
Bảng 2 Yêu cầu phi chức năng của hệ thống 12
Bảng 3 Bảng chức năng của người quản trị Admin 14
Bảng 4 Bảng chức năng của người dùng User 14
Trang 11MỞ ĐẦU
1 Giới thiệu
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ, Công nghệ Thôngtin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sự phát triểnchung đó Các thiết bị di động như điện thoại di động máy tính bảng, máy tính đangdần trở nên phổ biến trong cuộc sống Với sự phát triển nhanh chóng của công nghệcộng với việc các nền tảng phần cứng ngày cảng rẻ, để sở hữu cho mình một thiết bịcông nghệ như điện thoại Smart Phone hay một chiếc máy tính bảng không phải làmột việc quá khó khăn như trước nữa Cùng với sự phát triển nhanh chóng của côngnghệ, nhu cầu giải trí trên những thiết bị di động này cũng đang diễn ra một cáchnhanh chóng và mạnh mẽ
Các ứng dụng của công nghệ thông tin được áp dụng trong mọi lĩnh vực nghiêncứu khoa học cũng như trong mọi lĩnh vực của đời sống Là một phần của Công nghệThông tin, ứng dụng di động đang có được sự phát triển mạnh mẽ và phổ biến rấtnhanh bởi những lợi ích, đơn giản, nhẹ nhàng và nhanh chóng mà nó mang lại chocộng đồng là rất lớn
Chúng em cảm thấy khi bước vào làm đồ án chuyên ngành, việc phát triển một sảnphẩm cần sự đa dạng về nền tảng để có thể tiếp cận được nhiều người hướng đến sửdụng hơn Song kết hợp những kiến thức từ trước và nhiều môn học của kì này, chúng
em quyết định xây dựng một sản phẩm đa nền tảng có thể chạy trên ứng dụng di động
và trang web nhằm giải quyết nhu cầu của người tiêu dùng nói chung và đặc biệt lànhững người yêu sách được mua sắm tiện lợi và dễ dàng hơn bao giờ hết
Trước đây, khi bạn muốn mua đọc một cuốn sách, một tờ báo hay là một cuốntruyện thì bạn thường phải đi đến những cửa hàng sách, các thư viện mới có thể tìmthấy và đọc được chúng Việc này thường gây một số khó khăn cho không ít người dophải di chuyền từ địa điểm này sang địa điểm khác và không chắc chắn răng có tìmđược thứ mình mong muốn hay không
Với mong muốn áp dụng những kiến thức đã được trang bị và tìm hiểu thêmnhững kiến thức mới phù hợp với xu hướng phát triển của công nghệ, chúng em lựachọn và thực hiện đề tài “Xây dựng hệ thống đa nền tảng bán sách trực tuyến”, nhằmđáp ứng nhu cầu đọc những cuốn sách yêu thích mọi lúc, mọi nơi, vào bất cứ thờiđiểm nào Không chỉ chạy trên nền tảng trang web, hệ thống còn chạy trên điện thoạimang lại cho người dùng rất nhiều lợi ích khi sử dụng như: khả năng cung cấp những
bộ sách mới nhất từ trong nước và quốc tế, được cập nhật liên tục 24/24 Sau thời gian
Trang 12tìm hiểu thị trường sách thì chúng em quyết định xây dựng hệ thống với 3 kiểu ngườidùng: quản trị, người đăng bán và người mua sách Những cuốn sách sẽ được tổnghợp giúp người dùng có trải nghiệm tốt hơn.
2 Mục tiêu của đề tài
- Tìm hiểu thói quen đọc và mua bán sách của người dùng
- Tiếp cận tối đa người dùng trên nhiều nền tảng
- Phân tích dữ liệu và liên kết trong hệ thống
- Phân tích và thiết kế một hệ thống đa nền tảng bán sách
- Nắm bắt được cách thức xây dựng một hệ thống đa nền tảng bán sách
- Tìm hiểu công nghệ mới để áp dụng vào đề tài chuyên ngành lần này
- Kiểm thử phần mềm
- Xây dựng hệ thống đa nền tảng bán sách trực tuyến
3 Nội dung và kế hoạch thực hiện
Bảng 1 Bảng nội dung và kế hoạch thực hiện Đồ án
từ 24/10 đến 06/11 Xây dựng tính năng của phần mềm
Sau phần Mở đầu, báo cáo được trình bày trong ba chương:
Chương 1 Tổng quan về đề tài
Trang 13Chương 2 Phân tích thiết kế hệ thống đa nền tảng bán sách trực tuyến.Chương 3 Xây dựng hệ thống đa nền tảng bán sách trực tuyến
Cuối cùng là Kết luận, Tài liệu tham khảo và Phụ lục
Trang 14CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1 Tìm hiểu về các ngôn ngữ lập trình.
1.1 Ngôn ngữ lập trình HTML.
HTML (HyperText Markup Language) – Ngôn ngữ đánh dấu siêu văn bản được sửdụng để tạo các tài liệu có thể truy cập trên mạng Tài liệu HTML được tạo nhờ dùngcác thẻ và các phần tử của HTML File được lưu trên máy chủ dịch vụ web với phần
mở rộng “.htm” hoặc “.html” Các trình duyệt sẽ đọc tập tin HTML và hiển thị chúngdưới dạng trang web Các thẻ HTML sẽ được ẩn đi, chỉ hiển thị nội dung văn bản vàcác đối tượng khác: hình ảnh, media Với các trình duyệt khác nhau đều hiển thị mộttập HTML với một kết quả nhất định Các trang HTML được gửi đi qua mạng internettheo giao thức HTTP HTML không những cho phép nhúng thêm các đối tượng hìnhảnh, âm thanh mà còn cho phép nhúng các kịch bản vào trong đó như các ngôn ngữkịch bản như Javascript để tạo hiệu ứng động cho trang web Để trình bày trang webhiệu quả hơn thì HTML cho phép sử dụng kết hợp với CSS HTML không những chophép nhúng thêm các đối tượng hình ảnh, âm thanh mà còn cho phép nhúng các kịchbản vào trong đó như các ngôn ngữ kịch bản như Javascript để tạo hiệu ứng động chotrang web
HTML là một chuẩn ngôn ngữ internet được tạo ra và phát triển bởi tổ chứcWorld Wide Web Consortium còn được viết tắc là W3C Trước đó thì HTML xuất bảntheo chuẩn của RFC HTML được tương thích với mọi hệ điều hành cùng các trìnhduyệt của nó Khả năng dễ học, dễ viết là một ưu điểm của HTML không những vậyviệc soạn thảo đòi hỏi hết sức đơn giản, chúng ta có thể dùng word, notepad hay bất
cứ một trình soạn thảo văn bản nào để viết và chỉ cần lưu với định dạng “.html “ hoặc
“.htm” là đã có thể tạo ra một file chứa HTML Hiện nay, phiên bản mới nhất củaHTML là HTML5 với nhiều tính năng ưu việt so với các phiên bản cũ HTML cải tiếnkhá nhiều đặc biệt hỗ trợ mạnh mẽ các phần tử multimedia mà không cần các plugin.Một tập tin HTML bao gồm trong đó là các đoạn văn bản HTML, được tạo lên bởicác thẻ HTML HTML5 nói chung mạnh mẽ hơn nhiều không chỉ về tốc độ và độthích ứng cao mà chính là khả năng hỗ trợ API (Application Programming Interface -giao diện lập trình ứng dụng) và DOM (Document Object Model – các đối tượng thaotác văn bản)
1.2 Ngôn ngữ CSS
CSS (Cascading Style Sheets) là một ngôn ngữ quy định cách trình bày cho các tàiliệu viết bằng HTML, XHTML, XML, SVG, hay UML,…CSS quy định cách hiển thị
Trang 15của các thẻ HTML bằng cách quy định các thuộc tính của các thẻ đó (font chữ, kíchthước, màu sắc )
CSS có cấu trúc đơn giản và sử dụng các từ tiếng anh để đặt tên cho các thuộctính CSS khi sử dụng có thể viết trực tiếp xen lẫn vào mã HTML hoặc tham chiếu từmột file css riêng biệt Hiện nay CSS thường được viết riêng thành một tập tin với mởrộng là “.css” Chính vì vậy mà các trang web có sử dụng CSS thì mã HTML sẽ trởnên ngắn gọn hơn Ngoài ra có thể sử dụng một tập tin CSS đó cho nhiều website tiếtkiệm rất nhiều thời gian và công sức Một đặc điểm quan trọng đó là tính kế thừa củaCSS do đó sẽ giảm được số lượng dòng code mà vẫn đạt được yêu cầu
Tuy nhiên, đối với CSS thì các trình duyệt hiểu theo kiểu riêng của nó Do vậy,việc trình bày một nội dung trên các trình duyệt khác nhau là không thống nhất CSScung cấp hàng trăm thuộc tính trình bày dành cho các đối tượng với sự sáng tạo caotrong kết hợp các thuộc tính giúp mang lại hiệu quả
1.3 Ngôn ngữ lập trình PHP
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mãlệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở,dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vàotrang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cúpháp giống ngôn ngữ lập trình C và ngôn ngữ lập trình Java, dễ học và thời gian xâydựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanhchóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới Một tập tin PHP
có phần mở rộng *.php, nó có thể chứa các văn bản, mã nguồn HTML, CSS,Javascript, Jquery và đương nhiên có thể chứa mã nguồn PHP
Đối với các trang PHP khi có yêu cầu xem trang web thì Server sẽ tiến hành phátsinh trang web đó từ mã nguồn PHP sang mã nguồn HTML, sau đó mới chuyển mãnguồn đó về trình duyệt web để người dùng xem Vì các trình duyệt web không thểđọc được các mã nguồn PHP mà chỉ đọc được các mã nguồn HTML
1.4 Ngôn ngữ lập trình Javascript
JavaScript là ngôn ngữ lập trình được nhà phát triển sử dụng để tạo trang webtương tác Từ làm mới bảng tin trên trang mạng xã hội đến hiển thị hình ảnh động vàbản đồ tương tác, các chức năng của JavaScript có thể cải thiện trải nghiệm ngườidùng của trang web Là ngôn ngữ kịch bản phía máy khách, JavaScript là một trongnhững công nghệ cốt lõi của World Wide Web
Mã JavaScript được diễn giải, tức là được công cụ JavaScript dịch trực tiếp sang
mã ngôn ngữ máy cơ bản Với các ngôn ngữ lập trình khác, trình biên dịch sẽ biên
Trang 16dịch toàn bộ mã thành mã máy trong một bước riêng Như vậy, tất cả các ngôn ngữviết tập lệnh đều là ngôn ngữ lập trình, nhưng không phải tất cả các ngôn ngữ lậptrình đều là ngôn ngữ viết tập lệnh Công cụ JavaScript là một chương trình máy tínhchạy mã JavaScript Các công cụ JavaScript đầu tiên chỉ là bộ diễn giải, nhưng tất cảcác công cụ hiện đại đều sử dụng biên dịch tại chỗ hoặc thời gian chạy để cải thiệnhiệu suất.
1.5 Framework Vue.js
Vue là một framework Javascript tiên tiến trong xây dựng giao diện người dùng,không giống như các framework khác, Vue được xây dựng từ những dòng code cơbản nhất nhằm tối ưu tốc độ Thư viện của Vue chỉ tập trung vào lớp hiển thị, rất đơngiản để tiếp cận và dễ dàng tích hợp vào các hệ thống khác Vue cũng có khả năngcung cấp các ứng dụng web đơn trang Single Page Application (SPA) cho phép kếthợp với nhiều các công cụ hiện đại, như Laravel chẳng hạn
Vue.js được sử dụng để xây dựng giao diện người dùng giống như React (sử dụngbởi Facebook), Angular (được hậu thuẫn bởi Google), Ember… Tuy nhiên, Vue.js cótốc độ tạo trang (render) rất nhanh và chiếm khá ít bộ nhớ Vue.js mới chỉ ra mắt năm
2015, nhưng Vue.js đã sớm khẳng định mình và sớm trở thành người thay thế Angular
và React, đây cũng chính là lý do Laravel giới thiệu Vue.js trong thiết lập mặc định.Vue.js là một framework linh động dùng để xây dựng giao diện người dùng (userinterfaces) Khác với các framework nguyên khối (monolithic), Vue được thiết kế từđầu theo hướng cho phép và khuyến khích việc phát triển ứng dụng theo từng bước.Khi phát triển lớp giao diện (view layer), người dùng chỉ cần dùng thư viện lõi (corelibrary) của Vue, vốn rất dễ học và tích hợp với các thư viện hoặc dự án có sẵn Cùnglúc đó, nếu kết hợp với những kĩ thuật hiện đại như SFC (single file components) vàcác thư viện hỗ trợ, Vue cũng đáp ứng được dễ dàng nhu cầu xây dựng những ứngdụng một trang (SPA - Single-Page Applications) với độ phức tạp cao hơn nhiều
1.6 Framework Flutter
Flutter là một framework mã nguồn mở dành cho di động được phát hành vàotháng 5 năm 2017 bởi Google Nói một cách dễ hiểu, Flutter cho phép bạn tạo mộtứng dụng di động chỉ với một codebase trên iOS và Android bằng một ngôn ngữ lậptrình và một cơ sở mã duy nhất
Flutter bao gồm hai phần quan trọng:
SDK (Bộ công cụ phát triển phần mềm): Là một tập hợp các công cụ giúpbạn phát triển các ứng dụng của mình
Trang 17 Framework (Thư viện giao diện người dùng dựa trên các tiện ích con): Tậphợp các phần giao diện người dùng mà bạn có thể tái sử dụng (nút, đầu vào vănbản, thanh trượt, v.v.), từ đó có thể cá nhân hóa cho nhu cầu của riêng mình.Flutter là framework khá phổ biến để tạo các ứng dụng di động trên hai hệ điềuhành lớn nhất thế giới – iOS và Android – vì vậy nên bạn có thể học Flutter ngay từbây giờ Ngoài ra, một số lợi ích khác của ngôn ngữ Flutter là:
Đơn giản để học và sử dụng: Flutter là một framework hiện đại, và bạn cóthể cảm nhận được điều đó khi bắt đầu làm quen với ngôn ngữ này Flutter giúpbạn tạo ra các ứng dụng di động một cách đơn giản hơn rất nhiều so với các ngônngữ khác như Java, Swift hoặc React Native Với Flutter, bạn có thể tạo một ứngdụng gốc thực sự mà không cần nhiều mã
Miễn phí: Flutter hoàn toàn miễn phí Do đó bạn không cần trả phí cấp phéphoặc phí phát triển ứng dụng Flutter Điều này làm cho nó trở thành một lựa chọnhấp dẫn cho các công ty khởi nghiệp và nhà phát triển muốn tạo ra các ứng dụngchất lượng cao mà không tốn nhiều tiền
Dễ dàng gỡ lỗi với ngôn ngữ lập trình DART: Dart là một ngôn ngữ lập trìnhkhá đơn giản với các công cụ gỡ lỗi tuyệt vời như Dart Analyzer và bộ DevTools
Vì Flutter sử dụng ngôn ngữ lập trình Dart nên bạn có thể dễ dàng tìm và sửa lỗitrong ứng dụng Flutter
Đem lại hiệu suất tối đa: Nhờ Flutter, bạn có thể thay đổi đoạn code củamình và xem kết quả ngay lập tức Tiện ích này được gọi là Hot-Reload Và nhờvậy, bạn chỉ mất một khoảng thời gian ngắn sau khi lưu code để cập nhật lại ứngdụng
Documentation: Điều quan trọng đối với các công nghệ mới là phải cónguồn tài liệu tham khảo chất lượng Tuy nhiên không phải lúc nào cũng có sẵnnguồn tài liệu cho bạn nghiên cứu Tuy nhiên Flutter đã cải thiện được vấn đề đóvới kho tài liệu dồi dào Các bài học, các dữ liệu được xây dựng rất chi tiết vớicác ví dụ dễ hiểu cho các trường hợp sử dụng cơ bản Vì vậy, khi bạn gặp sự cốvới các tiện ích con trong đoạn mã của mình, bạn có thể kiểm tra tài liệu và câutrả lời đã có sẵn ở đó
Cộng đồng Flutter phát triển mạnh: Flutter có một cộng đồng mạnh mẽ vàđiều đó là một tín hiệu tốt cho những lập trình viên đang tìm hiểu về Flutter Córất nhiều người yêu thích việc chia sẻ kiến thức và các nội dung hữu ích về lậptrình trên trang web của họ hoặc các cộng đồng khác và Flutter có một cộng đồngrất lớn để bạn có thể trao đổi thông tin và chia sẻ cùng nhau
Trang 181.7 Nền tảng Node.js
Node.js là một platform (nền tảng) độc lập được xây dựng trên môi trườngJavascript Runtime - trình thông dịch ngôn ngữ Javascript cực nhanh trên trình duyệtChrome Dựa trên Node.js, chúng ta có thể xây dựng các ứng dụng mạng một cáchnhanh chóng và dễ dàng mở rộng
Node.js được thiết kế bởi Ryan Lienhart Dahl - một kỹ sư phần mềm người Mỹvào năm 2009 và phát triển dưới sự bảo trợ của Joyent
Phần Core bên dưới của Nodejs được viết hầu hết bằng C++ nên cho tốc độ xử lý
và hiệu năng khá cao
Các ứng dụng được tạo ra bởi Node.js có tốc độ xử lý nhanh, realtime thời gianthực
Node.js sẽ thích hợp cho các sản phẩm có lưu lượng truy cập lớn, cần sự thay đổi
về công nghệ và cần được mở rộng hoặc tạo ra các dự án Startup một cách nhanh nhất
có thể
Các ứng dụng Nodejs được viết bằng javascript, ngôn ngữ này là một ngôn ngữkhá thông dụng Theo tác giả của ngôn ngữ Javascript, Ryan Dahl: “Javascript cónhững đặc tính mà làm cho nó rất khác biệt so với các ngôn ngữ lập trình động cònlại, cụ thể là nó không có khái niệm về đa luồng, tất cả là đơn luồng và hướng sựkiện.”
1.8 Mô hình MVC
MVC (viết tắt của Model-View-Controller) là một mẫu kiến trúc phần mềm để tạolập giao diện người dùng trên máy tính MVC chia một ứng dụng thành ba phần tươngtác được với nhau để tách biệt giữa cách thức mà thông tin được xử lý nội hàm vàphần thông tin được trình bày và tiếp nhận từ phía người dùng
Khi sử dụng đúng cách, mẫu MVC giúp cho người phát triển phần mềm cô lập cácnguyên tắc nghiệp vụ và giao diện người dùng một cách rõ ràng hơn Phần mềm pháttriển theo mẫu MVC tạo nhiều thuận lợi cho việc bảo trì vì các nguyên tắc nghềnghiệp và giao diện ít liên quan với nhau
Trong mẫu Model-View-Controller, mô hình (model) tượng trưng cho dữ liệu củachương trình phần mềm Tầm nhìn hay khung nhìn (view) bao gồm các thành phầncủa giao diện người dùng Bộ kiểm tra hay bộ điều chỉnh (controller) quản lý sự traođổi giữa dữ liệu và các nguyên tắc nghề nghiệp trong các thao tác liên quan đến môhình
Trang 191.9 Thư viện Ajax
AJAX (Asynchronous JavaScript and XML - JavaScript và XML) là một nhómcác công nghệ phát triển web được sử dụng để tạo các ứng dụng web động haycác ứng dụng giàu tính Internet Ajax là một kỹ thuật phát triển web có tính tương táccao bằng cách kết hợp các ngôn ngữ:
HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin
Mô hình DOM (Document Object Model) được thực hiện thông qua JavaScript,nhằm hiển thị thông tin động và tương tác với những thông tin được hiển thị.Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với máychủ web
XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào cũng
có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text), JSON vàngay cả EBML
1.10 Thư viện BOOTSTRAP
Bootstrap là một Framework có chứa HTML, CSS, JAVASCRIPT, Frameworktrong tiếng việt có nghĩa là “khuôn khổ” giúp tiết kiệm được thời gian, công sức hơnnữa việc xây dựng hai teamplate cho giao diện Desktop và Mobile đã lỗi thời thay vào
đó là Responsive Responsive sẽ giúp website của bạn hiển thị tương thích với mọikích thước màn hình nhờ đó bạn sẽ tùy chỉnh hiện thị được nhiều hơn trên các loạimàn hình khác nhau
Ưu điểm của Bootstrap:
Tiết kiệm thời gian: Boostrap giúp người thiết kế giao diện website tiết kiệmrất nhiều thời gian Các thư viện Bootstrap có những đoạn mã sẵn sàng cho bạn
áp dùng vào website của mình Bạn không phải tốn quá nhiều thời gian để tự viếtcode cho giao diện của mình
Tùy biến cao: Bạn hoàn toàn có thể dựa vào Bootstrap và phát triển nền tảnggiao diện của chính mình Bootstrap cung cấp cho bạn hệ thống Grid System mặcđịnh bao gồm 12 bột và độ rộng 940px Bạn có thể thay đổi, nâng cấp và pháttriển dựa trên nền tảng này
Responsive Web Design: Với Bootstrap, việc phát triển giao diện website đểphù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết Đây là xu hướng pháttriển giao diện website đang rất được ưu chuộng trên thế giới
Trang 201.11 Thư viện JQUERY
JQuery là một thư viện kiểu mới của JavaScript, được tạo bởi John Resig vào năm
2006 với một phương châm tuyệt vời: Write less, do more - Viết ít hơn, làm nhiềuhơn
JQuery làm đơn giản hóa việc truyền tải HTML, xử lý sự kiện, tạo hiệu ứng động
và tương tác Ajax Với jQuery, khái niệm Rapid Web Development đã không còn quá
xa lạ
JQuery là một bộ công cụ tiện ích JavaScript làm đơn giản hóa các tác vụ đa dạngvới việc viết ít code hơn Dưới đây liệt kê một số tính năng tối quan trọng được hỗ trợbởi jQuery:
Thao tác DOM − jQuery giúp dễ dàng lựa chọn các phần tử DOM
để traverse (duyệt) một cách dễ dàng như sử dụng CSS, và chỉnh sửa nội dungcủa chúng bởi sử dụng phương tiện Selector mã nguồn mở, mà được gọi là Sizzle
Xử lý sự kiện − jQuery giúp tương tác với người dùng tốt hơn bằng việc xử
lý các sự kiện đa dạng mà không làm cho HTML code rối tung lên với các EventHandler
Hỗ trợ AJAX − jQuery giúp bạn rất nhiều để phát triển một site giàu tínhnăng và phản hồi tốt bởi sử dụng công nghệ AJAX
Hiệu ứng − jQuery đi kèm với rất nhiều các hiệu ứng đa dạng và đẹp mắt màbạn có thể sử dụng trong các Website của mình
Gọn nhẹ − jQuery là thư viện gọn nhẹ - nó chỉ có kích cỡ khoảng 19KB(gzipped)
Được hỗ trợ hầu hết bởi các trình duyệt hiện đại − jQuery được hỗ trợ hầuhết bởi các trình duyệt hiện đại, và làm việc tốt trên IE 6.0+, FF 2.0+, Safari 3.0+,Chrome và Opera 9.0+
Cập nhật và hỗ trợ các công nghệ mới nhất − jQuery hỗ trợ CSS3 Selector
và cú pháp XPath cơ bản
2 Cơ sở dữ liệu MongoDB
2.1 Khái niệm cơ sở dữ liệu 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
Trang 21MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vàotháng Mười năm 2007, nó là một phần của sản phẩm PaaS (Platform as a Service)tương tự như Windows Azure và Google App Engine Sau đó nó đã được chuyểnthành nguồn mở từ năm 2009.
MongoDB đã trở thành một trong những NoSQL database nổi trội nhất bấy giờ,được dùng làm backend cho rất nhiều website như eBay, SourceForge và The NewYork Times
2.2 Các tính năng của MongoDB
Các ad hoc query: hỗ trợ search bằng field, các phép search thông thường,regular expression searches, và range queries
Indexing: bất kì field nào trong BSON document cũng có thể được index
Replication: có ý nghĩa là “nhân bản”, là có một phiên bản giống hệt phiên bảnđang tồn tại, đang sử dụng Với cơ sở dữ liệu, nhu cầu lưu trữ lớn, đòi hỏi cơ sở dữliệu toàn vẹn, không bị mất mát trước những sự cố ngoài dự đoán là rất cao Vìvậy, người ta nghĩ ra khái niệm “nhân bản”, tạo một phiên bản cơ sở dữ liệu giốnghệt cơ sở dữ liệu đang tồn tại, và lưu trữ ở một nơi khác, đề phòng có sự cố
Aggregation: Các Aggregation operation xử lý các bản ghi dữ liệu và trả về kếtquả đã được tính toán Các phép toán tập hợp nhóm các giá trị từ nhiều Documentlại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã đượcnhóm đó để trả về một kết quả duy nhất Trong SQL, count(*) và GROUP BY làtương đương với Aggregation trong MongoDB
Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng nhữngfunction trên và hoạt động như một cách phân phối qua sharding
Trang 22CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1 Khảo sát và đặc tả yêu cầu
1.1 Phần quản lý trong admin
- Admin quản lý toàn bộ hoạt động hệ thống
- Quản lý các sách được đăng lên hệ thống
- Quản lý đánh giá, nhận xét từ người dùng
- Thống kê các các sách được đnăg bán có trên hệ thống
- Tư vấn trả lời các liên hệ của người dùng
1.2 Giao diện ứng dụng người dùng.
- Ứng dụng không nên quá phức tạp
- Dung lượng file không quá lớn
- Thanh menu thật đơn giản
- Font chữ đơn giản, dễ nhìn, màu sắc hài hòa
- An toàn và bảo mật dữ liệu
- Hiển thị được các sách có xếp hạng cao, các sách thuộc thể loại nào,…
- Cho phép người dùng có thể xem sách và mua, đánh giá, đề cử và bình luận sách,
- Cho phép người dùng đăng nhập tài khoản bằng google
- Cho phép liên hệ với người quản trị
1.3 Các yêu cầu phi chức năng
Bảng 2 Yêu cầu phi chức năng của hệ thống
1 Giao diện Giao diện hệ thống phải dễ sử dụng, trực quan, thân
thiện với người dùng
2 Tốc độ xử lý Hệ thống phải xử lý nhanh chóng và chính xác
3 Bảo mật Tính bảo mật và độ an toàn cao
4 Tương thích Tương thích với đa phần các trình duyệt hiện tại
2 Phân tích và thiết kế hệ thống
2.1 Các chức năng của hệ thống
Hệ thống quản trị website
Trang 23- Quản lý sách được đăng bán trong hệ thống.
- Thêm, sửa, xóa sách lên hệ thống bán sách.
- Quản lý thể loại sách trong hệ thống.
- Quản lý lượt mua và giá, giảm giá của sách trong hệ thống.
- Quản lý bìa, ảnh, đánh giá của sách.
- Quản lý người dùng trên hệ thống.
Hệ thống người dùng đọc sách bằng ứng dụng Android và trang web
- Cho phép đăng nhập tài khoản bằng tài khoản google.
- Cho phép người dùng xem và xem mô tả chi tiết sách trên ứng dụng
- Thêm sách vào giỏ hàng và mua sách
- Thanh toán cho sách được mua
- Cho phép người dùng tìm kiếm sách theo tên sách, tên tác giả.
- Cho phép người dùng bình luận, đánh giá về sách nếu đã mua.
- Theo dõi lịch sử mua sách trên hệ thống.
Tác nhân Admin 2: người thực hiện các chức năng quản trị tài khoản, người dùng,kho sách Để thực hiện các chức năng quản trị trong hệ thống tác nhân này bắt buộcphải thực hiện đăng nhập và được sự cho phép của Admin 1
Tác nhân người dùng: có thể thực hiện các chức năng như đăng nhập bằng tàikhoản google, xem và mua sách, tìm kiếm sách, đăng bình luận, đánh giá, đề cử sách,
…
Chức năng Admin
Bảng 3 Bảng chức năng của người quản trị Admin
Trang 241 Đăng nhập
Thực hiện đăng nhập vào hệ thống, nhập vàousername và password Kiểm tra hợp lệ trùng với dữliệu có sẵn thì hệ thống sẽ cho phép đăng nhập đểthực hiện quản lý và thao tác các chức năng trong hệthống
2 Quản lý người dùng Quản trị: thêm, sửa, xóa tài khoản người quản trị
Khách hàng: xem danh sách khách hàng
3 Quản lý đánh giá Xem đánh giá, trả lời đánh giá
4 Quản lý kho sách Đăng tải sách, chỉnh sửa sách, xóa sách trên hệ thống
5 Quản lý khuyến mãi Quản lý, kiểm tra là giảm giá sách cho sách tùy loại
6 Quản lý thể loại sách Quản lý thể loại sách trong hệ thống
7 Quản lý đơn hàng Xem, duyệt đơn hàng từ phía người dùng
8 Quản lý tác giả Quản lý tác giả trong hệ thống
9 Gửi, nhận tin nhắn Gửi tin nhắn đến tài khoản người dùng, nhận tin
nhắn từ tài khoản người dùng
Chức năng người dùng
Bảng 4 Bảng chức năng của người dùng User
1 Đăng nhập tài khoản
Người dùng có thể thực hiện thao tác đăng nhậpbằng tài khoản google để đăng nhập vào hệ thốngxem và mua sách