Giter Club home page Giter Club logo

webctt2's Introduction

Web Courses CTT2

  • Đồ án môn học - Phát triển ứng dụng website

  • Team up cùng mấy nhóc CTT2

    • Name Mssv
      Võ Thế Minh 18120211
      Mai Ngọc Tú 18120253
      Phạm Tống Bình Minh 18120210
  • Thông tin liên hệ: [email protected]

Mô tả đề tài

  • Mục tiêu đề tài: Một ứng dụng website giúp người sử dụng có thể mua và học các khóa học trực tuyến. Cùng với đó làn những giảng viên có thể tạo và quản lý khóa học của mình
  • Môi trường sử dụng: Web browser
  • 4 actors chính: Guest, Người dùng, Giảng viên, Admin
  • Dữ cần quản lý: Thông tin người dùng, thông tin của giảng viên, thông tin của admin, thông tin của khóa học
  • Chức năng của Guest:
    • Đăng ký tài khoản
    • Hệ thống menu
    • Trang chủ
    • Xem danh sách khóa học
    • Tìm kiếm khóa học
    • Xem chi tiết khóa học
  • Chức năng của Người dùng:
    • Toàn bộ chức năng của Guest
    • Lưu khóa học vào danh sách yêu thích
    • Quản lý hồ sơ cá nhân
    • Tham gia khóa học
    • Đánh giá & phản hồi khóa học
    • Xem nội dung bài giảng
  • Chức năng của Giảng viên:
    • Toàn bộ chức năng của Guest
    • Đăng khóa học
    • Bổ sung thông tin, bài giảng cho khóa học
    • Quản lý hồ sơ cá nhân
  • Chức năng của Admin
    • Quản lý lĩnh vực category
    • Quản lý khóa học
    • Quản lý danh sách học viên, giảng viên
  • Các tính năng chung cho phân hệ Người dùng, Giảng viên, Admin
    • Đăng nhập/đăng xuất
    • Cập nhật thông tin cá nhân
    • Đổi mật khẩu
  • Chi tiết truy cập: https://hackmd.io/@nndkhoa9/web-online-academy

Clone về máy và chạy thử

  • Yêu cầu công nghệ để chạy thử Web server
    • Cài đặt NodeJs
    • Cài đặt MongoDB Local(Có thể cài đặt thêm MongoDBCompass một GUI giúp tương tác với data) hoặc sử dụng MongoDB Atlas
      • Tạo database WEBCTT2(Xem trong file ./source/user-guest/code/config/key.config.js để biết thêm chi tiết)
      • Tạo các collection có tên trùng với tên file trong thư mục ./source/database
      • Import *.json tương ứng vào các collection vừa tạo
    • Đi tới đường dẫn ./source/user-guest/code và gõ lệnh npm install(Tự động cài đặt các package cần thiết để chạy server)
    • Đi tới đường dẫn ./source/admin/ vã gõ lệnh npm install(Tự động cài đặt các package cần theiest để chạy server)
  • Khởi chạy server trang web
    • Khởi chạy server cho trang web của Guest và Người dùng
      • Đi tới đường dẫn ./source/user-guest/code
      • Chạy lệnh npm start
      • Lúc này sẽ có một thông báo xuất hiện trên console cho biết số port mà server đang lắng nghe người dùng connect (cụ thể là port 8000 và có thể được đổi lại trong file app.js)
      • Mở trình duyệt và truy cập vào đường dẫn http://localhost:8000
    • Khởi chạy server cho trang web của admin và quản lý rạp chiếu
      • Đi tới đường dẫn ./source/admin/
      • Chạy lệnh npm start
      • Lúc này sẽ có một thông báo xuất hiện trên console cho biết số port mà server đang lắng nghe người dùng connect (cụ thể là port 8001 và có thể được đổi lại trong file app.js)
      • Mở một trình duyệt khác với trình duyệt đã sử dụng cho server Người dùng(vd: Microsofe Edge and Goolge Chorme) và truy cập vào đường dẫn http://localhost:8001/admin/login

Công nghệ được sử dụng trong đồ án

  • Phía font-end
    • Sử dụng HTML/CSS/JS/JQuery để code giao diện(Các mẫu giao diện được tham khảo từ https://bootsnipp.com/
    • Sử dụng view-engine ejs(Cho phép người dùng thêm code JS vào đoạn code HTML)
  • Phía backend
    • Quản lý server: NodeJS express
    • Xác thực tài khoản: PassportJS
    • Xử lý lỗi: Error handler
    • Quản lý phiên đăng nhập: express-session
    • Các API được sử dụng trong đồ án:
      • Xác thực tài khoản bằng gmail: Google API, node-mailer
      • Quản lý hóa đơn + Thanh toán: PayPal/rest/API (tuy nhiên, việc thanh toán chỉ được thực hiện bằng tài khoản sandbox)
      • Upload và lưu trữ ảnh đại diện: sử dụng API Bootstrap File Input - Tác giả Krajee
      • Lưu trữ hình ảnh, bài giảng sử dụng Cloudinary API
      • Xem video bài giảng: Video-Js

Demo

Phân hệ người dùng

  • Giao diện trang chủ

  • Giao diện chi tiết khóa học

  • Giao diện thanh toán khóa học

  • Giao diện danh sách khóa học yêu thích

  • Giao diện đăng nhập

  • Giao diện hồ sơ cá nhân

  • Giao diện xác thực OTP

  • Gmail xác thực

Phân hệ admin, giảng viên

  • Giao diện quản lý danh sách khóa học

  • Giao diện quản lý danh sách học viên

  • Giao diện quản lý danh sách category


Các em sinh viên có dùng tài liệu của anh để tham khảo thì nhớ để lại 1 sao nha :))

END

webctt2's People

Contributors

ptbminh1108 avatar ngoctu69 avatar 18120211 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.