Đặt vấn đề Với sự xuất hiện của Thương mại Điện tử cùng với các giao dịch trực tuyến như ngày nay thì việc mua bán hàng qua mạng là việc không còn quá xa lạ. Qua một khảo sát mà chúng tôi thực hiện trên một tập người dùng đang bán hang online thì van dé mà họ đang gặp phải đó là không tìm được nguồn hàng ôn định và phong phú với nhiều ngách hàng. Vấn đề thứ hai đó chính là việc vận chuyên đến tay khách hàng còn là một cản trở lớn khi mà khách hàng chính chủ yếu nằm trong phạm vi địa lý dưới 10km. Và chính điều đó cũng gây ra van dé quan trọng nhất là doanh số bán hàng không đạt mức tốt.
Sau ba tháng đi tìm giải pháp cho các vấn dé còn dang gặp nhiều trở ngại như trên. Chúng tôi đã quyết định phát triển Ứng dụng Kết nối NCC và CTV dựa vào sàn Thuong mại Điện tử với các chức năng nồi bật như: kết nối hơn 500 NCC với gần 2000 CTV trên toàn quốc trải dai từ Bắc chí Nam, hợp tác với các sàn Thương mại Điện tử lớn như Shopee, Lazada, liên kết với các đơn vị vận chuyển uy tín như Giao hàng tiết kiệm, Giao hàng nhanh. Việc đặt nền móng triển khai với một mô hình còn mới phát triển sơ bộ như trên được hy vọng sẽ sớm có nhiều thành quả ghi nhận và sẽ phát triển vững chắc trong thời gian tới. Pham vi dé tai 1.
Mục tiêu đề tài Cung cấp ứng dụng kết nói cho NCC và CTV để dễ dàng hơn trong việc quản lý đơn hàng, sản phẩm, quản lý đơn vận chuyển và CTV có nhiều nguồn mặt hàng dé bán hàng. Tao sự kết nối giữa NCC va CTV, giúp CTV có da dạng các mặt hang để bán online mà không cần vốn, giúp NCC bán hàng tốt hơn thông qua cộng đồng CTV.000 người dùng sử dụng trên ứng dụng FuniMart. Ngoài ra ứng dụng FuniMart có chức năng giúp ich cho NCC, CTV quản ly đơn đặt hàng, khách hàng. Đối tượng người sử dụng Nhà cung cấp: cá nhân, doanh nghiệp, tổ chức có nhu cầu bán hàng online dưới hình thức DropShipping Cộng tác viên: là sinh viên, nhân viên văn phòng, các ba mẹ bim sữa toàn có nhu cầu muốn bán hàng online.
Quản trị viên: là người quản lý website, các mặt hàng khi đưa lên hệ thống 1. Chức năng của Website Có chức năng giới thiệu và quảng bá gian hàng của NCC. Cung cấp các sản phẩm cũng như đa dạng hoá các mặt hàng mà giới trẻ, người tiêu dùng đang ưa thích. Cung cấp day đủ thông tin chỉ tiết cho CTV về sản phẩm như: Tên sản phẩm, giá cả, giá si, giá đề xuất bán, thông số kỹ thuật,.
Giới thiệu sản phẩm dưới dang blogs, đăng sản phẩm lên Facebook, Zalo tự động giúp cho việc kinh doanh, quảng bá sản phẩm cho NCC và CTV dễ dàng hơn 1. Đối tác tích hợp vào hệ thống Giao hàng tiết kiệm Giao hàng Nhanh Facebook Zalo Shopee 1. Bồ cục báo cáo Chương l: Giới thiệu về báo cáo. Chương 2: Giới thiệu về cơ sở lý thuyết, các quy trình nghiệp vụ hệ thống.
Chương 3: Phân tích thiết kế, xây dựng cơ sở dữ liệu. Chương 4: Hiện thực ứng dụng. Chương 5: Kết luận và Hướng phát trién. Rest API Chúng ta thường nghe về REST và RESTful API trong phát triển ứng dụng Web, nhất là khi viết ứng dụng trải dài từ Web server tới Mobile app.
Tuy vậy nhưng bản thân REST lại không phải là tên 1 kỹ thuật, mà gắn với 1 bộ các quy tắc dùng đề tạo ra các API. Application kg API HTTP Client fentrypoint _—- Iresource1 /collection1 es Client App Đang =-———.: REST Library to_resourced) ky2zr>4 : applicatlonix-collection. resource} Eh application/x-resource Sap lban | HTTP Library Iresrouce2 Application Data Model Resource Model Server Client Hình 2.1: Mô tả hoạt động của Restful API Kiến trúc REST có 1 số đặc điểm như sau: Nhất quán xuyên suốt các API. Ví dụ: luôn luôn sử dụng danh từ số nhiều thay vì khi số nhiều, khi số ít.
Tôn tại mà không lưu trạng thái (Stateless existence), ví dụ như không sử dung session của server. Đây chính là lý do vì sao lại có cum State Transfer (ST) trong REST. Tính chất này đảm bảo rằng mỗi khi client submit 1 request, request ấy sẽ bao gồm toàn bộ các thông tin mà server cần đề xử lý request. Đây là điều cần thiết để build 1 ứng dụng phục vụ lên tới hàng triệu user.
Sử dụng HTTP status code khi có thé. Sử dụng URL Endpoint có phân tầng logic. Đánh version trong URL thay vì trong HTTP Headers 242. Serverless Serverless computing được giới thiệu cùng với các dịch vụ như AWS Lambda hay Azure Functions của Microsoft.
Chúng không thực sự là một hệ thống “không có máy chủ” mà thực tế máy chủ này không phải là thiết bị do bạn mua hoặc mất chi phí để duy trì. Về mặt lý thuyết, hệ thống này được quảng cáo như là một nguồn tài nguyên bạn có thê sử dụng mà không cần dùng tới máy chủ. Serverless hay còn được biết đến với một thuật ngữ khác là Function-as-a-Service (FaaS), là một mô hình máy tính trên cloud, giúp thực thi các đoạn code của lập trình viên được day lên trong các máy tinh stateless (phi trạng thai/khong lưu trữ trạng thái), được xử lý/trigger theo sự kiện, hoạt động tạm thời (có thé chỉ tồn tại cho một lần sử dung) và hoàn toàn được quản lý bởi bên thứ 3 ở đây là Nhà cung cấp dịch vụ cloud. Với kiến trúc serverless, lập trình viên chỉ cần tập trung vào viết các đoạn code logic mà không phải quan tâm về việc vận hành server đề đoạn code logic đó chạy được.2: Kiến trúc Serverless Kiên trúc của Serverless: Presentation và delivery layer Application layer Persistentces la Multi-layer concers 2.
NoSQL Database Co sở dit liệu NoSQL (tên gốc là "Non SQL" (phi SQL) hoặc "non relational" (phi quan hệ)) cung cấp một cơ ché đề lưu trữ và truy xuất dữ liệu được mô hình hóa khác với các quan hệ bảng được sử dụng trong các cơ sở dữ liệu kiểu quan hệ. Nguyên nhân cho hướng tiếp cận này bao gồm: tính đơn giản trong thiết kế, mở rộng theo "chiều ngang" cho các cụm máy đơn giản hơn (là bài toán cho các cơ sở dit liệu kiểu quan hệ), và kiểm soát tính khả dụng tốt hơn Hiện nay, trên thị trường có khá nhiều NoSQL Database Management System: Neo4j, GraphDatabase, MongoDB, RavenDB, Redis,. Ta có thé chia NoSQL thanh 4 loai: Key-Value Database. Column-Family Database.
56 «&^ 2 (›Øg NoSQL Ct atia m .* 3 5 ee (KEY)—> §WT Database ¿2 m Cees oo (UB tœ 0m Column-Family — Document Key-Value Hinh 2.3: Cac loai NoSQL Đối với bài báo cáo này sử dung NoSQL loại document database là Mongodb.js là một nền tảng chạy trên môi trường V8 JavaScript runtime - một trình thông dịch JavaScript cực nhanh chạy trên trình duyệt Chrome. Bình thường thì bạn cũng có thé tải bộ V8 và nhúng nó vào bất cứ thứ gì; Node.js làm điều đó đối với các web server. JavaScript suy cho cùng cũng chỉ là một ngôn ngữ - vậy thì không có lý do gì để nói nó không thé sử dụng trên môi Hình 2.4: NodeJS Trong một môi trường server điển hình LAMP (Linux-Apache- MySQL-PHP), bạn có một web server là Apache hoặc NGINX nằm dưới, cùng với PHP chạy trên nó. Mỗi một kết nối tới server sẽ sinh ra một thread mới, và điều này khiến ứng dụng nhanh chóng trở nên chậm chạp hoặc quá tải - cách duy nhất dé hỗ trợ nhiều người dùng hơn là bằng cách bổ sung thêm nhiều máy chủ.
Đơn giản là nó không có khả năng mở rộng tốt. Nhưng với Node.js thì điều này không phái là van đề. Không có một máy chủ Apache lắng nghe các kết ni tới và trả về mã trạng thái HTTP - bạn sẽ phải tự quản lý kiến trúc lõi của máy chủ đó. May mắn thay, có một số module giúp thực hiện điều này được dễ dàng hơn, nhưng công việc này vẫn gây cho bạn một chút khó khăn khi mới bắt đầu.
Tuy nhiên, kết quả thu được là một ứng dụng web có tốc độ thực thi cao. ReactJS ReactJS được hiểu nôm na là một thư viện trong đó có chứa nhiều JavaScript mã nguồn mở và cha đẻ của ReactJS đó chính là một ông lớn với cai tên ai cũng biết đó chính là Facebook. Mục dich của việc tạo ra ReactJS là để tạo ra những ứng dụng website hấp dẫn với tốc độ nhanh và hiệu quả cao với những mã hóa tối thiểu. Và mục đích chủ chốt của ReactJS đó chính là mỗi website khi đã sử dụng ReactJS thì phải chạy thật mượt thật nhanh và có khả năng mở rộng cao và đơn giản thực hiện.
Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, ma còn được render trên server và có thé kết nỗi với nhau. React so sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và cập nhật ít thay đổi nhất trên DOM.5: Cách hoạt động ReactJS 2. Redis Redis là một hệ thống dùng để lưu trữ dữ liệu dưới dang Key - Value mạnh mẽ. Nếu nói Redis như một bộ nhớ Cache, một Database hoặc Message Broker cũng không sai.
Mọi thông tin, dữ liệu đều được redis ghi trên ram thay vi 6 đĩa hay 6 SSD như bình thường. Nhờ việc không cần dùng 6 dia hay 6 SSD nên Redis sẽ rút ngắn thời gian tìm kiếm, truy cập dữ liệu. Vì thế mà tốc độ đọc và ghi đữ liệu trên Redis rất nhanh, rat lý tưởng. 10 SETUSER alice on >appl3 ~cached:* +get GET cached:foo VY SETUSER bob on >p34r ~cached:* +get GET foo xX SETUSER sue on >p1_m ~cached:* +get SET foo bar 4.
Python Python là ngôn ngữ lập trình hướng đi tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum. Nó dễ dàng đề tìm hiểu và đang nồi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu tric đữ liệu cắp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng.
Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viết script và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng. 11 Flutter là một Framework viết trên nền ngôn ngữ Dart.