Kịch bản demo và báo cáo

Trang này giúp bạn trình bày có trật tự trong 10-15 phút. Mục tiêu không phải mở thật nhiều màn hình, mà là chứng minh hệ thống có kiến trúc rõ, luồng nghiệp vụ chính chạy hợp lý, và bạn biết mở code khi bị hỏi.

Chuẩn bị trước khi demo

Việc cần kiểm Lệnh/trang Kỳ vọng
Docs site http://127.0.0.1:4010/ Mở được, search được
Frontend LMS http://localhost:4200 Vào được login/app
Backend API curl http://localhost:8088/actuator/health Backend LMS trả health đúng; nhớ kiểm docker ps nếu port 8088 bị container khác chiếm
Swagger http://localhost:8088/swagger-ui Xem API khi bị hỏi endpoint
Database ERD DBeaver schema public Thấy bảng LMS; khi đếm nghiệp vụ bỏ qua flyway_schema_history
Code editor Mở workspace E:\Sach\Sua\LMS_hohulili Sẵn sàng search file bằng rg hoặc docs CodeMap

Không deploy production trong buổi demo. Nếu cần chứng minh production, chỉ trình bày kiến trúc/runtime và evidence đã có, không chạy script deploy.

Kịch bản 10 phút

Phút Nói gì Mở gì
0-1 Giới thiệu LMS Hàng Hải: hệ thống học trực tuyến cho course, lesson, assessment, payment, video/offline và Wiii AI safety. Câu hỏi bảo vệ
1-2 Nêu stack: Spring Boot/Angular/PostgreSQL/Flyway/Docker/R2/Shaka/PWA. Kiến trúc
2-3 Mở sơ đồ runtime để nói frontend -> backend -> DB/storage/video worker/Wiii. Sơ đồ hệ thống
3-4 Nói backend DDD/Clean Architecture: controller -> use case -> repository port -> adapter/JPA. Backend
4-5 Nói course authoring và publication: teacher draft, admin approve, learner đọc course_publications. Publication
5-6 Nói student learning: enroll, lesson, progress, quiz/assignment. Luồng nghiệp vụ
6-7 Nói database: 78 application tables, 2 materialized views, 107 migration SQL files. SQL schema catalog
7-8 Nói video/offline: R2, Shaka, HLS/DASH, ABR, IndexedDB/Dexie, video worker. Video và offline
8-9 Nói Wiii safety: data-wiii-id, data-wiii-click-safe, preview/diff, không tự publish/delete/grade/payment. Wiii
9-10 Chốt: nếu thầy hỏi sửa code, mở trang vị trí file code và chỉ route/component/controller/use case/table. Vị trí file code

Kịch bản 15 phút

Nếu có thêm thời gian, mở thêm:

Chủ đề thêm Nói ngắn Mở gì
Payment/revenue VNPay/SePay xác nhận ở backend, transaction không tin dữ liệu giá từ frontend. Payment
Quiz/assignment Quiz attempt, assignment submission, rubric, grading audit. Assessment
STCW Lesson map với competency hàng hải như STCW/SOLAS/MARPOL/COLREGs. STCW competency map
Scale/load Không trả lời con số tuyệt đối nếu chưa load test; nêu cách đo và hướng scale. Câu hỏi bảo vệ
DBeaver Chụp ERD theo domain hoặc toàn schema; nhắc rõ 78 bảng nghiệp vụ. Database

Khi thầy yêu cầu “mở code xem”

Tình huống Mở trước Cách nói
Sửa màu/layout Vị trí file code, component .scss/template “Em tìm component theo route/feature, sửa class/style ở component hoặc design token chung.”
Sửa logic UI Component/service/store frontend “Em kiểm state và API call trước, sau đó mới xuống backend nếu rule nằm server.”
Sửa API/backend Controller -> use case -> repository adapter “Controller chỉ nhận request, use case giữ rule, adapter map DB.”
Thêm cột DB Migration Flyway mới “Không sửa migration cũ đã chạy production; tạo migration version mới.”
Debug learner chưa thấy bài mới Publication flow “Learner đọc snapshot, nên course approved cần submit/approve lại sau khi đổi nội dung.”
Debug payment Payment controller/use case/table “Payment là vùng nhạy cảm, backend xác nhận callback/webhook và không tin giá frontend.”
Debug Wiii Wiii page + component DOM target “Wiii chỉ click target safe, mọi nội dung AI phải preview/diff trước apply.”

Kịch bản nếu demo lỗi hoặc bị lỗi

Lỗi Cách xử lý bình tĩnh
Không mở được backend 8088 Chạy docker ps, xem có container khác chiếm port không; mở docs/troubleshooting để giải thích
Frontend không chạy Chuyển sang docs + Swagger + code map để chứng minh luồng; không mất thời gian cài lại package
DB ERD quá rối Chụp/giải thích theo domain: identity, course, assessment, learning, payment, media
Search docs không ra do chưa focus Dùng Ctrl+K, gõ class/table/term; nếu vẫn lỗi, mở sidebar trực tiếp
Thầy hỏi con số scale Không đoán; trả lời cần load test và nêu metric/kịch bản đo

Câu chốt cuối buổi

Điểm chính của hệ thống là luồng nghiệp vụ đã tách rõ: teacher authoring và learner delivery không đọc cùng một bản draft; backend giữ business rule; database quản lý bằng Flyway; video/storage tách khỏi web backend; Wiii chỉ hoạt động trong ranh giới safe action có preview/diff.