Bối cảnh:
Một phòng lab cấp server cho nhóm sinh viên gồm 5 bạn để phục vụ cho mục đích học tập, thí nghiệm. Khi các bạn muốn thao tác với server, phải tới phòng lab, ngoài ra trong một thời điểm chỉ có thể có một bạn làm việc (vì chỉ có một màn hình máy tính duy nhất). Nhóm quyết định sử dụng phương thức SSH, giúp các thành viên có thể truy cập và điều khiển server từ xa, không phải đến lab, lại không phải chờ trong khi các thành viên khác đang sử dụng.
Tuy nhiên, người quản lý server cần nắm thông tin các thành viên trong nhóm sử dụng như thế nào. Mặc dù các thao tác của người truy cập thông qua SSH thường được lưu lại dưới dạng log, nhưng với một vài mẹo trên máy tính, log vẫn có thể bị xóa. Ngoài ra, việc tổ chức log mặc định của hệ điều hành gây bất tiện cho việc kiểm soát và nắm bắt thông tin của bên quản lý khi cần xem lại các hành vi đã diễn ra.
Mục tiêu của dự án Tick-WebTerm là sẽ xây dựng được một terminal trên nền tảng web hỗ trợ các thành viên truy cập vào server của Lab thay cho các phương thức khác như SSH. Mục đích của việc này là để việc kiểm soát hành vi của các thành viên trên server của TickLab thuận tiện hơn.
Đặc tả sơ bộ yêu cầu chức năng của Tick-WebTerm:
- Có cơ chế xác thực người dùng
- Có cơ chế theo dõi và thống kê các session của người dùng
- Triển khai được Tick-WebTerm trong docker container (nhằm giới hạn các câu lệnh CLI của người dùng chỉ chạy trong container đó và không ảnh hưởng đến máy host).
Qua dự án này, người thực hiện sẽ tích lũy được kiến thức về:
- WebSocket và Session
- Tầm quan trọng của Logger và Profiler
- Docker
- Thiết kế kiến trúc phần mềm
- Pseudo-terminal
Thời gian: 4 tháng đối với sinh viên năm 2, 3 tháng đối với sinh viên năm 3 trở lên.