



















Preview text:
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN KHOÁ LUẬN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN Đề tài:
XÂY DỰNG WEBSITE ĐẶT LỊCH
KHÁM TẠI PHÒNG KHÁM TƯ NHÂN
X-CARE TRÊN TP HUẾ SỬ DỤNG REACT.JS VÀ NODE.JS Sinh viên thực hiện: Nguyễn Văn Đạt Dương Vũ Hùng Khóa: K45 - Hệ chính quy Giảng viên hướng dẫn:
TS. Đặng Thanh Chương Huế, 05 – 2025 ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN KHOÁ LUẬN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN Đề tài:
XÂY DỰNG WEBSITE ĐẶT LỊCH
KHÁM TẠI PHÒNG KHÁM TƯ NHÂN
X-CARE TRÊN TP HUẾ SỬ DỤNG REACT.JS VÀ NODE.JS Sinh viên thực hiện: Dương Vũ Hùng Nguyễn Văn Đạt Khóa: K45 - Hệ chính quy Giảng viên hướng dẫn:
TS. Đặng Thanh Chương Huế, 05 – 2025 LỜI CÁM ƠN
Chúng em đặc biệt biết ơn Khoa Công nghệ Thông tin, nơi đã truyền cho chúng em
những kiến thức chuyên môn và kỹ năng quý báu, giúp em tự tin bước vào con
đường sự nghiệp tương lai.
Em xin bày tỏ lòng biết ơn sâu sắc đến Thầy TS. Đặng Thanh Chương, người đã
luôn dìu dắt, hỗ trợ em trong suốt quá trình thực hiện bài khóa luận tốt nghiệp.
Thầy không chỉ là người truyền đạt kiến thức mà còn là chỗ dựa tinh thần, luôn
động viên, khích lệ em vượt qua những khó khăn để hoàn thành tốt bài luận. Nhờ
sự tận tâm, nhiệt tình và những lời khuyên quý giá của Thầy, em đã gặt hái được
thành quả như mong muốn.
Em cũng xin gửi lời tri ân đến gia đình, bạn bè và những người thân yêu, những
người đã luôn sát cánh bên em, động viên, khích lệ em trong suốt thời gian học tập.
Sự quan tâm, yêu thương của mọi người là nguồn động lực to lớn giúp em vượt
qua những thử thách và gặt hái được thành công.
Hành trình thực hiện bài luận tốt nghiệp này đã mang đến cho em những bài học
quý giá về sự kiên trì, nỗ lực và tinh thần trách nhiệm. Em biết rằng vẫn còn nhiều
thiếu sót trong bài luận của mình, em mong nhận được sự góp ý, đánh giá của quý
Thầy Cô và các bạn để hoàn thiện bản thân hơn nữa.
Cuối cùng, em xin kính chúc Ban Giám hiệu nhà trường, quý Thầy Cô, gia đình,
bạn bè và tất cả mọi người sức khỏe, hạnh phúc và thành công trong cuộc sống.
Chúng em xin chân thành cám ơn! i Huế, tháng 5 năm 2025 Sinh viên thực hiện Nguyễn Văn Đạt ii
DANH MỤC THUẬT NGỮ VÀ TỪ VIẾT TẮT Chữ viết tắt Tiếng Anh Tiếng Việt HTML
Hyper Text Markup Ngôn ngữ đánh dấu siêu văn bản Language CSS Cascading
Style Tập tin định kiểu theo tầng Sheets JSX Javascript XML Cú pháp mở rộng cho JSX API Application
Giao diện lập trình ứng dụng Programming Interface REST Representational
Truyền trạng thái biểu diễn State Transfer MONGODB Mongo Database
Hệ quản trị cơ sở dữ liệu NoSQL JWT JSON Web Token Mã thông báo JSON iii MỤC LỤC
PHẦN MỞ ĐẦU ............................................................................................... .- 1 -
1. Lý do chọn đề tài...........................................................................................- 1 -
2. Ý nghĩa thực tiễn đề tài............................ ..... ..... .... ..... ..... ..... ..... ..... ..... - 1 -
1.1. Mục tiêu đề tài............................................................................................ - 3 -
1.2 Phạm vi đề tài..............................................................................................- 3 -
1.3 Bố cục khóa luận...................... ..... ..... ..... ..... ..... ..... ..... ..... .... ..... ..... . - 4 -
1.4 Phân chia công việc............................ ..... ..... ..... ..... ..... ..... ..... ..... .... ... - 4 -
CHƯƠNG 2: LÝ THUYẾT CÁC CÔNG NGHỆ SỬ DỤNG.............................- 8 -
2.1 ReactJS........................................................................................................ - 8 -
2.2 React Hooks................................................................................ ............- 10 -
2.3 Node.js....................................................................................................... - 11 -
2.4 MongoDB..................................................................................................- 11 -
2.5 Tailwind CSS............................................................................................. - 12 -
2.6 JWT (JSON Web Token)........................................................................... - 13 -
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG.........................................- 14 -
3.1. Yêu cầu nghiệp vụ:...................................................................................- 14 -
3.1.4 Quy trình quản lý bởi quản trị viên.....................................................- 16 -
3.2. Đặc tả yêu cầu:........................... .... ..... ..... ..... ..... ..... ..... ..... ..... ..... ... - 18 -
3.2.1. Yêu cầu chức năng trang User................................ ..... ..... .... ..... ....- 18 -
3.2.2. Yêu cầu chức năng trang Admin:.......................................................- 19 - iv
3.2.3. Yêu cầu chức năng trang Doctor: .................................................... .- 20 -
3.3. Tổng quan về chức năng:......................... ..... ..... ..... ..... ..... ..... ..... .... . - 21 -
3.3.1 Biểu đồ Usecase tổng quát:.................................................................- 21 -
3.3.2 Biểu đồ Usecase User:......................................................................... - 29 - -
Đặc tả usecase đăng ký...........................................................................- 29 - -
Đặc tả usecase đăng nhập.................... ..... ..... ..... ..... .... ..... ..... ..... ...- 31 - -
Đặc tả usecase quản lý thông tin cá nhân...............................................- 33 - -
Đặc tả usecase đặt lịch khám..................................................................- 35 - -
Đặc tả usecase quản lý lịch hẹn................... ..... .... ..... ..... ..... ..... ..... .- 36 - -
Đặc tả usecase xem lịch sử khám................. ..... ..... ..... ..... ..... ..... .....- 38 -
3.3.3 Biểu đồ Usecase Admin:.....................................................................- 39 - -
Đặc tả usecase thêm bác sĩ...................... ..... ..... ..... ..... ..... ..... ..... ....- 39 - -
Đặc tả usecase sửa bác sĩ...................... ..... ..... ..... .... ..... ..... ..... ..... ..- 40 - -
Đặc tả usecase xóa bác sĩ........................ ..... ..... ..... ..... ..... ..... ..... ....- 41 - -
Đặc tả usecase quản lý lịch làm việc Admin..........................................- 42 - -
Đặc tả usecase quản lý lịch hẹn................... ..... .... ..... ..... ..... ..... ..... .- 43 - -
Đặc tả usecase quản lý giao dịch..................... ..... ..... ..... ..... ..... ..... ..- 45 - -
Đặc tả usecase quản lý báo cáo..............................................................- 46 -
3.3.4 Biểu đồ Usecase Doctor:.....................................................................- 47 - -
Đặc tả usecase xem lịch hẹn................. ..... ..... ..... ..... ..... ..... ..... ..... .- 47 - -
Đặc tả usecase xác nhận lịch hẹn...................... ..... ..... ..... ..... ..... .... .- 48 - v -
Đặc tả usecase quản lý lịch làm việc ................................................... .- 49 - -
Đặc tả usecase quản lý thông tin cá nhân...............................................- 50 - -
Đặc tả usecase quản lý hồ sơ bệnh án....................................................- 52 -
3.3.5 Quy trình nghiệp vụ.................... ..... ..... ..... ..... .... ..... ..... ..... ..... ... - 53 -
3.3.5.1 Nghiệp vụ người dùng sử dụng website đăng nhập đến đăng xuất.....- 53 -
3.3.5.2 Nghiệp vụ quản lý tài khoản cá nhân...................................................- 54 -
3.3.5.3 Nghiệp vụ Admin quản lý bác sĩ.......................... ..... ..... .... ..... ..... .- 55 -
3.3.5.4 Nghiệp vụ Admin quản lý lịch làm việc bác sĩ........................... ..... ..- 56 -
3.3.5.5 Nghiệp vụ bác sĩ đăng ký lịch làm việc............................. ..... ..... .... - 57 -
3.3.5.6 Nghiệp vụ Admin quản lý người dùng................................................- 58 -
3.3.5.7 Nghiệp vụ người dùng đặt lịch khám..................................................- 59 -
3.3.5.8 Nghiệp vụ người dùng quản lý lịch hẹn..............................................- 60 -
3.3.5.8 Nghiệp vụ bác sĩ quản lý lịch hẹn................... ..... ..... ..... ..... ..... ..... - 61 -
3.3.5.9 Nghiệp vụ bác sĩ quản lý hồ sơ bệnh án..............................................- 62 -
3.4 Thiết kế cơ sở dữ liệu......................... ..... ..... .... ..... ..... ..... ..... ..... ..... . - 63 -
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN...............................................................- 64 -
4.1 Giao diện trang người dùng (User)............................................................- 64 -
4.1.1 Giao diện trang chủ.................. ..... ..... ..... .... ..... ..... ..... ..... ..... .....- 64 -
4.1.2 Giao diện trang.................................................................................... - 66 -
4.1.3 Giao diện thông tin bác sĩ...................... ..... ..... .... ..... ..... ..... ..... ....- 67 -
4.1.4 Giao diện trang About......................................................................... - 68 - vi
4.1.5 Giao diện trang Contact.................................................................... .- 69 -
4.1.6 Giao diện đặt lịch khám.......................................................................- 69 -
4.1.7 Giao diện lịch khám............................................................................. - 70 -
4.1.8 Giao diện thông tin cá nhân.................................................................- 71 -
4.2. Giao diện trang quản trị (Admin).............................................................- 72 -
4.2.1 Giao diện đăng nhập.................. ..... ..... ..... .... ..... ..... ..... ..... ..... .... - 72 -
4.3 Giao diện trang bác sĩ (Doctor).................................................................- 75 -
4.3.1 Giao diện đăng nhập.................. ..... ..... ..... .... ..... ..... ..... ..... ..... .... - 75 -
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN................................... .... ..... ..... .....- 78 -
Kết luận......................... ..... .... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .....- 78 -
Hạn chế........................ ..... ..... ..... ..... ..... ..... .... ..... ..... ..... ..... ..... ..... ..... - 78 -
Hướng phát triển........................... ..... ..... ..... ..... ..... ..... ..... ..... ..... ..... .... . - 78 -
TÀI LIỆU THAM KHẢO.......................................... ..... ..... ..... ..... ..... ..... ... - 80 - vii PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ và nhu cầu nâng cao chất
lượng dịch vụ y tế tại TP Huế, việc triển khai hệ thống đặt lịch khám bệnh trực
tuyến trở thành giải pháp thiết yếu. Phòng khám tư nhân X-Care tại Huế đang đối
mặt với các thách thức như quá tải lịch hẹn, sai sót trong quản lý thủ công và thời
gian chờ đợi lâu của bệnh nhân. Website đặt lịch khám trực tuyến không chỉ mang
lại sự tiện lợi cho bệnh nhân mà còn giúp phòng khám tối ưu hóa quy trình vận
hành, quản lý lịch hẹn và thông tin bệnh nhân một cách khoa học.
Dự án sử dụng React.js để xây dựng giao diện người dùng động, Node.js để phát
triển backend hiệu quả, và MongoDB để quản lý dữ liệu linh hoạt. Đây là cơ hội
để sinh viên áp dụng kiến thức lập trình full-stack, làm quen với các công nghệ
hiện đại và phát triển kỹ năng thực tế. Với tính khả thi cao và giá trị ứng dụng
trong lĩnh vực y tế, đề tài "Xây dựng website đặt lịch khám tại phòng khám tư nhân
X-Care trên TP Huế sử dụng React.js và Node.js" đáp ứng nhu cầu thực tiễn và có ý nghĩa thiết thực.
2. Ý nghĩa thực tiễn đề tài
Dự án mang lại nhiều giá trị thực tiễn cho cả người dùng và phòng khám X-Care:
Đối với bệnh nhân: Website cung cấp một giải pháp tiện lợi để đặt lịch khám,
xem thông tin bác sĩ và dịch vụ y tế mà không cần đến trực tiếp phòng khám. Bệnh
nhân có thể quản lý lịch hẹn, thông tin cá nhân và lịch sử khám bệnh một cách dễ
dàng, tiết kiệm thời gian và nâng cao trải nghiệm dịch vụ y tế. 1
Đối với phòng khám X-Care: Hệ thống giúp tự động hóa quy trình quản lý lịch
hẹn, giảm thiểu sai sót thủ công và tối ưu hóa lịch làm việc của bác sĩ. Việc quản lý
thông tin bệnh nhân và giao dịch thanh toán trở nên khoa học, hỗ trợ nâng cao hiệu
quả vận hành và chất lượng dịch vụ.
Đối với sinh viên: Dự án là cơ hội để áp dụng kiến thức về React.js, Node.js và
MongoDB vào thực tiễn, phát triển kỹ năng lập trình full-stack, quản lý cơ sở dữ
liệu và bảo mật thông tin. Đây là bước đệm quan trọng để chuẩn bị cho sự nghiệp
trong lĩnh vực công nghệ thông tin.
Đối với cộng đồng: Website góp phần thúc đẩy số hóa dịch vụ y tế tại TP Huế, nơi
các giải pháp công nghệ còn hạn chế. Hệ thống có thể trở thành mô hình mẫu,
khuyến khích các phòng khám tư nhân khác áp dụng công nghệ tương tự, từ đó
nâng cao chất lượng chăm sóc sức khỏe cộng đồng. 2
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. Mục tiêu đề tài
- Xây dựng một website đặt lịch khám trực tuyến cho phòng khám X-Care,
cho phép bệnh nhân đặt lịch hẹn, xem thông tin bác sĩ, dịch vụ và lịch sử khám bệnh.
- Phát triển hệ thống quản trị cho phòng khám để quản lý bác sĩ, dịch vụ,
lịch hẹn và bệnh nhân.
- Ứng dụng các công nghệ React.js, Node.js, MongoDB, Tailwind CSS,
JWT để đảm bảo tính năng, bảo mật và trải nghiệm người dùng.
- Đánh giá hiệu quả hệ thống thông qua kiểm thử và tối ưu hóa để đáp ứng nhu cầu thực tế.
1.2 Phạm vi đề tài
- Phạm vi chức năng:
+ Trang người dùng: Đặt lịch khám, xem lịch hẹn, thông tin cá nhân, lịch
sử khám, đánh giá dịch vụ.
+ Trang quản trị: Quản lý bác sĩ, quản lý lịch làm việc, dịch vụ, lịch hẹn,
bệnh nhân, giao dịch, thông báo và báo cáo.
+ Trang bác sĩ: Xem lịch hẹn, quản lý thông tin cá nhân, đăng ký lịch
khám, đánh giá hồ sơ bệnh án sau khám 3
- Phạm vi công nghệ: Sử dụng React.js, Node.js, MongoDB, Tailwind CSS, JWT, Axios.
- Phạm vi ứng dụng: Website phục vụ phòng khám X-Care tại TP Huế, có khả
năng mở rộng cho các phòng khám khác.
1.3 Bố cục khóa luận
Từ những phân tích nêu trên, khóa luận được tổ chức thành các chương sau:
- Chương 1: Tổng quan về đề tài
- Chương 2: Cơ sở lý thuyết (giới thiệu React.js, Node.js, MongoDB,
Tailwind CSS, JWT, Axios).
- Chương 2: Phân tích và thiết kế hệ thống (…, mô hình hóa, thiết kế cơ sở dữ liệu, giao diện).
- Chương 3: Cài đặt hệ thống (mô tả quá trình phát triển, mã nguồn chính).
- Chương 4: Kiểm thử và đánh giá (phương pháp kiểm thử, kết quả, đánh giá hiệu quả).
- Chương 5: Kết luận và hướng phát triển.
1.4 Phân chia công việc Công việc Người thực hiện Thời gian Chọn đề tài và nghiên Dương Vũ Hùng 20/4/2025 cứu Nguyễn Văn Đạt Trang chủ với thông tin Nguyễn Văn Đạt 22/4/2025 tổng quan Trang danh sách bác sĩ Nguyễn Văn Đạt 26/4/2025 Trang chi tiết bác sĩ Nguyễn Văn Đạt 28/4/2025 4 Trang chuyên khoa Nguyễn Văn Đạt 30/4/2025 Trang About Nguyễn Văn Đạt 1/5/2025 Trang Contact Nguyễn Văn Đạt 1/5/2025
Trang đăng ký/đăng nhập Nguyễn Văn Đạt 2/5/2025 Trang hồ sơ cá nhân Nguyễn Văn Đạt 4/5/2025 Trang đặt lịch hẹn Nguyễn Văn Đạt 6/5/2025 Trang quản lý lịch hẹn Nguyễn Văn Đạt 6/5/2025 Trang lịch sử khám Nguyễn Văn Đạt 8/5/2025 Trang thanh toán Nguyễn Văn Đạt 9/5/2025 Trang quản lý thông tin Nguyễn Văn Đạt 4/5/2025 cá nhân Trang quản lý lịch làm Nguyễn Văn Đạt 10/5/2025 việc Trang quản lý bệnh nhân Nguyễn Văn Đạt 12/5/2025 Trang thống kê Nguyễn Văn Đạt 14/5/2025 Trang quản lý bác sĩ Nguyễn Văn Đạt 14/5/2025 Trang quản lý lịch hẹn Nguyễn Văn Đạt 16/5/2025 Trang thống kê và báo Nguyễn Văn Đạt 17/5/2025 cáo
Xây dựng hệ thống đăng Dương Vũ Hùng ký/đăng nhập cho bệnh nhân
Xây dựng hệ thống đăng Dương Vũ Hùng
ký/đăng nhập cho bác sĩ
Xây dựng hệ thống phân Dương Vũ Hùng quyền (Admin, Doctor, 5 Patient) JWT token authentication Dương Vũ Hùng Password hashing và Dương Vũ Hùng security
API quản lý thông tin bác Dương Vũ Hùng sĩ (CRUD)
API quản lý lịch làm việc Dương Vũ Hùng của bác sĩ API quản lý chuyên khoa Dương Vũ Hùng API upload và quản lý Dương Vũ Hùng hình ảnh bác sĩ
API quản lý đánh giá và Dương Vũ Hùng feedback API đặt lịch hẹn Dương Vũ Hùng API hủy lịch hẹn Dương Vũ Hùng API thay đổi lịch hẹn Dương Vũ Hùng API kiểm tra lịch trống Dương Vũ Hùng API thông báo nhắc lịch Dương Vũ Hùng API tích hợp thanh toán Dương Vũ Hùng API quản lý hóa đơn Dương Vũ Hùng API xử lý hoàn tiền Dương Vũ Hùng API quản lý template Dương Vũ Hùng thông báo API thống kê và báo cáo Dương Vũ Hùng API quản lý người dùng Dương Vũ Hùng Còn cập nhật :((( 6
CHƯƠNG 2: LÝ THUYẾT CÁC CÔNG NGHỆ SỬ DỤNG 2.1 ReactJS
ReactJS là một thư viện JavaScript được phát triển bởi Facebook, dùng để xây
dựng giao diện người dùng (UI) trên web. ReactJS sử dụng khái niệm
"components" để tái sử dụng mã và tạo ra các ứng dụng web động, hiệu năng cao. 7
Hình 1.1.1 Kiến trúc của một React Application
Các đặc điểm chính của ReactJS:
1. Khái niệm Component: ReactJS sử dụng khái niệm "components" để tạo ra
giao diện người dùng. Mỗi component là một khối xây dựng độc lập, có
trạng thái riêng và được tái sử dụng trong nhiều nơi khác nhau trên trang web.
2. Virtual DOM: ReactJS sử dụng Virtual DOM (DOM ảo) để tối ưu hóa việc
render lại giao diện. Thay vì thao tác trực tiếp trên DOM thực tế (hoạt động
tốn kém), ReactJS tạo ra một bản sao DOM ảo, so sánh với DOM thực tế và 8
chỉ cập nhật những phần khác biệt. Điều này giúp tăng hiệu suất và trải nghiệm người dùng.
3. JSX: ReactJS sử dụng cú pháp JSX, là một ngôn ngữ kết hợp giữa HTML
và JavaScript, giúp viết mã dễ dàng hơn và cho phép logic và giao diện được
kết hợp trong cùng một thành phần.
4. Hàm render(): Mỗi component trong ReactJS có một phương thức render()
để mô tả giao diện của nó bằng cách sử dụng JSX.
5. Quản lý trạng thái: ReactJS cung cấp khái niệm "state" để quản lý trạng
thái của component và cập nhật giao diện khi trạng thái thay đổi.
6. Xử lý sự kiện: ReactJS hỗ trợ xử lý sự kiện cho người dùng (click, submit,
change, ...) thông qua cú pháp tương tự với JavaScript.
7. Hooks: React Hooks là một tính năng mới cho phép sử dụng state và các
tính năng khác của React trong function components, giúp mã nguồn trở nên
gọn gàng và dễ bảo trì hơn.
8. Cộng đồng lớn mạnh: ReactJS có một cộng đồng phát triển lớn mạnh, với
nhiều thư viện và công cụ hỗ trợ, giúp phát triển ứng dụng nhanh chóng và hiệu quả hơn.
9. Isomorphic rendering: ReactJS hỗ trợ isomorphic rendering, cho phép
render giao diện ở cả phía máy chủ (server-side rendering) và phía client
(client-side rendering), cải thiện hiệu suất tải trang. 2.2 React Hooks
React Hooks là một tính năng mới được giới thiệu trong React 16.8, cho
phép sử dụng state và các tính năng khác của React trong các hàm chức năng
(function components), thay vì chỉ sử dụng trong các lớp (class 9 components).
Một số React Hooks phổ biến bao gồm:
1. useState: Cho phép sử dụng state trong function components. 2. useEffect: Thay thế cho các lifecycle methods như componentDidMount, componentDidUpdate và
componentWillUnmount trong class components.
3. useContext: Cho phép đăng ký và sử dụng React Context để quản lý state toàn cục.
4. useReducer: Cho phép sử dụng reducer để quản lý state phức tạp.
5. useCallback: Trả về một callback memoized để tránh việc tạo ra một
callback mới trên mỗi lần render. 2.3 Node.js
Node.js là môi trường runtime JavaScript phía server, cho phép xây dựng các ứng
dụng web nhanh và mở rộng. Nó thường được sử dụng với Express.js để tạo API RESTful. Đặc điểm chính:
• Non-blocking I/O: Xử lý nhiều yêu cầu đồng thời, phù hợp cho ứng dụng thời gian thực.
• Module hệ thống: Sử dụng các module như Express.js, Mongoose để phát triển nhanh. 10
• Hỗ trợ JSON: Tích hợp dễ dàng với MongoDB. 2.4 MongoDB
MongoDB là hệ quản trị cơ sở dữ liệu NoSQL, lưu trữ dữ liệu dưới dạng tài liệu
BSON (Binary JSON). Nó phù hợp cho các ứng dụng cần tính linh hoạt và khả năng mở rộng. Đặc điểm chính:
• Schema linh hoạt: Không yêu cầu cấu trúc cố định.
• Khả năng mở rộng: Hỗ trợ sharding và replication.
• Truy vấn mạnh mẽ: Hỗ trợ các truy vấn phức tạp. 2.5 Tailwind CSS
Tailwind CSS là một công cụ CSS hữu ích, cung cấp các lớp tiện ích (utility
classes) để xây dựng giao diện người dùng nhanh chóng và linh hoạt. Nó khác với
cách tiếp cận CSS truyền thống, nơi mà phải viết các quy tắc CSS tùy chỉnh cho từng phần tử.
Một số đặc điểm chính của Tailwind CSS:
1. Lớp tiện ích (Utility classes): Tailwind CSS cung cấp hàng trăm lớp tiện
ích có sẵn cho các thuộc tính CSS phổ biến như màu sắc, kích thước, vị trí,
kiểu chữ, margin, padding, ... 11