TRƯỜNG ĐẠI HỌC KIẾN TRÚC ĐÀ NẴNG
----------------------------------------
BÁO CÁO KẾT QUẢ ĐỒ ÁN CÔNG
NGHỆ PHẦN MỀM
ĐỀ TÀI : Y DỰNG TRANG WEB COFFEE
GIẢNG VIÊN : PHẠM THỊ DUNG
Sinh Viên Thực Hiện : Nguyễn Công Anh
I. CHƯƠNG 1 : GIỚI THIỆU VÀ HƯỚNG DẪN CÀI ĐẶT MÔI
TRƯỜNG THỰC HIỆN ĐỀ TÀI .......................................................... 3
1.Khái niệm về công nghệ phần mềm và react js .............................. 3
2. Xu hướng phát triển Công Nghệ Phần Mềm và React js............. 4
3. Hướng dẫn cài đặt môi trường React js ........................................ 5
4. Tổng quan về đề tài xây dựng ứng dụng Coffee ......................... 14
II. CHƯƠNG 2: SƠ ĐỒ CÁC BIỂU ĐỒ TUẦN TỰ, USE CASE ,
DỮ LIỆU, CÁC BẢN THIẾT KẾ TRANG DEMO .......................... 17
A. 1.Sơ đồ biểu đồ tuần tự ................................................................. 17
B. 2. Sơ đồ Use Case ........................................................................... 18
C. 3. Sơ đồ dữ liệu .............................................................................. 19
III. CHƯƠNG 3: TRÌNH BÀY DEMO THỰC HIỆN ...................... 29
I. CHƯƠNG 1 : GIỚI THIỆU VÀ HƯỚNG DẪN CÀI ĐẶT MÔI
TRƯỜNG THỰC HIỆN ĐỀ TÀI
1.Khái niệm về công nghệ phần mềm và react js
Công nghệ phần mềm lĩnh vực nghiên cứu, phát triển áp dụng các
phương pháp, quy trình, công cụ nguyên tắc để phát triển duy trì các
sản phẩm phần mềm. Trong thế giới công nghệ ngày nay, ng nghệ phần
mềm đóng vai trò quan trọng trong việc xây dựng các ứng dụng hệ
thống phức tạp, từ các ứng dụng di động đến các hệ thống máy chủ lớn.
Trong lĩnh vực phát triển web, ReactJS một trong những công nghệ phổ
biến mạnh mẽ nhất hiện nay. ReactJS một thư viện JavaScript
nguồn mở được phát triển bởi Facebook, được sử dụng đxây dựng các
giao diện người dùng (UI) tương tác trong các ứng dụng web.
Môi trường ReactJS là một cộng đồng lớn đầy đủ các tài nguyên, công
cụ thư viện hỗ trợ đphát triển các ứng dụng web hiệu quả và linh hoạt.
Dưới đây một số điểm nổi bật về môi trường ReactJS: Component-
Based Architecture: ReactJS áp dụng một kiến trúc dựa trên thành phần
(component-based architecture), cho phép phân chia giao diện người dùng
thành các thành phần độc lập tái sử dụng được. Điều này giúp tăng
cường khả năng bảo trì và mở rộng của mã nguồn.
Virtual DOM: ReactJS sử dụng Virtual DOM để tối ưu hóa hiệu suất của
ứng dụng. Virtual DOM một phiên bản nhẹ của DOM (Document
Object Model) mà ReactJS sử dụng để theo dõi thay đổi và cập nhật giao
diện người dùng một cách hiệu quả.
JSX (JavaScript XML): ReactJS sử dụng JSX, một phần mở rộng của
JavaScript cho phép viết HTML trong JavaScript. Điều này giúp tạo ra
nguồn dễ đọc và dhiểu hơn, đồng thời cung cấp tính linh hoạt trong việc
xây dựng giao diện người dùng.
Huge Ecosystem: ReactJS có một cộng đồng phong phú và mạnh mẽ, với
nhiều công cụ, thư viện và tài liệu hỗ trợ. Điều này giúp cho việc học
phát triển ứng dụng ReactJS trở nên dễ dàng hơn.
React Native: ReactJS không chỉ hỗ trợ phát triển ứng dụng web còn
scho React Native, một framework cho phép phát triển ứng dụng
di động sử dụng ReactJS và JavaScript.
Môi trường ReactJS không ngừng phát triển và trở nên mạnh mẽ hơn qua
từng phiên bản, mang lại nhiều cơ hội và tiềm năng cho các nhà phát triển
web.
2. Xu hướng phát triển Công Nghệ Phần Mềm và React js
Xu hướng phát triển trong lĩnh vực công nghệ phần mềm và môi trường
ReactJS đang tiếp tục thay đổi phát triển theo thời gian. Dưới đây
một số xu hướng đáng chú ý:
- Phát triển Cross-Platform: Xu hướng phát triển các ng dụng
khảnăng chạy trên nhiều nền tảng khác nhau đang trở nên phổ biến. Sự ra
đời của các framework như React Native và Flutter cung cấp cho các nhà
phát triển khả năng xây dựng ứng dụng di động cho cả iOS Android từ
một mã nguồn duy nhất.
- Mai mối giữa Frontend và Backend: Ngày càng có sự tích hợp chặt
chẽhơn giữa phần frontend và backend của ứng dụng. Các kiến trúc như
MERN (MongoDB, Express.js, React.js, Node.js) hoặc MEAN
(MongoDB, Express.js, AngularJS hoặc Angular, Node.js) đang trở nên
phổ biến, giúp cho việc phát triển và triển khai ứng dụng trở nên dễ dàng
hơn.
- Tối ưu hóa hiệu suất và trải nghiệm người dùng: Với sự gia tăng
củacác ứng dụng web di động, tối ưu hóa hiệu suất trải nghiệm
người dùng một xu hướng quan trọng. Các kthuật như Progressive
Web Apps (PWA) Single Page Applications (SPA) đang đưc ưa
chuộng để cung cấp trải nghiệm người dùng mượt tốc độ tải trang
nhanh chóng.
- Sự phát triển của Machine Learning AI: Machine Learning (ML)
vàArtificial Intelligence (AI) đang ngày càng được tích hợp vào các ứng
dụng phần mềm. ReactJS không chỉ cung cấp khả năng tích hợp dễ dàng
với các thư viện và framework ML/AI mà còn cung cấp các công cụ phát
triển đồng thời hiệu quả.
- Tăng cường bảo mật quản dữ liệu: Với sự gia tăng của các
cuộctấn công mạng quy định về bảo vdữ liệu nhân nGDPR,
việc tăng cường bảo mật và quản dliệu trthành một ưu tiên hàng
đầu trong việc phát triển ứng dụng. Các ng nghệ như JSON Web Tokens
(JWT), OAuth và HTTPS đang được sử dụng rộng rãi để bảo vệ thông tin
người dùng.
- Những xu hướng này đang cùng nhau định hình bức tranh phát
triểncủa lĩnh vực ng nghệ phần mềm môi trường ReactJS, tạo ra
những cơ hội mới và thách thức cho các nhà phát triển và doanh nghiệp.
3. Hướng dẫn cài đặt môi trường React js
Bước 1 - Tạo Thư mục gốc
Tạo một thư mục với tên reactApp trên màn hình để cài đặt tất cả các tệp
được yêu cầu, sử dụng lệnh mkdir. C:\Users\username\Desktop>mkdir
reactApp
C:\Users\username\Desktop>cd reactApp
Để tạo bất kỳ mô-đun nào, cần phải tạo tệp package.json . Do đó, sau khi
Tạo thư mục, chúng ta cần tạo một tệp package.json . Để làm nvậy,
bạn cần chạy lệnh npm init từ dấu nhắc lệnh.
C:\Users\username\Desktop\reactApp>npm init
Lệnh này hỏi thông tin về mô-đun như tên gói, mô tả, c giả, v.v. bạn
thể bỏ qua các thông tin này bằng cách sử dụng tùy chọn y.
C:\Users\username\Desktop\reactApp>npm init -y
Bước 2 - cài đặt React và react dom
Kể từ khi nhiệm vchính của chúng tôi là để cài đặt ReactJS, cài đặt ,
các gói dom của , sử dụng cài đặt phản ứng và phản ứng-dom lệnh
của NPM tương ứng. Bạn thể thêm các gói chúng tôi cài đặt vào tệp
package.json bằng cách sử dụng tùy chọn --save .
C:\Users\Tutorialspoint\Desktop\reactApp>npm install react --save
C:\Users\Tutorialspoint\Desktop\reactApp>npm install react-dom --save
Hoặc, bạn th cài đặt tất cả chúng bằng một lệnh duy nhất
nhưC:\Users\username\Desktop\reactApp>npm install react react-dom --
save
Bước 3 - Cài đặt webpack
chúng tôi đang sử dụng webpack đ tạo gói cài đặt i, webpack-
devserver và webpack-cli.
C:\Users\username\Desktop\reactApp>npm install webpack --save
C:\Users\username\Desktop\reactApp>npm install webpack-dev-server -
-save
C:\Users\username\Desktop\reactApp>npm install webpack-cli --save
Hoặc, bạn có thể cài đặt tất cả chúng bằng một lệnh duy nhất như-
C:\Users\username\Desktop\reactApp>npm install webpack
webpackdev-server webpack-cli --save
Bước 4 - Cài đặt babel
Cài đặt babel và các plugin babel-core, babel-loader, babel-preset-env,
babel-preset-react và, html-webpack-plugin
C:\Users\username\Desktop\reactApp>npm install babel-core --save-dev
C:\Users\username\Desktop\reactApp>npm install babel-loader --
savedev
C:\Users\username\Desktop\reactApp>npm install babel-preset-env -
save-dev
C:\Users\username\Desktop\reactApp>npm install babel-preset-react -
save-dev
C:\Users\username\Desktop\reactApp>npm install html-webpack-plugin
--save-dev
Hoặc, bạn có thể cài đặt tất cả chúng bằng một lệnh duy nhất như -
C:\Users\username\Desktop\reactApp>npm install babel-core
babelloader babel-preset-env
Bước 5 - Tạo tệp
Để hoàn tất quá trình cài đặt, chúng ta cần tạo một số tệp cụ thể
index.html, App.js, main.js, webpack.config.js và,. babelrc . Bạn thể
tạo các tệp này theo cách thủ công hoặc sử dụng dấu nhắc lệnh .
C:\Users\username\Desktop\reactApp>type nul > index.html
C:\Users\username\Desktop\reactApp>type nul > App.js
C:\Users\username\Desktop\reactApp>type nul > main.js
C:\Users\username\Desktop\reactApp>type nul > webpack.config.js
C:\Users\username\Desktop\reactApp>type nul > .babelrc
Bước 6 - Đặt Trình biên dịch, Máy chủ và Bộ tải
Mở tệp webpack-config.js và thêm mã sau. Chúng tôi đang đặt điểm nhập
webpack thành main.js. Đường dẫn đầu ra nơi ứng dụng đi kèm sẽ được
phân phát. Chúng tôi cũng đang đặt máy chủ phát triển thành cổng 5000 .
Bạn có thể chọn bất kỳ cổng nào bạn muốn.
webpack.config.js const path = require('path'); const
HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './main.js', output: { path:
path.join(__dirname, '/bundle'),
filename: 'index_bundle.js'
},
devServer: {
inline: true,
port: 5000
},
module: {
rules: [ { test:
/\.jsx?$/, exclude:
/node_modules/, loader:
'babel-loader', query: {
presets: ['es2015', 'react']
}
}
]
},
plugins:[ new
HtmlWebpackPlugin({
template: './index.html'
})
]
}
Mở package.json xóa "test" "echo \" Lỗi: không chỉ định thử nghiệm \
"&& thoát 1" bên trong đối tượng "scripts" . Chúng tôi đang xóa dòng này
chúng i sẽ không thực hiện bất kỳ thnghiệm nào trong hướng dẫn
này. Thay vào đó, hãy thêm lệnh bắt đầu và xây dựng . "start": "webpack-
dev-server --mode development --open --hot",
"build": "webpack --mode production"
Bước 7 - index.html
Đây chỉ HTML thông thường. Chúng tôi đang đặt div id = "app" làm
phần tử gốc cho ứng dụng của mình và thêm tập lệnh index_bundle.js ,
tệp ứng dụng đi kèm của chúng tôi.
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>React App</title>
</head>
<body>
<div id = "app"></div>
<script src = 'index_bundle.js'></script>
</body>
</html>
Bước 8 - App.jsx và main.js
Đây thành phần React đầu tiên. Chúng i sẽ giải thích sâu hơn về các
thành phần của React trong chương tiếp theo. Thành phần này sẽ hiển thị
Hello World . App.js import React, { Component } from 'react'; class App
extends Component{ render(){ return( <div>
<h1>Hello World</h1>
</div>
);
}
}
export default App;
Chúng tôi cần nhập thành phần này hiển thị thành phần tử Ứng dụng
gốc của chúng tôi , đchúng tôi thể nhìn thấy trong trình duyệt.
main.js
import React from 'react'; import
ReactDOM from 'react-dom';
import App from './App.js';
ReactDOM.render(<App />, document.getElementById('app'));
Lưu ý - Bất cứ khi nào bạn muốn sử dụng thứ đó, bạn cần nhập
trước. Nếu bạn muốn làm cho thành phần thể sử dụng được trong các
phần khác của ứng dụng, bạn cần xuất thành phần đó sau khi tạo và nhập
thành phần đó vào tệp nơi bạn muốn sử dụng.
Tạo một tệp có tên .babelrc và sao chép nội dung sau vào tệp đó.
{
"presets":["env", "react"]
}
Bước 9 - Chạy máy chủ
Quá trình thiết lập hoàn tất chúng ta thể khởi động máy chủ bằng
cách chạy lệnh sau.
C:\Users\username\Desktop\reactApp>npm start
sẽ hiển thị cổng chúng ta cần mở trong trình duyệt. Trong trường
hợp của chúng tôi, đó http: // localhost: 5000 / . Sau khi chúng ta mở
nó, chúng ta sẽ thấy kết quả sau.
Bước 10 - Tạo gói
Cuối cùng, để tạo i, bạn cần chạy lệnh xây dựng trong dấu nhắc lệnh
dưới dạng:
C:\Users\Tutorialspoint\Desktop\reactApp>npm run build
Thao tác này stạo gói trong thư mục hiện tại như được hiển thị bên dưới.
Sử dụng lệnh create-react-app
Thay sử dụng webpack và babel, bạn thể cài đặt ReactJS đơn giản
hơn bằng cách cài đặt ứng dụng tạo-phản ứng .
Bước 1 - cài đặt ứng dụng tạo-phản ứng
Duyệt qua màn hình cài đặt Ứng dụng Tạo React bằng dấu nhắc lệnh
như hình dưới đây
C:\Users\Tutorialspoint>cd C:\Users\Tutorialspoint\Desktop\
C:\Users\Tutorialspoint\Desktop>npx create-react-app my-app
Thao tác này sẽ tạo một thư mụcn là ứng dụng của tôi trên màn hình
và cài đặt tất cả các tệp cần thiết trong đó.
Bước 2 - Xóa tất cả các tệp nguồn
Duyệt qua thư mục src trong thư mục ứng dụng của i đã tạo a tất
cả các tệp trong đó như hình dưới đây
C:\Users\Tutorialspoint\Desktop>cd my-app/src
C:\Users\Tutorialspoint\Desktop\my-app\src>del *
C:\Users\Tutorialspoint\Desktop\my-app\src\*, Are you sure (Y/N)? y
Bước 3 - Thêm tệp
Thêm tệp có tên index.css và index.js trong thư mục src dưới dạng:
C:\Users\Tutorialspoint\Desktop\my-app\src>type nul > index.css
C:\Users\Tutorialspoint\Desktop\my-app\src>type nul >
index.js Trong tệp index.js, hãy thêm mã sau import React from
'react'; import ReactDOM from 'react-dom';
import './index.css';
Bước 4 - Chạy dự án
Cuối cùng, chạy dự án bằng lệnh start.
npm start
4. Tổng quan về đề tài xây dựng ứng dụng Coffee
Mục tiêu của dự án là xây dựng một ứng dụng web cho phép người dùng
đặt hàng coffee trực tuyến. Người dùng thể truy cập ứng dụng, xem
menu của cửa hàng coffee, lựa chọn các loại cofee các món phkhác
nhau, thêm vào giỏ hàng và thực hiện thanh toán.
Chức Năng Chính Của Người Dùng:
- Hiển thị menu: Hiển thdanh sách các loại coffee và các món
phụ có sẵn để người dùng lựa chọn.
- Thêm vào giỏ hàng: Cho phép người dùng thêm các sản phẩm
vào giỏ hàng và điều chỉnh số lượng.
- Quản giỏ hàng: Cho phép người dùng xem chỉnh sửa
giỏ hàng của họ trước khi thanh toán.
-Thanh toán: Cho phép người dùng nhập thông tin thanh toán
hoàn tất đơn hàng người dùng thể thanh toán online hoặc thanh
toán sau khi nhận hàng.
- Đăng Nhập , Đăng : Sau khi đăng thành công người
dùng bắt buộc phải xác thực email của người dùng đã đăng thì
mới được vào ứng dụng để mua sản phẩm.
- Tìm kiếm sản phẩm: Tính năng tìm kiếm cho phép người
dùng tìm kiếm các sản phẩm coffee theo từ khóa, ví dụ như tên loại
coffee.
- Xem thông tin sản phẩm: Tính năng này cho phép người
dùng xem thông tin chi tiết về một sản phẩm coffee cụ thể.
- Quản Lịch Sử Mua Hàng : Xem được tất cả các sản phẩm
của tất cả mà người dùng đó đã mua
- Thông Tin Người Dùng: thể xem được các thông tin
nhân của mình và chỉnh sửa
Chức Năng Chính Của Admin:
- Quản lý Sản Phẩm : Thêm , sửa, xóa sản phẩm và có thể biết
được 1 ngày được thêm bao nhiêu sản phẩm đó những loại nào
- Quản Người Dùng: Thêm , Sửa, Xóa người dùng
thể phân quyền người dùng
- Quản Lý Đơn Hàng : thể kiểm tra được đơn hàng này đã
thanh toán hay chưa và giao hàng có thành công hay không - Quản
Lịch Sử Mua Hàng : Xem được tất cả các sản phẩm của tất cả
người dùng đã mua
Chức Năng Chính Của Shipper:
-Quản Lý Đơn Hàng : Có thể kiểm tra xem đơn hàng này đã thanh
toán hay chưa Shipper người cập nhật các đơn hàng đó thành
công hay thất bại
Thiết kế giao diện:
- Thiết kế giao diện người dùng thân thiện, dễ sử dụng và trựcquan.
- Sử dụng các thành phần UI như buttons, forms, modals để tạo
ratrải nghiệm người dùng tốt nhất.
Quản lí trạng thái ứng dụng:
- Sử dụng ReactJS để quản trạng thái ứng dụng một cách hiệu
quả, bao gồm trạng thái của giỏ hàng, thông tin sản phẩm
thông tin thanh toán.
Tính linh hoạt và mở rộng:
- Xây dựng ứng dụng một cách linh hoạt mở rộng, cho phép
thêm các tính năng mới như đăng nhập, theo i đơn hàng, hoặc
tích hợp hệ thống thanh toán trực tuyến.
II. CHƯƠNG 2: SƠ ĐỒ CÁC BIỂU ĐỒ TUẦN TỰ, USE CASE ,
DỮ LIỆU, CÁC BẢN THIẾT KẾ TRANG DEMO
1.Sơ đồ biểu đồ tuần tự
2. Sơ đồ Use Case
- Dưới đây là sơ đồ UseCase của đề tài:
3. Sơ đồ dữ liệu
- Dưới đây một đ dữ liệu đơn giản cho sở d liệu của ứng
dụngCoffee bao gồm các bảng chính và mối quan hệ giữa chúng:
+ Bảng OrderItem:
- Khoá chính: id
- Khóa phụ: productId (tham chiếu đến bảng Product)
- Thuộc tính: quantity + Bảng Product: - Khoá chính: id
- Khóa phụ: categoryId (tham chiếu đến bảng Category)
- Thuộc tính: name, price, description, imgUrl +Bảng Category:
- Khoá chính: id - Thuộc tính: name + Bảng User:
- Khoá chính: Id
- Thuộc tính: firstName, lastName, email, password, isverifyEmail,role,
verifyEmailToken + Bảng Orders:
- Khoá chính: OrderId