Chương 1. Cơ sở lý thuyết • Props: giúp các component tương tác với nhau, component nhận input gọi là props, và trả thuộc tính mô tả những gì component con sẽ render. Prop là bất biến. • State: thể hiện trạng thái của ứng dụng, khi state thay đồi thì component đồng thời render lại để cập nhật UI.js là một thư viện JavaScript runtime được build dựa trên Chorme’s V8 JavaScript engine.js sử dụng mô hình event-driven, non-blocking I/O khiến nó trở nên nhẹ nhàng và hiệu quả.
Quy trình hoạt động của NodeJS Các đặc tính của NodeJS: • Realtime: Khi nói đến NodeJS thì phải nghĩ tới vấn đề Realtime. Realtime ở đây chính là xử lý giao tiếp từ client tới máy chủ theo thời gian thực. Giống như khi bạn lướt Facebook thì mỗi khi bạn comment hay like một topic nào đó thì ngay lập tức chủ topic và những người đã comment trên đó sẽ nhận được thông báo là bạn đã comment. • Không đồng bộ: Tất cả các API của NodeJS đều không đồng bộ (none-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 (Realtime). Vũ Văn Thiện – D17HTTT6 4 Đồ án tốt nghiệp đại học Chương 1. Cơ sở lý thuyết • Chạy rất nhanh: NodeJ được xây dựng dựa vào nền tảng V8 Javascript Engine nê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: Node.js sử dụng một mô hình luồng duy 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 ứng mộ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ái ngược với các máy chủ truyền thống mà tạo đề hạn chế để xử lý yêu cầu.js 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ày chủ yếu là đầu ra dữ liệu. 2 NodeJS framework sử dụng phổ biến: ExpressJS là một trong những framework phổ biến dùng để xây dựng API và Website phổ biến nhất của NodeJS. Nó được sử dụng rộng rãi đến mức hầu như mọi dự án Web nào đều bắt đầu bằng việc tích hợp Express.
Có rất nhiều lý do để chọn ExpressJS: • Có nhiều tính năng hỗ trợ tất cả những gì bạn cần trong việc xây dựng Web và API • Quản lý các route dễ dàng • Cung cấp một nền tảng phát triển cho các API • Hỗ trợ nhiều thư viện và plugin • Bảo mật và an toàn hơn so với việc code thuần • Hỗ trợ cộng đồng tuyệt vời SocketIO là một web-socket framework có sẵn cho nhiều ngôn ngữ lập trình. Trong NodeJS, SocketIO cho phép xây dựng một các ứng dụng realtime như chatbot, tickers, dashboard APIs, và nhiều ứng dụng khác. SocketIO có lợi ích hơn so với NodeJS thông thường. • Hỗ trợ route URL tùy chỉnh cho web socket • Tích hợp dễ dàng hơn với Express JS • Hỗ trợ clustering với Redis Vũ Văn Thiện – D17HTTT6 5 Đồ án tốt nghiệp đại học Chương 1.4 MONGODB MongoDB là một cơ sở dữ liệu đa nền tảng, định hướng tài liệu cung cấp, hiệu suất cao, tính sẵn sàng cao và khả năng mở rộng dễ dàng.
MongoDB hoạt động trên khái niệm về collection và document. MongoDB lưu trữ dữ liệu dưới dạng JSON (trong MongoDB được gọi là dạng BSON vì nó lưu trữ dưới dạng binary từ 1 JSON document). Ưu điểm của MongoDB: • Lưu trữ hướng tài liệu - dữ liệu được lưu trữ dưới dạng tài liệu kiểu JSON. • Chỉ mục trên bất kỳ thuộc tính • Nhân rộng và sẵn sàng cao.
• Tự động bảo vệ. • Truy vấn phong phú. • Cập nhật nhanh tại chỗ. • Hỗ trợ chuyên nghiệp bởi MongoDB 1.5 CƠ SỞ LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU MYSQL MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng.
Vì MySQL là hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl,. Ưu điểm của MySQL: • Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. • Độ bảo mật cao: MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet khi sở hữu nhiều nhiều tính năng bảo mật thậm chí là ở cấp cao.
• Đa tính năng: MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp. • Khả năng mở rộng và mạnh mẽ: MySQL có thể xử lý rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết. • Nhanh chóng: Việc đưa ra một số tiêu chuẩn cho phép MySQL để làm việc rất hiệu quả và tiết kiệm chi phí, do đó nó làm tăng tốc độ thực thi. Nhược điểm của MySQL: Vũ Văn Thiện – D17HTTT6 6 Đồ án tốt nghiệp đại học Chương 1.
Cơ sở lý thuyết • Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với các hạn chế về chức năng mà một vào ứng dụng có thể cần. • Độ tin cậy: Cách các chức năng cụ thể được xử lý với MySQL (ví dụ tài liệu tham khảo, các giao dịch, kiểm toán,…) làm cho nó kém tin cậy hơn so với một số hệ quản trị cơ sở dữ liệu quan hệ khác. • Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dần lên thì việc truy xuất dữ liệu của bạn là khá khó khăn, khi đó chúng ta sẽ phải áp dụng nhiều biện pháp để tăng tốc độ truy xuất dữ liệu như là chia tải database này ra nhiều server, hoặc tạo cache 1.6 KẾT LUẬN CHƯƠNG 1 Đồ án đã trình bày tổng quan các lý thuyết sẽ áp dụng cho hệ thống về ngôn ngữ thập trình JavaScript, framework ReactJS(FE), NodeJS(BE), MongoDB hoặc MySQL. Kết quả của chương 1 sẽ được sử dụng để xây dựng website bán hàng online Tshop trong các chương tiếp theo của đồ án.
Vũ Văn Thiện – D17HTTT6 7 Đồ án tốt nghiệp đại học Chương 2. Phân tích thiết kế hệ thống Website CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG WEBSITE 2.1 PHÁT BIỂU BÀI TOÁN Website bán hàng online TSHOP với đặc thù là bán hàng online nên cần cung cấp các chức năng quản lý phù hợp cho admin. Các chức năng của hệ thống mà admin quản lý là quản lý user, quản lý sản phẩm, quản lý đơn hàng và thống kê. Với các chức năng này, admin có thể dễ dàng vận hành và quản lý hệ thống.
Với người dùng (khách hàng), hệ thống cần cung cấp các chức năng cơ bản cho khách hàng như xem tin tức, sản phẩm, đăng ký tài khoản, đăng nhập hệ thống, đặt hàng và thanh toán. Ngoài ra, website cũng cần có giao diện đẹp, thân thiện, dễ sử dụng với người dùng. Các sản phẩm, bài viết được cập nhật mới nhất và thu hút người xem.2 CÁC YÊU CẦU PHI CHỨC NĂNG Bảng 2. Các yêu cầu phi chức năng Mục Tên yêu cầu Mô tả yêu cầu 1 Giao diện Giao diện hệ thống phải dễ sử dụng, thân thiện với mọ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 Tương thích Tương thích với đa phần các trình duyệt web hiện tại.3 PHÂN TÍCH HỆ THỐNG 2.1 Mục đích + phạm vi: Mục đích: Hệ thống trang web TSHOP cho phép khách hàng có thể tiến hành việc mua bán sản phẩm/ dịch vụ điện thoại trực tuyến. Cụ thể, khi truy cập vào các Website này, khách hàng có thể xem thông tin sản phẩm, tìm kiếm các sản phẩm cần mua, thêm, sửa, xóa Vũ Văn Thiện – D17HTTT6 8 Đồ án tốt nghiệp đại học Chương 2. Phân tích thiết kế hệ thống Website sản phẩm ở giỏ hàng để đặt hàng và thanh toán nhanh chóng.
Admin phục vụ công tác quản lí các khách hàng mua hàng, sản phẩm và các đơn đặt hàng có trên hệ thống website. Phạm vi hệ thống: + Bao gồm: • Quản lý thông tin thông tin user • Quản lý thông tin sản phẩm • Quản lý thông tin đặt hàng • Khách hàng đặt hàng + Không bao gồm: • Quản lý cơ sở vật chất • Quản lý thông tin lịch làm • Quản lý thông tin ca làm việc • Quản lý thông tin chấm công • Quản lý thông tin tiền lương nhân viên 2.2 Ai được dùng hệ thống? Làm gì ? + Khách hàng: • Đăng ký tài khoản • Đăng nhập • Lấy lại tài khoản • Khách hàng có thể xem thông tin sản phẩm, tìm kiếm các sản phẩm cần mua, thêm, sửa, xóa sản phẩm ở giỏ hàng để đặt hàng và thanh toán. + Nhân viên quản lý: • Quản lý thông tin user • Quản lý thông tin sản phẩm • Xem báo cáo thống kê 2.3 Các đối tượng quản lý + Nhóm thông tin liên quan đến con người: • Thành viên: Tên đăng nhập, mật khẩu, họ tên, số điện thoại, địa chỉ email • Khách hàng: giống thành viên, có thêm mã khách hàng. • Nhân viên quản lý: Giống nhân viên + Nhóm thông tin liên quan cơ sở vật chất: Vũ Văn Thiện – D17HTTT6 9 Đồ án tốt nghiệp đại học Chương 2.
Phân tích thiết kế hệ thống Website • Sản phẩm: tên, đơn vị tính, đơn giá nhập, đơn giá bán, số lượng + Đối tượng thông tin: • Thời gian: mua hàng, vận chuyển • Giá sản phẩm • Hóa đơn mua hàng: Tên khách hàng, tên sản phẩm, mã sản phẩm, thời gian, đơn giá, số lượng 2.