Thiết kế website đặt vé xem phim trực tuyến

MỤC LỤC

PHẦN MỞ ĐẦU

  • Cách tiếp cận và phương pháp nghiên cứu 1. Đối tượng nghiên cứu
    • Phân tích những công trình có liên quan 1. Website thứ nhất: CGV

      Ngoài ra nhóm còn vận dụng các công nghệ khác hỗ trợ như Circle CI,… Từ đó, vận dụng các kỹ năng lập trình và kiến thức đã được học, áp dụng chúng vào việc xây dựng cấu trúc và chức năng của trang web. Đối với quản lý và nhân viên, đòi hỏi nghiệp vụ trong công việc như tạo mới, xóa, cập nhật và quan sát các dữ liệu như phim, lịch chiếu phim, nội dung review của người dùng, tin tức, sự kiện và số liệu, doanh thu. Sau khi thực hiện khảo sát các website và đưa ra nhiều nhận định, đánh giá nhóm sẽ tận dụng điểm đặc biệt của từng website để từ đó đem đến một website hoàn thiện và tối ưu cho quá trình trải nghiệm đặt vé xem phim của người dùng.

      Hình 3 Giao diện trang chủ Book my Show
      Hình 3 Giao diện trang chủ Book my Show

      PHẦN NỘI DUNG

      Kiến trúc hệ thống

        Cấu trúc các thư mục của dự án gồm các thư mục: node_modules (chưa xuất hiện nếu người dùng chưa cài đặt lần đầu, đây là nơi chứa các thư viện, những tệp tin quan trọng phụ vụ cho việc render ra các thành phần của trang web), thư mục public (cung cấp đường dẫn chính, file index.html được chạy đầu tiên, chứa các link đến thư viện hỗ trợ và tạo root cho dự án, nơi đây chứa các file như logo của website), thư mục src nơi chứa các đoạn code. Quá trình cài đặt diễn ra dưới một phút, người dùng có thể thấy được kết quả sau khi cài đặt xong là thư mục node_modules sẽ xuất hiện, đồng thời các package-lock.json, package.json cũng sẽ được cập nhật. Cadence Workflow để xây dựng hệ thống đặt vé vì sự khác biệt giữa Cadence và phần lớn các công cụ quy trình công việc hiện tại là nó được nhà phát triển tập trung và cực kỳ linh hoạt và có thể mở rộng (tới hàng chục nghìn cập nhật mỗi giây và lên đến hàng tỷ quy trình công việc mở).

        Vì mục đích của chúng ta sử dụng Cadence là để cấp những Worker thực hiện những công việc mà ta khai báo, chính vì vậy ta cần cấu hình cơ bản để Cadence có thể hiểu được chính xác công việc ta cần xử lý là như thế nào. Và sau khi thiết lập kết nối xong ta chỉ cần khai báo một hành động, công việc ta muốn giao cho server Cadence xử lý là ta đã hoàn thành bước triển khai hệ thống Cadence. Sau khi đăng nhập thành công, hệ thống CircleCi sẽ tự động load những dự án trên github vào mục Projects để chúng ta có thể kết nối với hệ thống CircleCi để cấu hình CICD (triển khai và tích hợp liên tục).

        - Truy cập được vào website và có thể xem nội dung trên trang chủ như danh sách các phim đang chiếu, sắp chiếu, thông tin khuyến mãi của rạp, thông tin chi tiết, trailer của phim, danh sách bài review và nội dung chi tiết bài review, các lượt tương tác với bài review. - Truy cập được vào website và có thể xem nội dung trên trang chủ như danh sách các phim đang chiếu, sắp chiếu, thông tin khuyến mãi của rạp, thông tin chi tiết, trailer của phim, danh sách bài review và nội dung chi tiết bài review, các lượt tương tác với bài review. -Nhân viên rạp phim (Staff) sẽ có chức năng chính là đăng và chỉnh sửa thông tin các bộ phim đang chiếu và sắp chiếu, đăng và chỉnh sửa thông tin tin tức và khuyến mãi của rạp và đặt vé tại rạp dành cho người dùng tới tận rạp mua vé.

        -Khách vãng lai (Guest) có thể vào website tiến hành xem các thông tin ở trang chủ, xem thông tin chi tiết phim, xem trailer và xem các bài review, cũng như xem các thông tin khuyến mãi và xem lịch chiếu phim, ngoài ra khách hàng vãng lai cũng có thể đặt vé tại quầy và thanh toán tại quầy.

        Hình 26 Ví dụ về Reducer
        Hình 26 Ví dụ về Reducer

        Mô hình hóa hệ thống 1. Lược đồ Usecase

          Tạo một tài khoản mới cho một user mới có thể dùng để đăng Short Description nhập và sử dụng đầy đủ các tính năng của trang web. Thông báo kết quả, nếu thành công thì đưa người dùng vào trang Post-Condition(s) đăng nhập để tiến hành vào hệ thống. Hệ thống kiểm tra và thấy và thấy tài khoản chưa tồn tại với username hoặc email, sau đó gửi thông báo lên View 2c2.

          Post-Condition(s) Bài viết của user đã được thay đổi trạng thái không được duyệt Kiểm duyệt viên xem danh sách bài viết chưa duyệt và chọn Main Flow bài viết để xem. Actor Người dùng có tài khoản, Nhân viên Short Description Người dùng có tài khoản đăng bài viết Pre-Condition(s) Đã đăng nhập vào hệ thống. View sẽ gửi yêu cầu xuống hệ thống, nếu bài viết chưa có trong danh sách yêu thích thì lưu bài viết vào danh sách yêu Main Flow thích, còn bài viết đã có trong danh sách yêu thích thì gỡ bài.

          Short Description Nhân viên và Quản trị viên sử dụng được các chức năng quản lý thanh toán vé xem phim của người dùng. Short Description Đổi mật khẩu của tài khoản thành mật khẩu mới Pre-Condition(s) Người dùng đã đăng nhập vào hệ thống. Pre-Condition(s) Người dùng đã đăng nhập vào hệ thống Post-Condition(s) Thích hoặc gỡ thích một bài viết thành công.

          Short Description Quản trị viên sử dụng được các chức năng quản lý tài khoản Pre-Condition(s) Đã đăng nhập tài khoản quản trị viên. Hệ thống hiển thị các thông tin chức năng thêm nhân viên, xem thông tin tài khoản, chỉnh sửa thông tin tài khoản, xóa tài khoản. Hệ thống hiển thị các thông tin chức năng thêm bài viết, xem thông tin bài viết, chỉnh sửa thông tin bài viết, duyệt bài viết, từ chối duyệt bài viết, xóa bài viết.

          Hình 50 Lượt đồ lớp (Class)
          Hình 50 Lượt đồ lớp (Class)

          Thiết kế hệ thống

            STT Tên xử lý Thuộc tính Điều kiện gọi 1 Tiờu đề bài viết Text Input Nhấn vào để gừ. 3 Nội dung Review Text Editor Nhấn vào để gừ và định hỡnh cỏc thuộc tính văn bản, hình ảnh.

            Hình 55 Giao diện đăng nhập
            Hình 55 Giao diện đăng nhập

            TRIỂN KHAI VÀ KIỂM THỬ HỆ THỐNG 3.1. Triển khai hệ thống

              Và sau khi kết nối thành công ta chỉ cần đưa đoạn code mới nhất lên nhánh đã thiết lập sẵn hệ thống sẽ tự đông triển khai hệ thống lên docker cho chúng ta sử dụng. Docker là một nền tảng để cung cấp cách để building, deploying và running ứng dụng dễ dàng hơn bằng cách sử dụng các containers (trên nền tảng ảo hóa). Ở đây ta sẽ sử dụng container của Docker để đóng gói một ứng dụng với tất cả các phần cần thiết, chẳng hạn như thư viện và các phụ thuộc khác, và gói tất cả ra dưới dạng một package.

              Sau khi lựa chọn xong cách thức host tiếp tục đăng nhập github vào và config file CICD để mỗi khi ta push code mới nhất lên hệ thống sẽ tự động cập nhật bản code mới nhất lên host. Kết quả thử nghiệm hệ thống đặt vé xem phim online được chạy trên máy chủ, thu thập dữ liệu trên api được triển khai lên Docker. Tỉ lệ khiếm khuyết chấp nhận được xác định bằng tổng số khiếm khuyết chấp nhận được trên tổng số khiếm khuyết được tìm thấy 6,67%.

              Tỉ lệ khiếm khuyết bị pending xác định bằng tổng số khiếm khuyết bị pending trên tổng số khiếm khuyết được báo cáo 3,33%. Cơ bản mục tiêu tạo ra hệ thống đặt vé xem phim online và thử nghiệm đạt được những yêu cầu về chức năng cơ bản đã nêu trong phạm vi của dự án. Có thể mở rộng để đáp ứng lượng dữ liệu đổ về lớn, tuy nhiên bản thử nghiệm chưa thể cho kết luận về con số cụ thể nếu thật sự mở rộng do chỉ được thử nghiệm trong một môi trường nhỏ với số lượng dữ liệu.

              Kết luận: Sau quá trình phát triển hệ thống được kiểm thử và tổng hợp kết quả thông qua nội dung thử nghiệm từ đó có thể đưa ra đánh giá về quá trình chạy thử.

              Hình 89 Cấu hình file kết nối CircleCi
              Hình 89 Cấu hình file kết nối CircleCi

              PHẦN KẾT LUẬN

                Chức năng thanh toán chưa hoàn thiện, bảo mật trong quá trình thanh toán còn yếu. Đề tài được xây dựng trong thời gian ngắn chính vì vậy không tránh được sự sai sót cũng như chưa tối ưu được trải nghiệm của người dùng. Tuy vậy đề tài vẫn đang được cập nhật phiên bản liên tục để cập nhật tính năng mới nhất và khắc phục những khuyết điểm đang hiện hữu.

                - Kết nối với nhiều hệ thống rạp khác với chức năng thiết kế tự động chỗ ngồi theo sơ đồ mà bên cung cấp thiết kế.