Giter Club home page Giter Club logo

hcmus-18se2-webdev's Introduction

HCMUS-18SE2-WebDev

Project info

Group 05

# ID Name
1 18127097 Hà Thế Hiển
2 18127105 Đỗ Quốc Huy
3 18127252 Đinh Thành Việt

Functional & non-functional requirements.

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

1. Phân hệ người dùng nặc danh - guest

1.1 Hệ thống menu

  • 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.

1.2 Trang chủ

  • 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.

1.3 Xem danh sách khoá học

  • 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ó).

1.4 Tìm kiếm khoá họ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 theo lĩ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ình XEM DANH SÁCH KHOÁ HỌC.
  • Tham khảo

1.5 Xem chi tiết khoá học

  • 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.

1.6 Đăng ký

  • 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.

2. Phân hệ học viên

2.1 Lưu khoá học vào danh sách yêu thích Watch List.

  • Thực hiện tại view Chi tiết khoá học.

2.2 Quản lý hồ sơ cá nhân

  • 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.

2.3 Tham gia khoá 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.

2.4 Đánh giá & phản hồi các khoá học

  • Chỉ đánh giá & phản hồi các khoá mà học viên có tham gia học.

2.5 Xem nội dung bài giảng

3. Giảng viên

3.1 Đăng khoá học

  • 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.

3.2 Bổ sung thông tin & bài giảng cho khoá học

  • 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.

3.3 Quản lý hồ sơ cá nhân

  • 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ục Thông tin giảng viên.
  • Xem danh sách khoá học do mình giảng dạy & đăng tải.

4. Phân hệ quản trị viên - administrator

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.

4.1 Quản lý lĩnh vực category

  • Các chức năng quản lý cơ bản.
  • Không được xoá lĩnh vực đã có khoá học.

4.2 Quản lý khoá học

  • Gỡ bỏ khoá học.

4.3 Quản lý danh sách học viên & giảng viên

  • 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.

5. Các tính năng chung cho các phân hệ người dùng

5.1 Đăng nhập

  • 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, …

5.2 Cập nhật thông tin cá nhân

  • Họ tên.
  • Email liên lạc.

5.3 Đổi mật khẩu

  • Mật khẩu được mã hoá bằng thuật toán bcrypt.

6. Các yêu cầu khác

6.1 Yêu cầu kỹ thuật

  • Web App MVC.
  • Technical Stack
    • framework: expressjs
    • view engine: handlebars, ejs
    • db: mysql, postgres, mongodb.
  • 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ể.

6.2 Yêu cầu dữ liệu

  • 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 đủ.

6.3 Yêu cầu quản lý mã nguồn

  • 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 ➠ .

hcmus-18se2-webdev's People

Contributors

qhuydo avatar hathehien avatar thanhvietgl avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.