# TKPM - Project #2 - Bộ ứng dụng hỗ trợ lập trình viên (IT tools for developers) ### :book: Chức năng Nhóm sinh viên xây dựng 01 phần mềm chứa các công cụ nhỏ hỗ trợ công việc đơn giản dành riêng cho lập trình viên như sau: - Nhóm công cụ mã hoá - Phát sinh token - Hash chuỗi - ... - Nhóm công cụ xử lý chuỗi - Sinh chuỗi Lorem Ipsum - Phát sinh ASCII Art - ... - Nhóm công cụ chuyển đổi - Chuyển đổi các định dạng ngày tháng - Chuyển đổi JSON <-> XML - ... - Nhóm công cụ hình ảnh/ video - Phát sinh QR - Phát sinh placeholder - ... - ... Tham khảo: https://it-tools.tech/ #### :diamonds: Phân hệ anonymous 1. **Tìm kiếm** công cụ cần sử dụng theo tên ![image](https://hackmd.io/_uploads/H1FhR17iyl.png) 2. Sử dụng các công cụ được cho phép, một số công cụ được phân loại **premium** chỉ có người dùng **premium** mới được phép sử dụng 3. Đăng ký tài khoản 4. Đăng nhập #### :large_orange_diamond: Phân hệ **user** 1. Toàn bộ chức năng của phân hệ **anonymous** 2. Đánh dấu thích một số chức năng và có màn hình riêng để truy cập các chức năng ưa-thích này ![image](https://hackmd.io/_uploads/rJpNexXiye.png) 3. Xin nâng cấp tài khoản **premium** #### :diamond_shape_with_a_dot_inside: Phân hệ **premium** 1. Toàn bộ chức năng của phân hệ **người dùng** 2. Sử dụng được tất cả các chức năng #### Phân hệ **admin** 1. Enable/Disable các công cụ hiện có 2. Nâng/Hạ cấp các công cụ sang premium/thường 3. Bổ sung/loại bỏ công cụ ### :book: Các yêu cầu khác - Mỗi nhóm sinh viên cần cài đặt đủ 10 nhóm công cụ - Mỗi nhóm công cụ, nhóm sinh viên cài đặt tối thiểu 3 công cụ, cài đặt càng nhiều công cụ càng tốt :::info :star: Quá trình bổ sung / loại bỏ công cụ cần được thiết kế và thực hiện theo một trong các cấp độ dưới đây - **Cấp độ 1**: không cần biên dịch lại mã nguồn của hệ thống đang vận hành, công cụ mới sẽ được gắn nóng vào hệ thống (==hot plug==), hệ thống tự nhận dạng các thay đổi này ngay lập tức. - **Cấp độ 2**: các thay đổi được đưa vào hệ thống đang có mà không yêu cầu chỉnh sửa mã nguồn của các thành phần đang hoạt động ổn định (tức là chỉ thêm class/file, không sửa class/file đang có), hệ thống cần được biên dịch và triển khai lại. - **Cấp độ 3**: các thay đổi được đưa vào hệ thống bằng cách chỉnh sửa hoặc thay thế các tập tin mã nguồn hiện có. Phương án này là phương án tệ nhất, thể hiện thiết kế hệ thống có khả năng mở rộng kém. :::