CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1. Phân tích và thiết kế hướng đối tượng: 1. Phân tích và thiết kế hướng đối tượng là gì? Phân tích thiết kế hướng đối tượng(OOAD) là giai đọan phát triển một mô hình chính xác và súc tích của vấn đề, có thành phần là các đối tượng và khái niệm đời thực, dễ hiểu đối với người sử dụng. Năm nguyên tắc trong thiết kế hướng đối tượng: - Một lớp chỉ nên có một lý do để thay đổi, tức một lớp chỉ nên xử lý một chức năng đơn lẻ, duy nhất.
Nếu đặt nhiều chức năng vào một lớp sẽ dẫn đến sự phụ thuộc giữa các chức năng với nhau và mặc dù sau đó thay đổi một chức năng cũng phá vỡ các chức năng còn lại. - Các lớp, module, chức năng nên dễ dàng Mở(Open) cho việc thêm chức năng mới, và Đóng(Close) cho việc thay đổi. - Lớp dẫn xuất phải có khả năng thay thế được lớp cha. - Chương trình không nên buộc phải cài đặt một Interface mà nó không sử dụng đến.
- Các module cấp cao không nên phụ thuộc vào các module cấp thấp. Cả hai nên phụ thuộc thông qua lớp trừu tượng. Lớp trừu tượng không nên phụ thuộc vào chi tiết. Chi tiết nên phụ thuộc vào trừu tượng.
Ngôn ngữ thiết kế web HTML và CSS 1. HTML HTML(Hypertext Markup Language) là mã được dùng để xây dựng nên cấu trúc và nội dung của trang web. Ví dụ, nội dung có thể được cấu thành bởi một loạt các đoạn văn, một danh sách liệt kê, hoặc sử dụng những hình ảnh và bảng biểu. CSS CSS – được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML.
CSS là viết tắt của Cascading Style Sheets. CSS được hiểu 9 một cách đơn giản đó là cách mà chúng ra thêm các kiểu hiển thị (font chữ, kích thước, màu sắc,…) cho một tài liệu Web.3 Khác nhau cơ bản giữa HTML và CSS Hình ảnh 1.1: Sự khác nhau của HTML và CSS “HTML là một ngôn ngữ đánh dấu để mô tả các tài liệu web (trang web)” - W3Schools HTML được tạo ra để giúp các lập trình viên mô tả nội dung trên một trang web. HTML sử dụng các thẻ để gúp bạn thêm đoạn văn, tiêu đề, hình ảnh, dấu đầu dòng và các phần cấu trúc khác. Giống như việc viết một cái gì đó trên một tài liệu word, HTML giúp bạn viết một cái gì đó trên một trang web.
“CSS mô tả cách các phần tử HTML được hiển thị trên màn hình, giấy hoặc các phương tiện khác” - W3Schools CSS là thứ làm cho một trang web trong tuyệt vời. Trình bày và tính dễ sử dụng là một số phẩm chất mà CSS mang lại cho việc phát triển web. Nó liên quan nhiều hơn đến việc thay đổi phong cách trang web, hơn là nội dung của nó. Giống như thay đổi kích thước phông chữ, màu phông chữ và định vị trên một 10 tài liệu word.
CSS chịu trách nhiệm về giao diện của nội dung trên một trang web và những nội dung khác trên đó. Mô hình MVC 1. Khái niệm Mô hình MVC là một mô hình lập trình web được sử dụng rộng rãi hiện nay, được viết tắt bởi ba từ Model – View – Controller, tương ứng với ba bộ phận tạo nên cấu trúc của ứng dụng. Mỗi thành phần kiến trúc được xây dựng để xử lý khía cạnh phát triển cụ thể của một ứng dụng.2: Mô hình MVC Chức năng cụ thể của từng bộ phận trong mô hình MVC: ✓ View: View là một phần của ứng dụng chịu trách nhiệm cho việc trình bày dữ liệu.
Thành phần này được tạo bởi dữ liệu thu thập từ dữ liệu mô hình, và giúp người dùng có cái nhìn trực quan về trang web, cũng như ứng dụng. ✓ Model: Model của kiến trúc MVC là thành phần chính đảm nhiệm chức năng lưu trữ dữ liệu và các bộ phận logic liên quan của toàn bộ ứng dụng. Model chịu trách nhiệm cho các thao tác dữ liệu giữa Controller hoặc bất kỳ logic nghiệp vụ liên quan nào khác như cho phép xem, truy xuất dữ liệu. 11 ✓ Controller: Controller xử lý tương tác người dùng của ứng dụng.
Nó xử lý dữ liệu đầu vào từ bàn phím và chuột của người dùng, sau đó thông báo tới View và Model. Controller gửi các lệnh tới Model để thay đổi trạng thái của Model. Controller cũng gửi các lệnh tương tự tới View để thực hiện các thay đổi về giao diện. Ưu điểm của mô hình MVC Một số ưu điểm của mô hình MVC: - Trình xử lý rõ ràng.
- Mô hình MVC quy hoạch các class/function vào các thành phần riêng biệt, việc đó làm quá trình phát triển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn. - Tạo ra được các chức năng chuyên biệt hóa, đồng thời kiểm soát được luồng xử lý. - Tạo mô hình chuẩn cho dự án, người chuyên môn ngoài dễ tiếp cận hơn. - Xử lý nghiệp đơn giản và dễ dàng triển khai với các dự án nhỏ.
Ngôn ngữ lập trình PHP 1.1 Giới thiệu - PHP là một ngôn ngữ lập trình phổ biến được sử dụng rộng rãi trong phát triển ứng dụng web. Ngôn ngữ này được phát triển từ những năm 1990 và đã trở thành một trong những công cụ phát triển ứng dụng web quan trọng nhất. PHP có thể được sử dụng để phát triển các ứng dụng web động, quản lý cơ sở dữ liệu và các ứng dụng web khác. - PHP là ngôn ngữ lập trình mã nguồn mở, nghĩa là mã nguồn của nó có thể được sửa đổi và phân phối miễn phí.
Điều này có nghĩa là các nhà phát triển có thể sử dụng PHP để phát triển các ứng dụng web mà không cần phải mất nhiều chi phí cho phần mềm giấy phép. Giới thiệu Framework Laravel Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập trình viên sử dụng thay vì phải tự thiết kế. Với Framework, lập trình viên chỉ cần tìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình.3: Mô hình MVC trong Laravel 1. Tính năng nổi bật của Laravel Một số tính năng nổi bật của Laravel làm cho Framework này khác biệt so với các Web Framework khác như: - Tính mô đun: Tính mô đun là khả năng một thành phần ứng dụng web có thể tách rời và kết hợp lại, tất cả đều hoạt động cùng nhau để làm cho ứng dụng web hoạt động.
Sử dụng cấu trúc mô đun có thể thiết kế và phát triển ứng dụng doanh nghiệp quy mô lớn dễ dàng. Laravel cung cấp các hướng dẫn rất đơn giản để tạo mô đun trong Laravel. - Tính năng xác thực: Xác thực là một phần không thể thiếu của bất kỳ website hiện đại. Các xác thực viết trong những Framework có thể mất nhiều thời gian.
Nhưng với Laravel thì chỉ cần chạy một lệnh dơn giản là đã có thể tạo một hệ thống xác thực đầy đủ. 13 - Tính năng định tuyến: Định tuyến (routing) trong Laravel rất dễ hiểu, có thể sử dụng để tạo ứng dụng tĩnh. Có thể nhóm các routes, áp dụng các bộ lọc cho chúng và liên kết mô hình dữ liệu với chúng. Các routes có thể sử dụng để tọa các URL thêm thiện với công cụ tìm kiếm.
- Bộ nhớ đệm: Bộ nhớ đệm(caching) là một kỹ thuật để lưu trữ dữ liệu trong một vị trí lưu trữ tạm thời có thể lấy ra nhanh chóng khi cần, chủ yếu sử dụng để làm tăng hiệu suất của web. Laravel gần như lưu tất cả các dữ liệu từ View đến routes, giúp Laravel giảm thời gian xử lý và tăng hiệu suất rất nhiều. - Tính năng bảo mật tốt: Laravel cung cấp cách tạo các ứng dụng web an toàn. Lưu trữ tất cả mật khẩu dưới dạng hash, thay vì mật khẩu text đơn giản.
Laravel cung cấp bảo mật để chống lại các cuộc tấn công truy vấn cơ sở dữ liệu. An toàn khi xử lý với dữ liệu mà người dùng cung cấp. 14 CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Hệ thống phân quyền chức năng với 2 nhóm người: người quản trị và khách hàng. Có các chức năng đăng ký, xem sản phẩm, xem chi tiết các sản phẩm, đánh giá sản phẩm đã mua, quản lý đơn hàng và thông tin cá nhân… với khách hàng.
Đặc quyền quản lý các chức năng: quản lý thành viên, danh mục, sản phẩm, bài viết, menu, đơn đặt hàng,… với các người quản trị viên của hệ thống. Giao diện hệ thống thân thiện, hài hòa với người dùng. Giao diện dễ sử dụng với quản trị viên, dễ bảo trì. Thiết kế hệ thống 2.
UseCase Tổng quát của hệ thống Hình ảnh 2.1: UseCase Tổng quát 15 2. UseCase hệ thống Hình ảnh 2.2: UseCase hệ thống Đăng ký: - Tác nhân: Khách hàng. - Mô tả tổng quát: Khách hàng truy cập website có thể đăng ký thành viên, xem các dịch vụ và chi tiết dịch vụ, tìm kiếm các dịch dịch vụ mong muốn hỗ trợ. - Điều kiện đầu vào: Khi khách hàng truy cập với nhu cầu đặt dịch vụ.
Dòng sự kiện chính: Khách hàng truy cập vào trang web của cửa hàng: hệ thống hiển thị danh sách các dịch vụ. Khi khách hàng nhấn chọn một dịch vụ: hệ thống hiển thị danh sách chi tiết của dịch vụ. Khách hàng nhập từ khóa tìm kiếm và chọn tìm kiếm: hệ thống lấy dữ liệu, và hiển thị các dịch vụ theo từ khóa nhập vào. Khách hàng chọn đăng ký: Nhập các thông tin về tài khoản và mật khẩu.
Nếu đúng sẽ lưu thông tin khách hàng, nếu sai sẽ thực hiện dòng sự kiện rẽ nhánh A1. 16 Dòng sự kiện rẽ nhánh A1: Hệ thống thông báo việc nhập dữ liệu không hợp lệ. Nhập lại thông tin. Quay lại trang đăng ký.
Điều kiện đầu ra: Lưu tài khoản khách hàng đã đăng ký. Đăng nhập: Tác nhân: Người quản lý và khách hàng. Mô tả tổng quát: Người quản lý và khách hàng đăng nhập vào hệ thống. Điều kiện đầu vào: UseCase sử dụng khi người dùng muốn đăng nhập vào hệ thống.
Dòng sự kiện chính: - Hệ thống yêu cầu nhập tài khoản và mật khẩu. - Người dùng nhập tài khoản và mật khẩu. - Hệ thống kiểm tra tên và mật khẩu vừa nhập: Nếu đúng sẽ kiểm tra quyền, và hiển thị quyền tương ứng của tài khoản. Nếu sai thực hiện luồng sự kiện phụ A1.
Dòng sự kiện phụ A1: - Hệ thống sẽ thông báo việc nhập dữ liệu không hợp lệ. - Người dùng nhập lại tài khoản và mật khẩu. - Quay lại bước 3 của luồng sự kiện chính, hoặc hủy bỏ việc đăng nhập, khi đó ca sử dụng kết thúc. Đăng xuất: - Tác nhân: Người quản lý và khách hàng.