Ứng dụng web tĩnh phục vụ bài thực hành HTML, CSS, JavaScript, LocalStorage, Vitest, Playwright và GitHub Actions.
Đây là ứng dụng học tập. Không sử dụng cho hoạt động khám chữa bệnh thực tế và không nhập dữ liệu sức khỏe thật.
- CRUD tiếp nhận bệnh nhân.
- Tìm kiếm và lọc theo trạng thái.
- Chuyển bệnh nhân vào trạng thái đang khám.
- Lập đơn nháp, thêm/xóa thuốc, tính tổng số lượng.
- Hoàn tất hoặc hủy đơn thuốc.
- Xem lịch sử, chi tiết và in đơn thuốc.
- Lưu dữ liệu bằng LocalStorage.
- Unit Test, Business Test và Playwright UI Test.
- CI/CD và deploy GitHub Pages.
- HTML5, CSS3, JavaScript ES Module.
- Vite.
- Vitest và V8 Coverage.
- Playwright Chromium.
- GitHub Actions và GitHub Pages.
src/js/business Hàm nghiệp vụ thuần
src/js/services Điều phối quy tắc nghiệp vụ
src/js/repositories Đọc/ghi LocalStorage
src/js/ui Xử lý DOM
tests/unit Unit Test
tests/business Business Test dùng storage giả
tests/e2e Playwright UI Test
.github/workflows CI/CD
Yêu cầu Node.js 22 trở lên.
npm ci
npm run devMở địa chỉ Vite hiển thị trong Terminal.
npm run test:unit
npm run test:business
npm run test:coverage
npx playwright install chromium
npm run test:e2e
npm run test:e2e:reportChạy toàn bộ:
npm run test:allnpm run build
npm run previewThư mục kết quả là dist/. Cấu hình base: './' giúp asset chạy đúng khi website nằm tại đường dẫn repository GitHub Pages.
git init
git add .
git commit -m "Khởi tạo Phòng khám Mini"
git branch -M main
git remote add origin https://github.com/TEN-TAI-KHOAN/TEN-REPOSITORY.git
git push -u origin mainSau đó:
- Mở repository trên GitHub.
- Vào Settings → Pages.
- Tại Build and deployment → Source, chọn GitHub Actions.
- Mở tab Actions và chờ workflow chạy xanh.
- URL demo sẽ có dạng
https://TEN-TAI-KHOAN.github.io/TEN-REPOSITORY/.
Unit Test
↓
Business Test + Coverage
↓
Playwright UI Test
↓
Build Vite
↓
Upload Pages Artifact
↓
Deploy GitHub Pages (chỉ khi push main)
Pull Request chỉ chạy test và build, không deploy.
Dữ liệu chỉ nằm trong trình duyệt hiện tại. Dữ liệu không đồng bộ qua máy khác và sẽ mất nếu xóa dữ liệu trình duyệt. Nút Xóa toàn bộ dữ liệu chỉ xóa các khóa của ứng dụng.
- Không trùng số điện thoại và ngày sinh.
- Không xóa bệnh nhân đã có đơn hoàn tất.
- Đơn hoàn tất phải có bác sĩ, chẩn đoán và ít nhất một thuốc.
- Tổng số lượng = số lượng mỗi lần × số lần mỗi ngày × số ngày dùng.
- Đơn hoàn tất không thể sửa hoặc hủy.
- Ứng dụng không đề xuất thuốc, chẩn đoán hay liều dùng.
- Repository:
Điền link tại đây - GitHub Pages:
Điền link tại đây - Ảnh chụp màn hình:
Bổ sung tại đây