Thiết kế xử lý Tài khoản cá nhân...18 Lấy thông tin từ req.body rồi gọi sp trong database để thực hiện hành động...18 staffId là id của nhân viên không phải id của account...18 CHƯƠNG 4.
GIỚI THIỆU WEB
Sự Ra Đời Của Web quản lý thiết bị phòng Gym
Web quản lý thiết bị phòng Gym ra đời từ thực tế khi chủ phòng tập vừa phải phục vụ khách tập vừa thiếu thời gian để kiểm tra từng trang thiết bị Thời gian duy nhất để kiểm tra là buổi tối, khiến chủ phòng không có thời gian nghỉ ngơi và lo gia đình, dẫn đến bỏ sót nhiều thiết bị và gặp khó khăn trong quản lý và bảo dưỡng Thấy hoàn cảnh ấy, Bạn Trí và em đã sáng lập trang web quản lý thiết bị phòng Gym — một web quản lý trực tuyến cho phép nhân viên báo cáo tình trạng thiết bị mọi lúc mọi nơi cho chủ phòng tập, từ đó tối ưu hóa quản lý, bảo dưỡng và chăm sóc thiết bị.
Mô tả Web
Web quản lý thiết bị phòng gym là giải pháp trực tuyến quản lý và vận hành trang thiết bị trong phòng tập, cung cấp đầy đủ các loại thiết bị và cho phép quản lý theo từng nhóm thiết bị, giúp khách hàng dễ dàng tìm kiếm thiết bị trống theo nhu cầu Giao diện người dùng thân thiện được thể hiện rõ trên trang chủ, với các view riêng dành cho admin và người dùng để xử lý nhanh chóng Chủ phòng gym chỉ cần bỏ ra một khoản chi phí nhỏ để sở hữu phần mềm quản lý thiết bị lâu dài và có thể kiểm tra trạng thái thiết bị ở mọi lúc, mọi nơi.
Giới thiệu React và NodeJS
• React là một thư viện JavaScript nhằm đơn giản hóa việc phát triển giao diện người dùng.
React là một thư viện JavaScript được phát triển bởi Facebook, ra mắt trên toàn cầu vào năm 2013 Nó được sử dụng để xây dựng giao diện người dùng cho Facebook và Instagram, và hiện nhận được sự ủng hộ rộng rãi từ nhiều công ty trên khắp thế giới.
Mục tiêu của React là đơn giản hóa việc phát triển frontend bằng cách tập trung mọi trạng thái tại một thời điểm duy nhất và chia giao diện người dùng thành tập hợp các thành phần (components) Việc tổ chức UI theo các components giúp quản lý trạng thái và giao diện dễ dàng hơn, tăng tính tái sử dụng và tối ưu quá trình phát triển.
• React được sử dụng để xây dựng single-page web applications.
Node.js là một nền tảng được xây dựng trên V8 JavaScript Engine, trình thông dịch thực thi mã JavaScript Nhờ đặc tính của V8 và thiết kế tối ưu cho phát triển web, Node.js cho phép xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng quy mô khi nhu cầu tăng lên.
Node.js được viết bằng JavaScript và có một cộng đồng người dùng lớn mạnh, vì vậy khi bạn cần hỗ trợ về Node.js, sẽ có người trợ giúp nhanh chóng Đặc biệt, với cơ chế xử lý bất đồng bộ (non-blocking I/O), Node.js có thể xử lý hàng ngàn kết nối cùng lúc mà không gặp khó khăn, mang lại tốc độ xử lý nhanh và hiệu suất cao cho các ứng dụng mạng quy mô lớn.
PTIT giới thiệu Web 1.0 với đặc điểm dễ dàng mở rộng Khi bạn có nhu cầu phát triển website, tính năng mở rộng linh hoạt của NodeJS là một lợi thế cực kỳ quan trọng, giúp tối ưu hiệu suất và dễ dàng mở rộng quy mô khi lưu lượng người dùng tăng lên.
Công cụ sử dụng thiết kế đề tài
Visual Studio Code IDE để viết code
SQL SERVER hỗ trợ Database
PHÂN TÍCH
Mô hình trạng thái Web
Hình 2-1Mô hình liên kết giữa các trạng thái
Phân tích các trang của Web
2.2.1 Phân tích trang Login/Signup
Login: Điền đầy đủ User Name và Password, đúng thì sẽ cho vào trang chính Nếu sai sẽ báo lỗi Tài Khoàn hoặc Mật Khẩu không đúng.
Tài khoản thì sẽ được cắp chứ không tự tạo
Trang chủ hiển thị sáu danh mục để người dùng thao tác khi đăng nhập, gồm Quản lý (với hai mục con Lịch sử hoạt động và Tài khoản), Nhà cung cấp, Hóa đơn, Thiết bị, Tài khoản cá nhân và Đăng xuất Danh mục Quản lý chỉ dành cho admin; nhân viên ở các quyền hạn khác sẽ nhận thông báo ngoài quyền hạn khi cố gắng truy cập danh mục này.
2.2.3 Phân tích trang quản lý(admin)
Trang quản trị dành cho Admin cho phép quản trị viên quản lý người dùng trên website: thêm tài khoản mới, chỉnh sửa quyền hạn cho từng người dùng, và bật/tắt hoạt động của các tài khoản khi cần thiết Chỉ tài khoản admin mới có quyền truy cập vào mục quản trị này để đảm bảo an toàn và quản lý quyền truy cập trong hệ thống Quá trình quản trị bao gồm tạo người dùng, cấp phát và điều chỉnh quyền hạn phù hợp, cũng như kiểm soát trạng thái hoạt động của tài khoản để phản ánh đúng tình trạng hoạt động của mỗi người dùng.
Nhân viên sẽ liệt kê và ghi nhận đầy đủ các hoạt động của từng tài khoản theo từng mốc thời gian, nhằm theo dõi chính xác hành động người dùng thực hiện Các hành động được ghi nhận gồm thêm, sửa, xóa ở các danh mục, cập nhật thông tin cá nhân và mật khẩu, cùng với các thao tác liên quan khác Dữ liệu hoạt động được sắp xếp theo thứ tự thời gian và gắn nhãn rõ ràng, thuận tiện cho tra cứu và phân tích Việc ghi nhận hoạt động theo mốc thời gian tăng tính minh bạch, bảo mật hệ thống và hỗ trợ các kiểm tra, audit khi cần thiết.
Thiết bị: liệt kê các hoạt động của thiết bị như; thêm mới cập nhật tình trạng theo môc thời gian thực hiện hành động.
Thêm mới một tài khoản để cấp cho người sử dụng phần mềm chứ không cho tự tạo tài khoản.
Chỉnh sửa quyền hạn tài khoản: admin và nhân viên.
Reset mật khẩu: dùng để trả lại mật khẩu mặc định khi có người dùng quên mật khẩu
Bật/tắt tài khoản: để vô hiệu hóa tài khoản nào không dùng chứ không xóa.
2.2.4 Phân tích trang nhà cung cấp
Trang quản lý nhà cung cấp liệt kê đầy đủ các nhà cung cấp đã có trong cơ sở dữ liệu và cho phép tìm kiếm nhanh chóng Nhấn 'Thêm' để thêm mới nhà cung cấp Bạn có thể chọn một nhà cung cấp để chỉnh sửa hoặc xóa, tuy nhiên không được xóa các nhà cung cấp đã có hóa đơn.
2.2.5 Phân tích trang hóa đơn
Ứng dụng quản lý hóa đơn cho phép liệt kê tất cả các hóa đơn có trong cơ sở dữ liệu và được tìm kiếm dễ dàng Người dùng nhấn Thêm để thêm hóa đơn mới, đồng thời có thể chỉ định một hóa đơn để chỉnh sửa hoặc xóa Hệ thống còn hỗ trợ lọc và liệt kê hóa đơn theo khoảng thời gian từ ngày bắt đầu đến ngày kết thúc, giúp quản lý chi phí và sổ sách hiệu quả.
2.2.6 Phân tích trang thiết bị
Hệ thống cho phép liệt kê đầy đủ tất cả các thiết bị có trong cơ sở dữ liệu và hỗ trợ tìm kiếm dễ dàng, đồng thời cho phép chỉ định một thiết bị để chỉnh sửa hoặc xóa Người quản trị có thể lọc và liệt kê các thiết bị được thêm vào từ thời gian nào đến thời gian nào, giúp theo dõi và quản lý thiết bị một cách hiệu quả Mỗi thiết bị được liệt kê rõ ràng theo thứ tự, hiển thị tình trạng hiện tại và thời hạn bảo hành để người dùng nắm bắt nhanh chóng thông tin thiết bị.
2.2.7 Phân tích trang tài khoản cá nhân
Hiện thông tin người dùng trên tài khoản bao gồm họ tên, ngày sinh, CMND và ảnh đại diện; người dùng có thể tự cập nhật ảnh đại diện và mật khẩu để tăng cường bảo mật và cá nhân hóa tài khoản.
Sơ đồ ERD
Diagrams
Hình 3-3Sơ đồ Diagrams Database
Table
Eg_name nvarchar(20) Not Null
Rcp_code nvarchar(20) Not null
Rcp_date date Not Null
Eg_ID int Not Null
Equipment_ID int PK, FK
State_des nvarchar(20) Not null
Tax_ID nvarchar(200) Not null
ID_code nvarchar(20) Not Null
First_name nvarchar(20) Not Null
Last_name nvarchar(20) Not Null
Record_date int Not Null
MÃ CODE
Thiết kế xử lí Login
Lấy username, password từ req.body(từ font-end) rồi kiểm tra bằng sp trên database Nếu đúng sẽ trả về userinfo
Thiết kế xử lý Supplier(Nhà cung cấp)
Quá trình bắt đầu bằng việc lấy dữ liệu từ req.body ở phía front-end, sau đó gọi stored procedure trong cơ sở dữ liệu để thêm nhà cung cấp mới, và accountId được sử dụng để ghi lại hoạt động của tài khoản thực hiện công việc này.
Chỉnh sửa nhà cung cấp:
Sửa: Lấy dữ liệu từ req.body(font-end) rồi gọi sp trong database để chỉnh sửa, accountId để ghi nhận việc sửa thông tin
Xóa: lấy id nhà cung cấp từ req.body rồi gọi sp trong database để xóa Nếu có lỗi sẽ không xóa được và gửi về err.massage
Thiết kế xử lý Receipt(Hóa đơn)
To create a new invoice, the process starts by extracting data from the request body delivered by the front-end, then invoking a stored procedure in the database to insert the new invoice record; the accountId is used to identify and log the creation of the invoice, tying it to the correct user account for accurate tracking and auditing.
Sửa hóa đơn: Lấy dữ liệu cần chỉnh sửa từ req.body rồi gọi sp trong database (.execute) để chỉnh sửa staffId để ghi nhận việc chỉnh sửa
Xóa hóa đơn: lấy mã hóa đơn từ req.body rồi gọi sp trong database để thực hiện xóa hóa đơn
Thiết kế xử lý Equipment(Thiết bị)
Quy trình này bắt đầu bằng việc lấy thông tin từ hóa đơn mới được thêm thông qua req.body, sau đó sử dụng các trường tương ứng để xác định loại thiết bị cần thêm Tiếp theo, hệ thống gọi stored procedure (SP) trong cơ sở dữ liệu để thêm loại thiết bị mới, đảm bảo thực thi nhất quán và tối ưu hóa hiệu suất truy vấn Sau khi loại thiết bị được tạo thành công, từng thiết bị liên quan sẽ tự động được thêm vào cơ sở dữ liệu từ dữ liệu của hóa đơn, giúp đồng bộ hóa danh mục thiết bị và tăng độ chính xác của hệ thống quản lý.
Thêm thiết bị: lấy id của loại thiết bị vừa được thêm thông qua req.body rồi gọi sp trong database để thêm thiết bị
Sửa thông tin thiết bị:
Để cập nhật thông tin thiết bị, lấy các trường id (thiết bị), stateDes (tình trạng) và des (mô tả), sau đó gọi stored procedure (sp) trong database để chỉnh sửa thông tin thiết bị dựa trên các trường đã thu thập accountId được dùng để ghi nhận việc sửa thông tin vào database, đảm bảo có thể audit và theo dõi các thay đổi.
Chỉ cho phép thay đổi thông tin như tình trạng và mô tả của thiết bị Tên và hạn bảo hành không cho phép thay đổi
Lấy id thiết bị và gọi thủ tục lưu trong cơ sở dữ liệu để thực hiện xóa thiết bị; thao tác này chỉ ngừng quản lý thiết bị chứ không xóa thiết bị khỏi cơ sở dữ liệu.
Thiết kế quản lý tài khoản(chỉ admin)
Lấy dữ liệu từ req.body rồi gọi sp trong database để thực hiện thêm tài khoản. idCode(cmnd)
Chỉnh sửa thông tin tài khoản:
Lấy dữ liệu từ req.body rồi gọi sp trong db Thực hiện đặt mật khẩu về mặt định là
123456 cho tài khoản được chỉ định -Thay đổi tình trạng hoạt động:
Đầu tiên xác định accountId cần thay đổi trạng thái và giá trị active cần cập nhật, sau đó gọi một stored procedure (sp) trong cơ sở dữ liệu để cập nhật trạng thái active Trạng thái active được lưu dưới dạng bit trong cơ sở dữ liệu và chỉ nhận giá trị true hoặc false Khi trạng thái active là false, tài khoản sẽ không thể đăng nhập.
-Thay đổi quyền tài khoản:
Lây thông tin tài khoản(accountId) và quyền cần thay đổi rồi gọi sp trong database để thực hiện hành động
Thiết kế xử lý Tài khoản cá nhân
Lấy thông tin từ req.body rồi gọi sp trong database để thực hiện hành động. staffId là id của nhân viên không phải id của account
KIỂM THỬ CHƯƠNG TRÌNH
Kiểm thử Login
Không tìm thấy account trong cơ sở dữ liệu
Kiểm thử Quản lý
Hình 4-2aTrang quản lý của Staff
Hình 4-2bTrang quản lý của Admin
Kiểm thử Nhà cung cấp
Chỉnh sửa nhà cung cấp:
Kiểm thử Hóa đơn
Kiểm thử Thiết bị
Kiểm thử Tài khoản cá nhân
Hình 4-6Tài khoản cá nhân