# | ID | Name |
---|---|---|
1 | 18127097 | Hà Thế Hiển |
2 | 18127105 | Đỗ Quốc Huy |
3 | 18127252 | Đinh Thành Việt |
Yêu cầu: xây dựng ứng dụng web Online Academy gồm các phân hệ & chức năng sau
- Hiển thị danh sách lĩnh vực
category
. - Có 2 cấp lĩnh vực:
- IT ➠ Lập trình Web.
- IT ➠ Lập trình thiết bị di động.
-
Hiển thị 3-4 khoá học nổi bật nhất trong tuần qua.
-
Hiển thị 10 khoá học được xem nhiều nhất (ở mọi lĩnh vực).
-
Hiển thị 10 khoá học mới nhất (ở mọi lĩnh vực) Hiển thị danh sách lĩnh vực được đăng ký học nhiều nhất trong tuần qua.
-
Khuyến khích hiệu ứng ở trang chủ
- slideshow.
- carousel.
- Theo lĩnh vực
category
. Có phân trang danh sách các khoá học. - Lưu ý: Khoá học hiển thị trên trang chủ & trang danh sách gồm các thông tin sau:
- Tiêu đề.
- Lĩnh vực.
- Giảng viên.
- Đánh giá kèm số lượng học viên đánh giá.
- Ảnh đại diện khoá học.
- Giá đăng ký học kèm giá khuyến mại (nếu có).
Sử dụng kỹ thuật Full-text search
, cho phép user tìm với các từ khoá gần đúng.
- Tìm theo
tên khoá học
and/or tìm theolĩnh vực
. - Phân trang kết quả.
- Sắp xếp theo ý người dùng:
- Điểm đánh giá giảm dần.
- Giá tăng dần.
- Những khoá học mới đăng hoặc các khoá học có nhiều học viên đăng ký học (Best Seller) sẽ có thể hiện khác với các khoá học còn lại.
- Người dùng có thể click vào
category
để chuyển nhanh sang màn hìnhXEM DANH SÁCH KHOÁ HỌC
. - Tham khảo
- Nội dung đầy đủ của khoá học:
- Ảnh đại diện (size lớn).
- Tên khoá học.
- Mô tả ngắn gọn nội dung khoá học.
- Mô tả chi tiết nội dung khoá học/
- Điểm đánh giá & số lượng học viên đánh giá & số lượng học viên đăng ký học.
- Học phí & thông tin khuyến mại (nếu có).
- Lần cập nhật cuối.
- Đề cương khoá học, cho phép xem trước (preview) một số chương.
- 5 khoá học khác cùng lĩnh vực được mua nhiều nhất.
- Thông tin giảng viên.
- Danh sách feedback của học viên về khoá học
- Tham khảo.
- Người dùng cần đăng ký tài khoản để có thể tham gia học cũng như thực hiện đánh giá, phản hồi chất lượng khoá học:
- Mật khẩu được mã hoá bằng thuật toán
bcrypt
. - Thông tin:
- Họ tên.
- Email.
- Email không được trùng.
- Có xác nhận
OTP
.
- Mật khẩu được mã hoá bằng thuật toán
- Thực hiện tại view
Chi tiết khoá học
.
- Thay đổi các thông tin: email, họ tên, mật khẩu (yêu cầu nhập mật khẩu cũ).
- Xem danh sách khoá học yêu thích của mình (watchlist).
- Loại bỏ các khoá học ra khỏi danh sách yêu thích.
- Xem danh sách khoá học mà mình đã đăng ký học.
- Học viên mua khoá học để có thể tham gia học.
- Hình thức học là xem các video của khoá học được cung cấp bởi giảng viên.
- Hệ thống lưu trữ trạng thái các bài giảng (video clip) mà học viên đã học giúp học viên dễ dàng theo dõi quá trình học của mình.
- Chỉ đánh giá & phản hồi các khoá mà học viên có tham gia học.
- Xem các clip bài giảng của khoá học.
- Sử dụng thư viện javascript media player:
- Nhập đủ các thông tin của khoá học (xem phần Chi tiết khoá học).
- Mô tả khoá học:
- Bài giảng được đăng có thể chưa có đầy đủ các chương, khoá học sẽ có trạng thái là
chưa hoàn thành
; khi giảng viên cập nhật nội dung các chương, khoá học sẽ có trạng tháiđã hoàn thành
.
- Cập nhật thông tin mô tả khoá học & nội dung khoá học.
- Upload video tương ứng với các chương còn thiếu.
- Đánh dấu
Hoàn Thành
khi đã cập nhật đầy đủ nội dung của khoá học.
- Cập nhật thông tin cá nhân, thông tin này được thể hiện ở view
Chi tiết khoá học
, mụcThông tin giảng viên
. - Xem danh sách khoá học do mình giảng dạy & đăng tải.
Quản lý bao gồm các thao tác sau:
1. Xem danh sách.
2. Xem chi tiết.
3. Thêm.
4. Xoá.
5. Cập nhật.
6. Và các thao tác chuyên biệt khác.
- Các chức năng
quản lý
cơ bản. - Không được xoá lĩnh vực đã có khoá học.
- Gỡ bỏ khoá học.
- Các chức năng quản lý cơ bản:
- Tài khoản học viên có được từ chức năng đăng ký tài khoản.
- Tài khoản giảng viên do ban quản trị cấp riêng.
- Tự cài đặt
- Hoặc sử dụng passportjs
- Khuyến khích cài đặt thêm chức năng đăng nhập qua Google, Facebook, Twitter, Github, …
- Họ tên.
- Email liên lạc.
- Mật khẩu được mã hoá bằng thuật toán
bcrypt
.
- Web App MVC.
- Technical Stack
- framework:
expressjs
- view engine:
handlebars
,ejs
- db:
mysql
,postgres
,mongodb
.
- framework:
- Chỉ hoàn thành ĐÚNG các chức năng được yêu cầu
- Có thể bổ sung các hiệu ứng để tăng tính tiện dụng của từng chức năng cụ thể.
- Cần có ít nhất 10 khoá học thuộc 4-5 lĩnh vực, nội dung mô tả, hình ảnh & clips đầy đủ.
- Các khoá học phải có thông tin đánh giá & feedback đầy đủ.
- Sinh viên cần upload mã nguồn lên
github
từ lúc bắt đầu thực hiện đồ án. - Nhóm nào lịch sử commit/push không nghiêm túc ➠ 0đ.