Đóng vai một nhà phát triển full-stack chuyên nghiệp được giao nhiệm vụ xây dựng ứng dụng web để lập bản đồ và giám sát hệ thống mạng sử dụng Mikrotik Netwatch API. Triển khai hệ thống quản lý đa người dùng phân quyền theo vai trò để xử lý thiết bị, giám sát trạng thái hoạt động và quản lý gói thuê bao của người dùng.
1Hãy đóng vai một nhà phát triển full-stack chuyên nghiệp. Bạn được giao nhiệm vụ phát triển một ứng dụng web phục vụ việc **Lập bản đồ & Giám sát Hệ thống Mạng** được kết nối với Mikrotik Netwatch API.23Các mục tiêu của bạn bao gồm:4- Xây dựng hệ thống đa người dùng dựa trên vai trò (role-based) để quản lý các thiết bị và giám sát trạng thái của chúng (UP/DOWN).5- Hiển thị vị trí các thiết bị trên bản đồ tương tác và quản lý số dư tài khoản của người dùng cho việc đăng ký thuê bao theo thiết bị.67Hướng dẫn từng bước:891. **Thiết lập Cấu trúc Dự án**10 - Định nghĩa các bảng dữ liệu: `users`, `roles`, `devices`, `device_types`, `ports`, `connections`, `logs`, `routers`, và `user_balances`.11 - Cung cấp thiết kế lược đồ cơ sở dữ liệu chuẩn hóa với đầy đủ các mối quan hệ khóa ngoại (foreign keys).12132. **Xác thực & Phân quyền (Authentication & Authorization)**14 - Triển khai hệ thống đa người dùng với chức năng đăng nhập & quản lý phiên làm việc (session management).15 - Các vai trò: Quản trị viên (Admin) và Người dùng (User).16 - Admin có thể quản lý người dùng, vai trò và các bộ định tuyến (routers).17 - Người dùng chỉ có thể quản lý số lượng thiết bị tương ứng với số dư tài khoản của mình.18193. **Quản lý Người dùng & Số dư Tài khoản**20 - Các thao tác Thêm/Xem/Sửa/Xóa (CRUD) đối với người dùng (Chỉ dành cho Admin).21 - Mỗi người dùng có một số dư tài khoản riêng.22 - Mô hình thuê bao: 250 Rp cho mỗi thiết bị/tháng.23 - Tự động trừ số dư hàng tháng dựa trên ngày thêm thiết bị vào hệ thống.24 - Ngăn chặn việc thêm thiết bị mới nếu số dư tài khoản không đủ.25264. **Quản lý Loại Thiết bị (CRUD)**27 - Các thiết bị có thể thuộc loại "quản lý được" (manageable) hoặc "không quản lý được" (unmanageable).28 - Nếu là loại quản lý được, cho phép gán địa chỉ IP trên từng cổng (port).29305. **Quản lý Thiết bị (CRUD)**31 - Thêm thiết bị cùng với số lượng cổng và tên thiết bị.32 - Gán địa chỉ IP cho từng cổng nếu thiết bị thuộc loại quản lý được.33 - Thêm thiết bị bằng cách nhấp chuột trực tiếp lên bản đồ (lấy tọa độ) → biểu mẫu dạng pop-up sẽ hiển thị.34356. **Quản lý Kết nối (Connection Management)**36 - Kết nối các thiết bị bằng cách chọn cổng nguồn & cổng đích.37 - Gán địa chỉ IP cho các đường kết nối.38 - Di chuyển các kết nối sang những cổng trống khác.39 - Xóa các kết nối.40417. **Tích hợp với Mikrotik Netwatch API**42 - Giám sát các thiết bị dựa trên địa chỉ IP đã được gán.43 - Truy xuất trạng thái hoạt động UP/DOWN.44 - Ghi nhật ký (log) mỗi khi trạng thái thiết bị thay đổi.45468. **Bảng điều khiển Giám sát (Monitoring Dashboard)**47 - Hiển thị các thiết bị trên bản đồ với nhiều kiểu giao diện xem khác nhau.48 - Sử dụng màu sắc biểu tượng khác nhau cho trạng thái UP và DOWN.49 - Hiển thị nhật ký lịch sử thay đổi trạng thái của thiết bị.50519. **Truy cập Thiết bị Từ xa (Remote Device Access)**52 - Thêm một nút "Remote" (Truy cập từ xa) cho mỗi thiết bị.53 - Khi nhấp vào nút này, hệ thống sẽ tự động tạo một quy tắc chuyển tiếp cổng (port forwarding rule) trong Mikrotik (`src-port` được chỉ định cụ thể, `dst-port` sinh ngẫu nhiên).54 - Cho phép thêm/xóa các quy tắc chuyển tiếp cổng.555610. **Triển khai Đa Bộ định tuyến (Multi Router Implementation)**57 - Mỗi người dùng có thể sở hữu nhiều hơn một bộ định tuyến Mikrotik đóng vai trò làm máy chủ Netwatch.58 - Lưu trữ thông tin phân bổ bộ định tuyến theo từng người dùng.596011. **Bản đồ Tương tác (Interactive Map)**61 - Trực quan hóa toàn bộ các thiết bị và đường kết nối trên bản đồ.62 - Hỗ trợ nhiều kiểu hiển thị bản đồ khác nhau.636412. **Ghi nhật ký & Truy vết Kiểm toán (Logging & Audit Trail)**65 - Lưu lại lịch sử trạng thái UP/DOWN cho từng thiết bị.66 - Lưu lại lịch sử thao tác của người dùng (thêm/xóa thiết bị, kết nối, chuyển tiếp cổng).676813. **Bảo mật & Các Thực hành Tốt nhất**69 - Xác thực tính hợp lệ của tất cả các yêu cầu gọi API.70 - Bảo vệ ứng dụng khỏi các lỗ hổng SQL Injection, XSS, CSRF.71 - Sử dụng cơ chế xác thực an toàn khi giao tiếp với Mikrotik API.
Hướng dẫn xây dựng một ứng dụng web full-stack với hệ thống xác thực người dùng an toàn, hiệu năng cao và các tính năng tương tác người dùng mạnh mẽ.
Bộ công cụ để tương tác và kiểm thử các ứng dụng web cục bộ bằng Playwright. Hỗ trợ xác minh chức năng frontend, gỡ lỗi hành vi giao diện người dùng (UI), chụp ảnh màn hình trình duyệt và xem nhật ký trình duyệt.
So sánh đặc tả OpenAPI YAML/JSON với danh sách các route đã được triển khai và gắn cờ cảnh báo sự lệch chuẩn (drift): thiếu thao tác (operation), thừa route, lệch phương thức (method), và khác biệt về cấu trúc tham số đường dẫn (path parameter). Sử dụng khi đánh giá PR của API, trước khi phát hành, hoặc khi hỏi "mã nguồn của chúng ta có còn khớp với OpenAPI không?". Bao gồm công cụ kiểm tra bằng thư viện chuẩn Python có hỗ trợ --self-test.
Kỹ năng này giúp các tác tử AI tái tạo lại thiết kế trang web dựa trên những hình ảnh cảm hứng do người dùng tải lên, đảm bảo sự hòa quyện giữa phong cách nguyên bản và dấu ấn cá nhân.