# Đồ án trang web khóa học online Kmin
###### tags: `projectNodejs`, `kmin`
## :memo: 1. Các tính năng chung cho các phân hệ
### 1: Đăng ký tài khoản
###### Người dùng cần đăng ký tài khoản để có thể đăng ký khóa học, đăng khóa học, bình luận, rating....
- [ ] Email
- [ ] Mật khẩu
- [ ] Họ tên
Email không được trùng (giống username), có thể có xác nhận OTP hoặc không nếu làm k kịp
Mật khẩu được mã hóa bằng thuật toán bcrypt
### 2. Đăng nhập
### 3. Đăng xuất
### 4. Cập nhật thông tin cá nhân
### 5. Đổi mật khẩu
## :memo: 2. Phân hệ người dùng có đăng ký tài khoản
### 2.1. Lưu khóa học vào danh sách yêu thích (có thể bỏ qua)
### 2.2. Quản lý hồ sơ cá nhân
###### Xem ds khóa học yêu thích (có thể bỏ qua)
###### Thay đổi thông tin cá nhân
###### Loại bỏ khóa học ra khỏi ds yêu thích (có thể bỏ qua)
###### Xem ds các khóa học đã đăng ký
### 2.3. Tham gia khóa học
### 2.4. Đánh giá phản hồi (có thể bỏ qua)
### 2.5. Xem nội dung bài giảng
### 2.6. Xem chi tiết khóa học
### 2.7. Tìm kiếm khóa học
### 2.8. Xem ds khóa học - sử dụng kĩ thuật full text search
- [ ] Có phân trang danh sách các khóa học
- [ ] Theo lĩnh vực category
### 2.9. Vào được trang chủ
### 2.10. Hiển thị Menu
- [ ] Hiển thị ds lĩnh vực category
- [ ] Chỉ làm 2 cấp lĩnh vực (vd: design --> ui/ux, design --> AE, IT --> lập trình web, IT --> lập trình ứng dụng di động)
### 2.11. Theo dõi được quá trình học
###### Bằng cách tạo thêm một bảng mới gồm có ngày đăng ký và trạng thái hoàn thành. Nếu học xong sẽ được cấp chứng chỉ
### 2.12. Xem danh sách các chứng chỉ được nhận
## :memo: 3. Phân hệ giảng viên
### 3.1. Đăng khóa học
### 3.2. Quản lý hồ sơ cá nhân
## :memo: 4. Phân hệ quản trị viên
### 4.1. Gỡ bỏ khóa học
### 4.2. Quản lý ds sinh viên và giảng viên
### 4.3. Quản lý lĩnh vực category
### 4.4. Quản lý hồ sơ cá nhân