IV.1. Model
Các class này được khai báo Serializable và save vào các đường dẫn tương đối theo từng bài lab được định nghĩa.
a. LabInfo
b. DependencyInfo c. UserInfo
IV.2. Package
a. Org.sakaiproject.cslab.tool.model: Chứa các model như trên
b. Org.sakaiproject.cslab.tool.services.ssh : Chứa Class SSHBO hỗ trợ cho các lệnh SSH
c. Org.sakaiproject.cslab.tool.utils: Chứa ReadWriteBO phục vụ cho việc đọc/ghi dữ liệu
d. Org.sakaiproject.cslab.tool.test : Phục vụ việc test trên console các class khác e. Org.sakaiproject.cslab.tool.bkbeans : Chứa các file backing bean được khai báo trong file faces-config.xml, dùng để lưu trữ trạng thái của server, chủ yếu là session bean.
f. Ngoài ra còn một số package hỗ trợ việc tạo dữ liệu ảo trong quá trình kiểm tra chức năng SSH trước khi chương trình hoàn thành.
IV.3. Hệ thống các trang JSP
Các trang JSP trình bày nội dung của các file Backing bean tương ứng trong package bkbeans.
ManagerHomeBean ManagerHome.jsp
Tạo, duyệt, chỉnh sửa và quản lí các bài Lab cũng như việc sinh viên làm Lab
StudentHomeBean StudentHome.jsp Dependencies.jsp
IV.4. Hiệu ứng phụ
Một số hiệu ứng Jquery được sử dụng để tạo ra hiệu ứng hấp dẫn và tiện lợi trên CSLab: a. DateTimePicker
Khi tạo lab, việc nhập thời gian và ngày tháng sẽ gây khó khăn cho user nếu phải nhập ngày tháng năm và giờ phút giây theo một format nào đó.
b. Code Highlighter
Đối với công cụ cho phép sinh viên thực hiện việc viết mã chương trình thì việc cung cấp khả năng hightlight code là cần thiết. Ở đây sử dụng Plugin
c. Table sorter
Các bảng dữ liệu trong CSLab có thể dễ dàng được sort theo từng cột khi người sử dụng click vào header của một cột.
Hình trên xếp theo cột StartOn. Sau đây là kết quả xếp theo cột Name:
Ngoài ra bạn có thể thấy các hiệu ứng nhỏ như hàng được con trỏ chuột chỉ vào được hightlight.