loia5tqd001 / Dang-Ky-Hoc-Phan-UIT

Vừa update phiên bản mới nhất 2024
https://dkhp-uit.vercel.app/
346 stars 13 forks source link
google-sheets javascript typescript

Tool Đăng Ký Học Phần UIT

Giới thiệu

Tool Đăng Ký Học Phần UIT là một ứng dụng web hỗ trợ các bạn sinh viên UIT đăng ký học phần được dễ dàng, tiện lợi. Ứng dụng gồm 2 phần chính: 1. Tool Soạn Thời Khoá Biểu (chuẩn bị cho ĐKHP) và 2. Script Đăng Ký Học Phần - hỗ trợ ĐKHP nhanh hơn đăng ký thủ công - được gen ra từ bước 1. Soạn thời khoá biểu.

Trước kia, để 1. Soạn Thời Khoá Biểu mất vài ngày, bây giờ chỉ mất vài phút, để 2. ĐKHP mất vài phút, bây giờ chỉ mất vài giây.

Các update ở phiên bản 2024

Preview

Ở phiên bản mới nhất, người dùng có thể preview Thời Khoá Biểu ngay trong Grid Danh Sách Lớp bằng 1 trong 2 cách:

1. Sử dụng tab Preview trên Sidebar image
2. Mở 2 tab browser (tiện lợi cho người có 2 màn hình) image

Selection Behavior

Ở phiên bản mới nhất:

1. Những slot bị trùng TKB sẽ không hiện checkbox (non-selectable), giúp nhanh chóng chỉ ra những lớp nào có thể chọn được image
2. Khi chọn thừa lớp cho môn, sẽ hiện các cặp lớp thừa lên Thời Khoá Biểu image
3. Có thể tương tác trực tiếp lên Thời Khoá Biểu: Click để xoá môn, Shift+Click và Ctrl+Shift+Click cho các trường hợp đặc biệt khác Những lớp chung môn cũng sẽ hiện biểu tượng icon thùng rác khi hover để nhanh chóng nhận biết lớp nào sẽ bị xoá sau khi click. image

Filters/Columns/RowGroup

Ở phiên bản mới nhất, các filters, columns, row group configs đã được cải thiện cho mượt mà hơn và hoạt động hợp lý hơn. Các configs này sẽ hiện ở 4 nơi:

1. Ngay trên Header Name của column image
2. Tab "Filters" ở Sidebar image
3. Tab "Columns" ở Sidebar image
4. Context Menu (khi click chuột phải lên Grid) image

Others

1. Chia sẻ TKB Khi bấm vào nút chia sẻ TKB, các bạn sẽ được đưa đến 1 url với query param https://dkhp-uit.vercel.app?self_selected={1 danh sách mã lớp}. Url này có thể dùng đễ lưu lại trạng thái các lớp đã chọn, hoặc chia sẻ cho bạn bè. image NOTE: Thời Khoá Biểu hiển thị sẽ ưu tiên danh sách mã lớp trên url. Nếu bạn muốn hiển thị Thời Khoá Biểu theo các lớp được chọn ở local, phải xoá url query param đó đi (url query param có ưu tiên hiển thị cao hơn các lớp được chọn ở local).
2. Tải hình ảnh TKB về máy image
3. Copy script image

Old doc (before 2024) ## [ 👉 TODOLIST](https://github.com/loia5tqd001/Dang-Ky-Hoc-Phan-UIT/issues/20) ## Giới thiệu Tool Đăng Ký Học Phần UIT là một ứng dụng hỗ trợ các bạn sinh viên UIT đăng ký học phần được dễ dàng, tiện lợi. Vì sẽ có rất nhiều đối tượng sinh viên, và rất nhiều trong số đó chỉ muốn sử dụng **một số tính năng nhất định** của ứng dụng mà **không muốn sử dụng toàn bộ ứng dụng**. Do đó, các tính năng của ứng dụng đã được **tách rời**, **làm cho không phụ thuộc vào nhau**, giúp phục vụ nhiều đối tượng sinh viên nhất có thể.
Chẳng hạn, bạn master Excel, có thể tự soạn thời khoá biểu cho bản thân mình nên không cần sử dụng tính năng _Soạn thời khoá biểu_ của ứng dụng này, thì bạn vẫn có thể sử dụng tính năng _Vẽ thời khoá biểu_ để xem thời khoá biểu bạn đã soạn, hoặc sử dụng tính năng _Tạo script ĐKHP nhanh_ để tạo lợi thế ĐKHP nhờ script tự động thao tác nhanh hơn so với đăng ký học phần thủ công. ## Usecase ### Lược đồ usecase tổng quát ![Lược đồ usecase tổng quát](./docs/diagrams/out/usecase/usecase-page2.svg) _So với usecase trên trường học thì «cần» ở đây là «include», «có thể giúp» là «extend»_ ### Tách usecase ![Lược đồ tách usecase](./docs/diagrams/out/usecase/usecase-page3.svg) ## Phân tích tính năng `Input + Hành động người dùng + Hệ thống xử lý = Output` | Tính năng | Input | Hành động người dùng | Output | | -------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | _0._ Tạo nguồn dữ liệu | | - Sử dụng dữ liệu mặc định
- Tải lên file excel
- Crawl từ trang dkhp.uit.edu.vn | _Dữ liệu lớp học_ | | _1._ Soạn thời khoá biểu | _Dữ liệu lớp học_ | Sort, filter, pick lớp | _Danh sách lớp học sẽ ĐK_ | | _2._ Vẽ thời khoá biểu | - _Dữ liệu lớp học_
- _Danh sách lớp học sẽ ĐK_ | | Giao diện thời khoá biểu
- Copy to clipboard
- Tải về máy | | _3._ Tạo script ĐKHP nhanh | _Danh sách lớp học sẽ ĐK_ | | Script ĐKHP nhanh | | _4._ Xem giao diện ĐKHP | | | Giao diện ĐKHP mẫu | ### Mối quan hệ giữa các tính năng ![Lược đồ mối quan hệ giữa các tính năng](./docs/diagrams/out/activity/activity-page1.svg)
Tách tính năng Vẽ thời khoá biểu Lược đồ tách tính năng vẽ thời khoá biểu
Tách tính năng Tạo script ĐKHP nhanh Lược đồ tách tính năng tạo script ĐKHP nhanh
## Phân rã chức năng ![Lược đồ phân rã chức năng](./docs/diagrams/out/functional-decomposition/functional-decomposition.svg) ## Cấu trúc giao diện Giao diện gồm 5 màn hình tương ứng với 5 tính năng bên trên: - Tính năng _Tạo nguồn dữ liệu_ → Màn hình `Tạo dữ liệu` - Tính năng _Soạn thời khoá biểu_ → Màn hình `Soạn TKB` - Tính năng _Vẽ thời khoá biểu_ → Màn hình `Vẽ TKB` - Tính năng _Tạo script ĐKHP nhanh_ → Màn hình `Script ĐKHP nhanh` - Tính năng _Xem giao diện ĐKHP_ → Màn hình `Giao diện ĐKHP` ## Hướng dẫn bảo trì dự án ### Về thiết kế hệ thống, bảo trì các lược đồ (diagrams) ### Bảo trì mã nguồn #### Cách khởi chạy dự án #### Code convention #### Cách chạy testcase #### Cập nhật thời khoá biểu mặc định