Tải bản đầy đủ (.docx) (43 trang)

(Tiểu luận) báo cáo môn học công nghệ phần mềm thiết kế và xây dựng phần mềm quản lý khách sạn

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (991.49 KB, 43 trang )

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM
KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM

BÁO CÁO MÔN HỌC CÔNG NGHỆ PHẦN MỀM
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM
QUẢN LÝ KHÁCH SẠN
Giảng viên: ThS. Từ Thanh Trí
Sinh viên thực hiện:

Nguyễn Hồi Phong
Nguyễn Hồng Vũ

Lớp : 07_ĐHCNTT1
Khoá : 07


TP. Hồ Chí Minh, tháng 11 năm 2021

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM
KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM

BÁO CÁO MÔN HỌC CÔNG NGHỆ PHẦN MỀM
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

THIẾT KẾ VÀ XÂY DỰNG PHẦN MỀM
QUẢN LÝ KHÁCH SẠN
Giảng viên: ThS. Từ Thanh Trí
Sinh viên thực hiện:


Nguyễn Hoài Phong
Nguyễn Hoàng Vũ

Lớp : 07_ĐHCNTT1


Khố : 07

TP. Hồ Chí Minh, tháng 11 năm 2021

MỞ ĐẦU
Khách sạn hiện là một trong những lĩnh vực nổi tiếng ở thời điểm hiện tại, với nhu
cầu du lịch ngày đang tăng cao thì khách sạn trở thành một nhu cầu tất yếu cho những du
khách. Hiện nay, với sự bùng của Công Nghệ Thông Tin, lĩnh vực khách sạn cũng cần tin
học hóa theo sao cho có thể phát triển mạnh mẽ hơn nữa.
Công nghệ thông tin đang là một trong những lĩnh vực phát triện mạnh mẽ nhất hiện
nay. Đây là lĩnh vực đã và đang là vấn đề không thiểu thiếu đối với bất cừ lĩnh vực nào
trong đời sống. Chính vì thế, nhóm tác giả đã áp dụng Cơng nghệ thơng tin nhằm tin học
hóa các nghiệp vụ cần thiết để giúp các chủ khách sạn có thể quản lý trực tuyến một cách dễ
dàng hơn.
Từ việc vận dụng những kiến thức đã học các kiến thức đã học cùng với sự giúp đỡ
nhiệt tình giảng viên hướng dẩn ThS. Từ Thanh Trí, tác giả đã có cái nhìn tổng về đề tài và
áp dụng các kiến thức quý báu đó vào báo cáo này.
Đề tài gồm có 4 phầm như sau:
Chương 1: Tổng quan và giới thiệu: Giới thiệu đề tài: Phạm vi, phương pháp
nghiên cứu, mục tiêu và ý nghĩa.
Chương 2: Cơ sở lý thuyết: Giới thiệu các công cụ hổ trợ trong q trình thực
hiện đề tài. Các ngơn ngữ, framework và kỹ thuật sử dụng để giải quyết bài toán.

Chương 3: Cài đặt và thử nghiệm ứng dụng: Phân tích chuyên sâu ứng dụng,

biểu diễn bằng các sơ đồ UML và nêu rõ chức năng từng giao diện.


Chương 4: Kết luận: Bài học và kinh nghiệm rút ra từ đề tài. Nêu điểm hạn
chế và hướng phát triển của đề tài


LỜI CẢM ƠN
Nhóm tác giả xin gửi lời cám ơn chân thành tới tập thể quý Thầy Cô trường đại học
Tài Ngun và Mơi Trường nói chung và q Thầy Cơ khoa Hệ thống thơng tin và viễn
thám nói riêng đã truyền dạy những kiến thức vô cùng quý báu, từ đó làm nền tảng để thực
hiện báo cáo.
Đặt biệt, tác giả xin gửi lời cám ơn và lòng biết ơn sâu sắc nhất tới ThS. Từ Thanh
Trí đã tận tình hướng dẫn, sửa chữa và đóng góp nhiều lời nhận xét để hoàn thành tốt báo
cáo.
Với thời gian thực hiện đề tài báo cáo, nhóm tác giả đã cố gắng hết sức mình từ
những kiến thức đã được tích lũy. Từ đó, nhóm tác giả vận dụng tối đa những hiểu biết của
bản thân để hoàn thành một báo cáo tốt nhất có thể. Tuy nhiên trong q trình thực hiện
khơng tránh khỏi những thiếu sót. Chính vì vậy, nhóm tác giả rất mong nhận được những sự
góp ý từ phía các Thầy Cơ nhằm hồn thiện những lỗ hổng kiến thức trong học tập, quá
trình thực tập và là hành trang để thực hiện các đề tài, các dự án khác trong tương lai.


NHẬN XÉT
(Của giảng viên mơn học)
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................

.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
TP.Hồ Chí Minh, ngày 12 tháng 11 năm 2021

Giảng viên

KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT
CNTT
IDE
API
REST
HTTP
MVC
JWT
JSON

Công nghệ thông tin
Integrated Development Environment
Application Programming Interface

Representational State Transfer
HyperText Transfer Protocol
Model – View – Controller
JSON Web token
JavaScript Object Notation


UML

Unified Modeling Language


MỤC LỤC
Chương 1: Tổng quan và giới thiệu......................................................................1
1.1.

Tổng quan đề tài................................................................................1

A. Giới thiệu........................................................................................1
B. Mục Tiêu........................................................................................ 1
C. Phạm vi..........................................................................................1
D. Phương pháp nghiên cứu....................................................................... 2
E. Ý nghĩa.......................................................................................... 2
Chương 2: Cơ sở lý thuyết................................................................................3
2.1.

Công cụ sử dụng và hổ trợ......................................................................3

A. Visual Studio Code..............................................................................3
B. Postman......................................................................................... 3

C. MongoDB........................................................................................4
2.2.

Ngôn ngữ, nền tảng , framework...............................................................5

A. NodeJS, Express JS............................................................................. 5
B. ReactJS..........................................................................................7
C. 3API và RESTFUL API........................................................................ 7
D. GitHub...........................................................................................8
2.3

Kỹ thuật sử dụng.............................................................................. 10

A. JSON Web Token..............................................................................10
B. Lâp trình đồng bộ (Synchronous) và bất đồng bộ (Asynchronous)......................... 12
Chương 3: Cài đặt và thử nghiệm ứng dụng........................................................... 13
3.3.1

Xác định yêu cầu bài tốn..................................................................13

A. Quản lý các phịng trong khách sạn...........................................................13
B. Phân quyền.....................................................................................13
C. Xác thực đăng nhập và quyền hạn............................................................13
D. Đặt phòng, thanh tốn.........................................................................13
3.3.2

Xây dựng chương trình.....................................................................13

A. Xác định & Phân tích các thực thể hệ thống................................................. 13
3.3.3


Phân tích hệ thống với UML............................................................... 16

A. Biểu đồ Usecase................................................................................ 16
B. Mơ hình quan hệ thực thể (ERD)............................................................. 22
C. Sơ đồ lớp....................................................................................... 23
D. Sơ đồ tuần tự...................................................................................24


Phân tích thiết kế giao diện với chức năng.................................................27

3.3.4

A. Giao diện đăng nhập...........................................................................27
B. Giao diện đăng ký..............................................................................29
C. Giao diện trang chủ............................................................................. 30
D. Giao diện thanh toán............................................................................32
Chương 4: Kết luận......................................................................................35
4.1. Kếết quả đạt được của đếề tài..................................................................... 35
A. Kết quả chung...................................................................................35
B. Kiến thức lập trình..............................................................................35
4.2. H nạ chếế của đếề tài...............................................................................35
4.3. Khuyếến nghị....................................................................................... 35
4.4 Hướng phát triển đếề tài.......................................................................... 36
TÀI LIỆU THAM KHẢO...............................................................................37

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí


Chương 1: Tổng quan và giới thiệu
1.1.

Tổng quan đề tài

A. Giới thiệu
Chúng ta có thể nói rằng thế kỷ 21 đã và đang chứng kiến sự phát triển mạnh mẽ của
ngành Công nghệ thông tin. Công nghệ thông tin (CNTT) đã và đang thay đổi thế giới một
cách nhanh chóng và từng bước kéo nền tri thức của nhân loại xích lại gần nhau hơn. Đó là
nhờ việc phát triển hệ thống website trên toàn thế giới. Ngày nay, Website đã đóng một vai
trị quan trọng đối với con người chúng ta từ giải trí cho đến quảng cáo, thương mại, quản lý,
blog…Website (thương mại điện tử) sẽ dần dần thay thế những phương thức cũ trong các
phương thức cũ bởi tính ưu việt mà Website mang lại như: nhanh hơn, rẽ hơn, tiện dụng hơn,
hiệu quả hơn và không bị giới hạn không gian và thời gian.
Với tình hình dịch bệnh covid hiện tại, việc triển khai cái hình thức thơng thường của
khách sạn (đặt phịng, thanh tốn, hủy phịng) sang trực tuyến là hết sức cần thiết. Tin học
hóa các nghiệp vụ này khơng chỉ đảm bảo sức khỏe giữa hai bên mà còn giúp chủ khách sạn
quản lý dễ dàng hơn.
B.

Mục Tiêu
Xây dựng Website quản lý khách sạn.
Đặt phịng, hủy phịng, thanh tốn tiện lợi
Thiết kế giao diện gần gũi, dễ sử dụng cho người dùng.
Giải thích các cơng nghệ, cơng cụ, framework sử dụng trong quá trình nghiên
cứu.


Đưa ra các báo cáo, tổng hợp

C.

Phạm vi
Bất kỳ ai cũng có thể tham gia trở thành người dùng của hệ thống khách sạn này.

Khách hàng khi trở thành người dùng sẽ có thể xem chi tiết các phịng mình đặt. Bên cạnh đó
ai ai cũng có thể vào xem trang web của hệ thống, xem các phòng trước khi tạo một tài
khoản.
1
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

D. Phương pháp nghiên cứu
Phương pháp nghiên cứu lý thuyết:
o

Nghiên cứu hệ thống, cấu trúc của một website cơ bản.

o

Các tài liệu liên quan đến xây dựng một website.

o

Các nghiệp vụ liên quan đến lĩnh vực khách sạn. Phương pháp điều tra:

Điều tra, phân tích tình trạng của khách sạn cụ thể

o
E. Ý nghĩa

Nếu thực hiện thành công đề tài này sẽ mang lại ý nghĩa to lớn về cả thực tiễn lẫn lý luận.
Ý nghĩa lý luận của đề tài:
Toàn bộ chương trình và bản thuyết minh của đề tài sẽ trở thành tài liệu
nghiên cứu, tham khảo nhanh, dễ hiểu, thiết thực cho những thầy cô giáo và các bạn
sinh viên, những người u thích bộ mơn cơng nghệ Web và ứng dụng.
Ý nghĩa thực tiễn của đề tài:
Với sự thành cơng của đề tài sẽ góp phần giúp cho việc quản lý khách sạn qua
hình thức trực tuyến trở nên dễ dàng hơn.


2
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

Chương 2: Cơ sở lý thuyết
2.1.

Công cụ sử dụng và hổ trợ
A. Visual Studio Code
Visual Studio Code (VS Code hay VSC) Là một trình biên tập lập trình code miễn


phí dành cho Windows, Linux và macOS, Visual Studio Code được phát triển bởi Microsoft.
Nó được xem là một sự kết hợp hồn hảo giữa IDE 1 và Code Editor2.
Visual Studio Code hỗ trợ chức năng tìm kiếm lỗi, đi kèm với Git, có syntax
highlighting3, tự hồn thành mã thơng minh, snippets 4, và cải tiến mã nguồn. Nhờ tính năng
tùy chỉnh, Visual Studio Code cũng cho phép người dùng thay đổi theme, phím tắt, và các
tùy chọn khác.

Hình 2.1. Visual studio code

B. Postman
Postman là một công cụ cho phép chúng ta thao tác với API, phổ biến nhất là REST.
Postman hiện là một trong những công cụ phổ biến nhất được sử dụng trong thử nghiệm các
API. Với Postman, ta có thể gọi Rest API mà khơng cần viết dịng code nào.
IDE (Integrated Development Environment) là mơi trường tích hợp dùng để viết code để
phát triển ứng dụng.
2 Code Editor: Trình soạn thảo code
Syntax highlighting là một công cụ giúp tô màu các đoạn mã nguồn
1

3


Snippet là một đoạn code được định nghĩa sẵn và gắn vào một từ khố nào đó, khi cần
dùng thì ta sẽ gọi từ khố đó để chèn nội dung mà ta đã định nghĩa
4

3
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ


Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

Postman hỗ trợ tất cả các phương thức HTTP 5 (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ện cho việc sử dụng lại
khi cần.

Hình 2.2. Postman

C. MongoDB
MongoDB là một database hướng tài liệu (document), một dạng NoSQL 6 database. Vì
thế, MongoDB sẽ tránh cấu trúc table-based của relational database để thích ứng với các tài
liệu như JSON 7có 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ác kích cỡ và các document khác
nhau.
MongoDB lần đầu ra đời bởi MongoDB Inc., tại thời điểm đó là thế hệ 10, vào thá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ển thành nguồn mở từ năm
2009.

HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản được sử
dụng trong www dùng để truyền tải dữ liệu giữa Web server đến các trình duyệt Web
và ngược lại
5

Cơ sở dữ liệu NoSQL là một Hệ thống quản lý dữ liệu không quan hệ (non-relational Data
Management System) có lược đồ (schema) linh hoạt. Nó dễ mở rộng. Mục đích chính của

việc sử dụng cơ sở dữ liệu NoSQL là dành cho các kho dữ liệu phân tán với nhu cầu lưu trữ
dữ liệu lớn.
7 JSON ( JavaScript Object Notation): là một tiêu chuẩn mở để trao đổi dữ liệu trên web.
6

4
Nguyếễn Hoài Phong


Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

Dữ liệu lưu trữ phi cấu trúc, khơng có tính ràng buộc, tồn vẹn nên tính sẵn sàng cao,
hiệu suất lớn và dễ dàng mở rộng lưu trữ.Dữ liệu được caching (ghi đệm) lên RAM, hạn chế
truy cập vào ổ cứng nên tốc độ đọc và ghi cao.

Hình 2.3. MongoDB

2.2.

Ngơn ngữ, nền tảng , framework
A. NodeJS, Express JS
Node.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 chúng ta 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 trường server tốt như là trong trình duyệt của người dùng được.

JavaScript là một ngơn ngữ dựa trên sự kiện, vì vậy bất cứ thứ gì xảy ra trên server
đều tạo ra một sự kiện non-blocking 8. Mỗi kết nối mới sinh ra một sự kiện; dữ liệu nhận
được từ một upload form sinh ra một sự kiện data-received; việc truy vấn dữ liệu từ database
cũng sinh ra một sự kiện. Trong thực tế, điều này có nghĩa là một trang web Node.js sẽ chẳng
bao giờ bị khóa (lock up) và có thể hỗ trợ cho hàng chục nghìn user truy
Non-blocking giúp chương trình khơng phải chờ đợi lần lượt mà sẽ ưu tiên những cơng
việc khác
8

5
Nguyếễn Hồi Phong
Nguyếễn Hồng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí


cập cùng lúc. Node.js đóng vai trị của server - Apache 9- và thơng dịch mã ứng dụng chạy
trên nó. Giống như Apache, có rất nhiều module (thư viện) có thể được cài đặt để bổ sung
thêm các đặc trưng và chức năng - như lưu trữ dữ liệu, hỗ trợ file Zip, đăng nhập bằng
Facebook, hoặc các cổng thanh tốn.

Hình 2.4 NodeJS
Expressjs hay cịn được viết là Express JS. Đây là một framework mã nguồn mở miễn
phí cho Node.js. Express JS được sử dụng trong thiết kế và xây dựng các ứng dụng web một

cách đơn giản và nhanh chóng.
Vì Express js chỉ u cầu ngơn ngữ lập trình Javascript nên việc xây dựng các ứng
dụng web và API

10

trở nên đơn giản hơn với các lập trình viên và nhà phát triển. Expressjs

cũng là một khuôn khổ của Node.js do đó hầu hết các mã code đã được viết sẵn cho các lập
trình viên có thể làm việc.
Nhờ có Expressjs mà các nhà lập trình có thể dễ dàng tạo các ứng dụng 1 web, nhiều
web hoặc kết hợp. Do có dung lượng khá nhẹ, Expressjs giúp cho việc tổ chức các ứng dụng
web thành một kiến trúc MVC có tổ chức hơn. Để có thể sử dụng được mã nguồn này, chúng
ta cần phải biết về Javascript và HTML. Đồng thời nó đã trở thành một mã nguồn mở.

9 Apache là phần mềm web server
10 API là viết tắt của Application

miễn phí mã nguồn mở
Programming Interface – phương thức trung gian kết nối
các ứng dụng và thư viện khác nhau.
6
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

B.


ReactJS
Khái niệm

GV: ThS. Từ Thanh Trí


React là một thư viện JavaScript front-end mã nguồn mở miễn phí để xây dựng giao
diện người dùng hoặc các thành phần UI. Nó được duy trì bởi Facebook và một cộng đồng
các nhà phát triển và công ty cá nhân. React có thể được sử dụng như một cơ sở để phát triển
các ứng dụng một trang hoặc ứng dụng di động.
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, mà 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.

Hình 2.4. React JS

C.

3API và RESTFUL API API
API là các phương thức, giao thức kết nối với các thư viện và ứng dụng khác. Nó là

viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp
khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng. Và từ đó có thể trao
đổi dữ liệu giữa các ứng dụng.
Ứng dụng API
Web API: là hệ thống API được sử dụng trong các hệ thống website. Hầu hết các
website đều ứng dụng đến Web API cho phép kết nối, lấy dữ liệu hoặc cập nhật cơ sở dữ
liệu. Ví dụ: Thiết kế chức nằng login thơng Google, Facebook, Twitter, Github… Điều
7

Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

này có nghĩa là đang gọi đến API của họ. Hoặc như các ứng dụng di động đều lấy dữ liệu
thông qua API.
API trên hệ điều hành: Windows hay Linux có rất nhiều API, họ cung cấp các tài liệu
API là đặc tả các hàm, phương thức cũng như các giao thức kết nối. Nó giúp lập trình viên có
thể tạo ra các phần mềm ứng dụng có thể tương tác trực tiếp với hệ điều hành.


API của thư viện phần mềm hay framework: API mô tả và quy định các hành động
mong muốn mà các thư viện cung cấp. Một API có thể có nhiều cách triển khai khác nhau và
nó cũng giúp cho một chương trình viết bằng ngơn ngữ này có thể sử dụng thư viện được
viết bằng ngôn ngữ khác.
RESTFUL API
REST (Representational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một
kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa
các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng,
REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv.. đến một URL để xử lý dữ
liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng
phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau.
Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method
(như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản

các resource. RESTful không quy định logic code ứng dụng và không giới hạn bởi ngơn ngữ
lập trình ứng dụng, bất kỳ ngơn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một
RESTful API.
D.

GitHub
Khái niệm

8
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án
phần mềm. Github có đầy đủ những tính năng của Git, ngồi ra nó cịn bổ sung những tính
năng về social để các developer tương tác với nhau.


Hình 2.5. Github

Vài thơng tin về GIT:
o

Là cơng cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.

o


Giúp đồng bộ source code của team lên 1 server.

o

Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check

modifications, show history, merge source, …)
GitHub có 2 phiên bản: miễn phí và trả phí. Với phiên bản có phí thường được các
doanh nghiệp sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật dự án.
Cịn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ source
code.
Github cung cấp các tính năng social networking như feeds, followers, và network
graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit.
Tính năng
GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng nhất
với các tính năng cốt lõi như:
o

Wiki, issue, thống kê, đổi tên project, project được đặt vào namespace là user.

9
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

o


GV: ThS. Từ Thanh Trí

Watch project: theo dõi hoạt động của project của người khác. Xem quá trình

người ta phát triển phầm mềm thế nào, project phát triển ra sao.
o

Follow user: theo dõi hoạt động của người khác.
Có 2 cách tiếp cận GitHub: Tạo project của riêng mình Contribute cho project có
sẵn: fork project có sẵn của người khác, sửa đổi, sau đó đề nghị họ cập nhật sửa đổi của mình
(tạo pull request).

2.3Kỹ thuật sử dụng
A.

JSON Web Token Khái niệm


JWT (JSON Web Token) là một phương tiện đại diện cho các yêu cầu chuyển giao
giữa hai bên Client – Server , các thông tin trong chuỗi JWT được định dạng bằng JSON.
Trong đó chuỗi Token phải có 3 phần là header , phần payload và phần signature được ngăn
bằng dấu “.”

Hình 2.8. Cấu trúc JWT (JSON web token)

10
Nguyếễn Hồi Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm

quản lý khách sạn

o

GV: ThS. Từ Thanh Trí

Header : Phần header sẽ chứa kiểu dữ liệu , và thuật toán sử dụng để mã hóa ra

chuỗi JWT

“typ” (type) ch raỉ rằềng đốếi ượtng là một JWT
“alg” (algorithm) xác định thuật toán mã hóa cho chuốễi làHS256

o

Payload : Phần payload sẽ chứa các thơng tin mình muốn đặt trong chuỗi

Token như username , userId , author


Signature : Phần chử ký này sẽ được tạo ra bằng cách mã hóa phần header ,

o

payload kèm theo một chuỗi secret (khóa bí mật)

Ví dụ

11
Nguyếễn Hồi Phong

Nguyếễn Hồng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

Hình 2.9. Ví dụ về JWT (JSON Web Token)

Vì sao sử dụng JWT ?
Authentication: Đây là trường hợp phổ biến nhất thường sử dụng JWT. Khi người dùng
đã đăng nhập vào hệ thống thì những request tiếp theo từ phía người dùng sẽ chứa thêm mã
JWT. Điều này cho phép người dùng được cấp quyền truy cập vào các url, service, và
resource mà mã Token đó cho phép. Phương pháp này không bị ảnh hưởng bởi Cross-Origin
Resource Sharing (CORS) do nó khơng sử dụng cookie 11.
Trao đổi thơng tin: JSON Web Token là một cách thức khá hay để truyền thơng tin an
tồn giữa các thành viên với nhau, nhờ vào phần signature của nó. Phía người nhận có thể
biết được người gửi là ai thơng qua phần signature. Và chữ ký được tạo ra bằng việc kết hợp
cả phần header, payload lại nên thơng qua đó ta có thể xác nhận được chữ ký có bị giả mạo
hay khơng.
B. Lâp trình đồng bộ (Synchronous) và bất đồng bộ (Asynchronous)


Lập trình đồng bộ (Synchronous) có nghĩa là xử lý đồng bộ, chương trình sẽ chạy theo
từng bước và chỉ khi nào bước 1 thực hiện xong thì mới nhảy sang bước 2, khi nào chương
trình này chạy xong mới nhảy qua chương trình khác. Đây là nguyên tắc cơ bản trong lập
trình, đó là khi biên dịch các đoạn mã thì trình biên dịch sẽ biên dịch theo thứ tự từ trên
xuống dưới, từ trái qua phải và chỉ khi nào biên dịch xong dòng thứ nhât mới nhảy sang dòng
thứ hai, điều này sẽ sinh ra một trạng thái ta hay gọi là trạng thái chờ.
Lập trình bất đồng bộ (Asynchronous) là khả năng thực thi các tác vụ độc lập nhau, có

nghĩa là chúng khơng nhất thiết phải chạy một cách tuần tự (có thể chạy song song với nhau)
hoặc xử lý này không phải đợi xử lý khác giúp cho việc cải thiện hiệu suất hoạt động của
ứng dụng
Lập trình bất đồng bộ thường được sử dụng trong các xử lý tiềm ẩn blocking, giống như
truy cập tới website, việc truy cập tài nguyên trên web đơi lúc là chậm trễ. Ngồi ra có một
số xử lý khác nên được xây dựng bất động bộ như: Làm việc trên file, ảnh,..

11 Cookies: là một file tạm được tự động tạo ra trong máy tính, mỗi khi người dùng truy cập một
trang web nào đó, nó sẽ lưu những thông tin liên quan đến cá nhân như tài khoản đăng nhập để sử
dụng cho lần sau
12
Nguyếễn Hoài Phong
Nguyếễn Hoàng Vũ

Thiết kế & xây dựng phần mềm
quản lý khách sạn

GV: ThS. Từ Thanh Trí

Chương 3: Cài đặt và thử nghiệm ứng dụng
3.3.1 Xác định yêu cầu bài toán
A. Quản lý các phịng trong khách sạn
Quản trị viên có thể thêm, sửa, xóa và điều chỉnh giá của từng phịng mình muốn.
B. Phân quyền
Hệ thống sẽ có những quyền hạn cơ bản để thuận tiện trong việc quản lý.
Quyền bao gồm: Admin (Quản lý), Client(Khách hàng), Guest (người dùng, khách
không nằm trong hệ thống).
C. Xác thực đăng nhập và quyền hạn
Xác thực thành viên đăng nhập vào hệ thống mà khơng ảnh hướng đến cơ sở dữ
liệu.

D. Đặt phịng, thanh toán.
Cho pháp khách hàng (đã đăng nhập vào hệ thống) tiến hành đặt phịng và thanh tốn
theo hình thức trực tuyến.



×