Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 37

TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN HỌC


“LẬP TRÌNH MÃ NGUỒN MỞ”

Đề tài: Tìm hiểu Framework Phalcon


Xây dựng ứng dụng khóa học Online

Giáo viên: Đỗ Văn Tuyên

Sinh viên: Trần Công Duy - 2112111021

Bùi Anh Minh Quân

Đoàn Quốc Anh

Lớp: CT2501

Hải Phòng, 2024


Mục lục
LỜI MỞ ĐẦU...............................................................................................................................................1
CHƯƠNG I: PHP PHALCON FRAMEWORK.......................................................................................2
1. Giới thiệu...............................................................................................................................................2
1.1. Tổng quan.......................................................................................................................................2
1.2. So sánh............................................................................................................................................2
1.3. Những điểm nổi bật........................................................................................................................3
1.4. Những điểm hạn chế.......................................................................................................................3
1.5 Cài đặt..............................................................................................................................................4
2. Tìm hiểu.................................................................................................................................................5
2.1. Mô hình Model – View - Controller...............................................................................................5
2.2. Cấu trúc Phalcon.............................................................................................................................7
CHƯƠNG II: CHƯƠNG TRÌNH QUẢN LÝ KHÁO HỌC ONLINE.................................................10
1. Phát biểu bài toán.................................................................................................................................10
1.1. Hoạt động nghiệp vụ.....................................................................................................................10
1.2. Các nhóm chức năng của hệ thống...............................................................................................10
1.3. Các nhóm chức năng của hệ thống...............................................................................................10
2. Phân tích hệ thống................................................................................................................................11
2.1. Xác định UC của các tác nhân......................................................................................................11
2.1.1. Xác định UC của các tác nhân...................................................................................................11
2.1.2. Đặc tả UC...................................................................................................................................11
3. Biểu đồ UC chi tiết..............................................................................................................................17
4. Biểu đồ hoạt động................................................................................................................................20
5. Lược đồ liên kết...................................................................................................................................28
CHƯƠNG III: KẾT LUẬN......................................................................................................................30
TÀI LIỆU THAM KHẢO.........................................................................................................................31
LỜI MỞ ĐẦU
Đề tài của bài tập lớn này là ‘Tìm hiểu Framework PHP Phalcon’ và ‘Xây dựng ứng dụng quản
lý khóa học Online’. Trong đó, chúng em sẽ tìm hiểu về cách cái đặt và cấu trúc của Phalcon.
Chúng em sẽ sử dụng thư viện của framework Codeigniter, một framework PHP phổ biến và dễ
học, để viết mã nguồn cho ứng dụng.
Qua đề tài này, chúng em sẽ hiểu rõ hơn về framework Phalcon và cách xây dựng một ứng dụng
quản lý. Đây chắc chắn sẽ là một trải nghiệm thú vị và bổ ích cho tất cả mọi thành viên trong
nhóm.

1
CHƯƠNG I: PHP PHALCON FRAMEWORK
1. Giới thiệu
1.1. Tổng quan
Phalcon là một nền tảng ứng dụng web nguồn mở được viết bằng ngôn ngữ PHP dựa trên mô
hình Model-View-Controller (MVC). Phiên bản đầu tiên được phát hành vào ngày 21.03.2013,
với phiên bản hiện tại: 5.6.2 (phát hành vào ngày 14.03.2024). Được lập trình bởi Andres
Gutierrez và một nhóm nhà phát triển khác. Phalcon được viết chủ yếu bằng ngôn ngữ C và được
tối ưu hóa để mang lại hiệu suất cao cho các ứng dụng Web tầm trung.

1.2. So sánh

Yii Laravel Phalcon

Yii hỗ trợ những dự án


Phalcon có thể được sử
lớn yêu cầu forums, Laravel is thường được sử
Loại dự án dụng cho đa dạng các
portals, CMS, RESTful dụng trong lập trình Web.
loại dự án
web services, v.v..

Yii hỗ trợ các hệ quản Phalcon hỗ trợ các hệ


Hệ quản trị Laravel hỗ trợ các hệ quản
trị CSDL quan hệ và quản trị CSDL quan hệ và
CSDL trị CSDL quan hệ.
phi quan hệ. phi quan hệ.

Laravel được viết bằng


Yii framework được Phalcon được viết bằng
Ngôn ngữ PHP và tuân theo mô hình
viết chủ đạo bằng PHP. PHP và C
MVC

Yii thích hợp cho các Laravel đặc biệt phù hợp Phalcon phù hợp cho các
Độ ổn định
dự án cỡ nhỏ và trung. cho các dự án lớn. dự án tầm trung.

2
Cao nhưng thấp hơn so với
Hiệu năng Tương đối thấp Cao.
Phalcon

1.3. Những điểm nổi bật


Được thiết kế theo mô hình Model-View-Controller: Mô hình MVC giúp tách thành phần
hiển thị giao diện (presentation) và xử lý (business logic) của một phần mềm thành những thành
phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả
năng mở rộng của phần mềm. Phalcon vận dụng mô hình này trong thiết kế, giúp tách biệt các
tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ bảo trì.

Nhỏ gọn: Gói cài đặt chỉ 3.133MB (không bao gồm phần User Guide). So với các PHP
framework kh|c như Symfony (5.08MB) hay Zend Framework (5.66MB)…kích thước của
Phalcon giúp giảm thiểu đ|ng kể không gian lưu trữ.

Tốc độ nhanh: Phalcon là PHP framework có tốc độ nhanh nhất hiện nay. Nhờ được viết bằng
ngôn ngữ lập trình C, Phalcon giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ tải
trang.

Miễn phí: Phalcon được phát hành dưới giấy phép Apache/BSD mở rộng, cho phép người dùng
tự do thay đổi, phát triển và phân phối mã nguồn.

Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter thân thiện với các robot
tìm kiếm.

Hệ thống thư viện phong phú: Phalcon cung cấp cho người dùng các thư viện phục vụ cho
những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi
email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năng năng cao như XML,
mã hóa, bảo mật…

Bảo mật hệ thống: Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL Injection của
Phalcon giúp giảm thiểu các nguy cơ bảo mật cho hệ thống.

1.4. Những điểm hạn chế


Chưa hỗ trợ một số module thông dụng: So sánh với framework khác, Phalcon không có các
module thực thi một số tác vụ thường gặp trong quá trình xây dựng ứng dụng web như Chứng
thực người dùng (User Authorization), Trình phân tích RSS (RSS Parser) hay Trình xử lý PDF…

Khó khăn trong việc cài đặt: So sánh với framework khác, Phalcon ngày nay không được sử
dụng và cũng chỉ còn lại một cộng đồng nhỏ dẫn đến không có nhiều tài liệu hỗ trợ người dùng.
Các phiên bản Phalcon DevTools trong thời gian gần đây cũng liên tục không ổn định trong quá

3
trình sử dụng, vậy nên sẽ có thể yêu cầu người dùng phải sử dụng những phiên bản PHP thấp
hơn.

Khó tiếp cận: Vì Phalcon được lập trình bằng chủ yếu Zephir và C, vậy nên người dùng sẽ phải
yêu cầu học thêm loại ngôn ngữ khác để có thể làm quen và sử dụng.

1.5 Cài đặt


Yêu cầu hệ thống: Phalcon có thể hoạt động trên nhiều hệ điều hành và server, yêu cầu có yêu
cầu tối thiểu cài đặt PHP phiên bản 5.x hoặc cao hơn; hệ quản trị cơ sở dữ liệu: MySQL,
MySQLi, XAMPP, WAMPP.

Hướng dẫn cài đặt:

1. Kiểm tra phiên bản PHP đang sử dụng.


2. Truy cập trang https://github.com/phalcon/cphalcon/releases và tìm phiên bản phalcon-
php phù hợp hỗ trợ phiên bản PHP đang sử dụng
3. Truy cập trang https://pecl.php.net/package/psr và tìm phiên bản giao diện PSR phù hợp
hỗ trợ phiên bản PHP đang sử dụng
4. Sau khi giải nén hai tập tin thành công, copy 2 file ‘php_phalcon.dll’ và
‘psr.dll’ vào trong tập tin “php/ext” của hệ quản trị dữ liệu đang sử dụng.
5. Tìm và chỉnh sửa tập tin “php/php.ini”, tìm theo “extension” và thêm vào
“phalcon” và “psr”. Save tập tin và khởi động hệ quản trị cơ sở dữ liệu.
6. Truy cập trang https://github.com/phalcon/phalcon-devtools để tải phiên bản Phalcon
Devtools phù hợp.

7. Sau khi giải nén thành công, chuyển toàn vào trong tập tin chính đang chứa hệ quản trị
dữ liệu. Thêm vào biến môi trường của hệ thống bằng địa chỉ của tập tin DevTools.

Hướng dẫn kiểm tra cài đặt:

1. Tạo 1 tập tin “index.php” trong “php/htdocs”, nhập theo lệnh:


<?php
phpinfo();
phpinfo(INFO_MODULES);
?>

2. Chạy tập tin trên localhost, tìm theo tên 2 extension “phalcon” và “psr”
3. Mở Command Prompt, chạy lệnh “phalcon”. Màn hình sẽ hiển thị phiên bản
Phalcon và DevTools vừa cài.
4. Chuyển đường dẫn vào “php/htdocs”, nhập lệnh để tạo 1 chương trình Phalcon:

4
phalcon create-project demo1

5. Chạy chương trình “demo1” trên localhost. Nếu thành công, ta sẽ được một màn
hình xin chào của Phalcon như ảnh dưới.

2. Tìm hiểu
2.1. Mô hình Model – View - Controller
Model-View-Control (MVC) là một kiến trúc phần mềm, hiện đang được xem là một mẫu thiết
kế trong công nghệ phần mềm. Mô hình MVC tách biệt phần xử lý dữ liệu ra khỏi phần giao
diện, cho phép phát triển, kiểm tra và bảo trì các thành phần một cách độc lập.

5
Hình 1: Minh họa mô hình MVC
Theo đó:

- Model thể hiện các cấu trúc dữ liệu. Các lớp thuộc thành phần Model thường thực hiện
các tác vụ như truy vấn, thêm, xóa, cập nhật dữ liệu. Khi dữ liệu trong Model thay đổi,
thành phần View sẽ được cập nhật lại.
- View là thành phần thể hiện dữ liệu trong Model thành các giao diện tương t|c với người
sử dụng. Một Model có thể có nhiều View tùy thuộc vào các mục đích khác nhau.
- Controller đóng vai trò trung gian giữa Model và View. Thông tin người dùng từ View
được gửi cho Controller xử lý, sau đó Controller tương t|c với Model để lấy dữ liệu được
yêu cầu, sau cùng Controller trả dữ liệu này về cho View.

6
Hình 2: Luồng hoạt động của MVC

Mô hình MVC thường được sử dụng trong các ứng dụng web, vì thành phần View (mã
HTML/XHTML) được sinh ra từ các ngôn ngữ lập trình web. Thành phần Controller sẽ nhận
các dữ liệu GET/POST, xử lý những dữ liệu này, sau đó chuyển sang Model xử lý.
Model sẽ trả dữ liệu về phía Controller, sau đó Controller sinh mã HTML/XHTML để thể hiện
trên View.

7
2.2. Cấu trúc Phalcon

Hình 3: Cấu trúc của Phalcon

Thư mục source files bao gồm phần lõi của Phalcon. Chúng bao gồm các thư viện xây dựng sẵn,
các tập tin ngôn ngữ, ghi chú về hệ thống. Trong số đó, các thư mục sau khá quan trọng:

App
Thư mục này bao gồm tất cả các tập tin và thư mục “scripit” quan trọng. Ứng dụng web hoàn
chỉnh được thiết kế dựa trên thư mục “app”. Các tập tin “config” giúp hỗ trợ cấu hình cần thiết
để chạy ứng dụng một cách mượt mà. Dưới đây là danh sách các thư mục trong “app” của một
chương trình web Phalcon cụ thể.

8
‘App’ bao gồm các thư mục: config, controllers, library, magrations, models và views. Trong đó:

• Thư mục config: Chứa các tập tin config cho ứng dụng, bao gồm các tùy chỉnh như cấu
hình kết nối CSDL, cài đặt định tuyến, v.v….

Tất cả cấu hình cần thiết cho ứng dụng web trong Phalcon đều được bao gồm trong thư mục này.
Gồm các thông tin liên quan đến CSDL, các thư viện thuộc bên thứ 3 cần được them vào nếu có,
và các dịch vụ cần được bao gồm.

• Thư mục controllers: Chứa các tập tin controller, xử lý các yêu cầu từ người dùng.

9
• Thư mục library: Chứa các tập tin library hoặc các thành phần tái sử dụng khác mà ứng
dụng có thể dùng.

• Thư mục migrations: Chứa các tập tin liên quan đến quá trình di chuyển CSDL như tạo
bảng, them cột và chỉnh sửa cấu trúc.
• Thư mục models: Chứa các tập tin model,đại diện cho dữ liệu của ứng dụng.
• Thư mục views: Chứa các tập tin view, đại diện cho giao diện người dùng của ứng dụng.
• Thư mục cache: Bao gồm dữ liệu liên quan đến bộ đệm, giúp cải thiện hiệu suất.
• Thư mục public: Chứa tất cả các thư mục để quản lý tài nguyên, bao gồm: CSS,
JavaScript, các tệp cần tải lên và một số dữ liệu ngoài.

• Tệp tin .htaccess: Các máy chủ web chạy trên máy chủ Apache sử dụng tệp .htaccess như một
tệp cấu hình. Khi đặt vào trong một thư mục, tất cả cấu hình cần thiết sẽ được tải ngay
khi máy chỉ được khởi động.
VD: Có thể cấu hình một trong web sao cho chỉ cần có sẵn các địa chỉ IP cụ thể đã được gán
vào trong tệp .htaccess.

10
CHƯƠNG II: CHƯƠNG TRÌNH QUẢN LÝ KHÁO
HỌC ONLINE
1. Phát biểu bài toán
1.1. Hoạt động nghiệp vụ
Hệ thống quản lý khóa học Online là một hệ thống cung cấp cho người học, giáo viên, nhà quản
lý những chức năng cần thiết để mua bán, quản lý hoạt động của khóa học. Đối với người sử
dụng, hệ thống cho phép tìm kiếm, xem thông tin và mua các khóa học trên website. Sau khi lựa
chọn xong thì chuyển qua thanh toán, người dùng sẽ tiến hành xác nhận thanh toán và hệ thống
sẽ cung cấp khóa học mà người dùng đã chọn để mua, kết thúc giao dịch.

1.2. Các nhóm chức năng của hệ thống


- Nhóm chức năng đăng ký và đăng nhập của thành viên.
- Nhóm chức năng xem thông tin: xem thông tin giỏ hàng, xem thông tin kháo học, xem
thông tin đơn hang, xem thông tin giáo viên, xem thông tin cá nhân.
- Nhóm chức năng quản lý thông tin: quản lý thông tin cá nhân, quản lý danh sách người
dùng, quản lý danh mục khóa học.
- Nhóm chức năng nhập, xuất và cập nhật thông tin lên website.
- Nhóm chức năng mua, tiếp nhận và xử lý đơn giao dịch.

1.3. Các nhóm chức năng của hệ thống


- Khách thăm: là người ghé qua website, xem thông tin sản phẩm.
- Thành viên: là những khách thăm đã đăng kí thành viên của hệ thống, mua và bình luận
trên các khóa học.
- Giáo viên: là những khách thăm đã đăng kí thành viên của hệ thống, có khả năng để cung
cấp các khóa học đến cho người dùng.
- Nhân viên hỗ trợ khách hàng: là những nhân viên hoạt động quản lý website, sẵn sàng
tiếp nhận và giải đáp những câu hỏi, báo cáo của người dùng và giáo viên.
- Người quản trị: điều hành, quản lý và theo dõi mọi hoạt động của hệ thống: thêm sửa xóa
thành viên và khóa học.
- Hệ thống ngân hang: xác nhận thông tin tài khoản của người dùng, làm trung gian chuyển
tiền của người người dùng sang hệ thống, và hệ thộng sang giáo viên.

11
2. Phân tích hệ thống
2.1. Xác định UC của các tác nhân
2.1.1. Xác định UC của các tác nhân
1.1. Tác nhân khách thăm

- Đăng kí
- Xem sản phẩm

1.2. Tác nhân khách hàng

- Đăng nhập, đăng xuất


- Tìm kiếm, xem, bình luận khóa học
- Mua khóa học
- Xem, sửa thông tin cá nhân
- Xem, sửa thông tin giỏ hàng

1.3. Tác nhân giáo viên

- Đăng nhập, đăng xuất


- Tạo lập khóa học
- Xem, sửa thông tin cá nhân
- Xem, sửa thông tin khóa học

1.4. Nhân viên hỗ trợ khách hàng

- Tiếp nhận câu hỏi, khiếu nại của người dùng, giáo viên
- Đưa ra câu trả lời cho người dùng, giáo viên
- Chuyển lại báo cáo lên cho người quản trị xem xét

1.5. Người quản trị

- Thêm, xửa, sóa tài khoản người dùng, giáo viên, nhân viên
- Kiểm tra thông tin các khóa học

2.1.2. Đặc tả UC
2.1. Đăng kí thành viên
a. Tác nhân: Khách xem
b. Mô tả: Cho phép khách xem đăng ký làm thành viên của hệ thống
c. Tiền điều kiện: khách hàng ghé thăm hệ thống
d. Luồng sự kiện chính:

12
-Khách xem chọn mục đăng ký thành viên
-Form đăng ký thành viên hiển thị
-Khách xem đăng nhập thông tin cá nhân vào form đăng ký
-Nhân nút đăng ký
-Hệ thống báo kết quả quá trình nhập thông tin cá nhân. Nếu thông tin nhập vào không
chính xác thì yêu cầu người dùng nhập lại. Nếu nhập chỉnh xác thì chuyển tiếp vào
giao diện người dùng
- Hệ thống cập nhật thông tin khách xem vào danh sách thành viên
- UC kết thúc
e. Luồng sự kiện rẽ nhánh:
f. Hậu điều kiện: Khách hàng trở thành thành viên của hệ thống
2.2. Đăng nhập hệ thống
a. Tác nhân: Thành viên
b. Mô tả: Cho phép khách xem đăng nhập hệ thống
c. Tiền điều kiện: khách hàng ghé thăm hệ thống
d. Luồng sự kiện chính:
- Thành viên chọn chức năng đăng nhập
- Form đăng nhập hiển thị
- Nhập tên và mật khẩu vào form đăng nhập
- Hệ thống kiểm tra tên và mật khẩu của thành viên
- Nếu việc đăng nhập thành công thì chuyển tiếp vào giao diện người dùng.
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Thành viên đăng nhập không thành công
- Hệ thống thông báo quá trình đăng nhập không thành công
- Chọn: Đăng ký hoặc Đăng nhập lại
- Hệ thống yêu cầu thành viên nhập lại tên và mật khẩu
- Nếu khách đồng ý thì quay lại về bước 2 của luồng sự kiện chính, nếu không thì UC
kết thúc
f. Hậu điều kiện: Thành viên đã đăng nhập thành công và có thể sử dụng các chức năng mà
hệ thống cung cấp
2.3. Tìm kiếm khóa học
a. Tác nhân: Khách xem, Thành viên
b. Mô tả: cho phép tìm kiếm khóa học
c. Tiền điều kiện: khách hang, thành viên ghé thăm hệ thống
d. Luồng sự kiện chính:
- Người sử dụng kích vào mục tìm kiếm khóa học
- Hệ thống hiển thị form tìm kiếm: tìm kiếm theo tên, danh mục, giá tiền, đánh giá
13
-Người sử dụng nhập thông tin cần thiết vào form tìm kiếm
-Nhấn nút tìm kiếm
-Hệ thống báo kết quả tìm kiếm
-UC kết thúc
e. Luồng sự kiện rẽ nhánh: Hệ thống không tìm thấy kết quả
- Hệ thống thông báo không tìm thấy kết quả
f. Hậu điều kiện: Người sử dụng được chuyển đến trang tìm kiếm kèm kết quả khóa học
muốn tìm
2.4. Xem thông tin khóa học
a. Tác nhân: Khách xem, Thành viên, Người quản trị
b. Mô tả: Cho phép xem thông tin khóa học
c. Tiền điều kiện: Người sử dụng lựa chọn xem một khóa
d. Luồng sự kiện chính:
- Người quản trị, người sử dụng chọn khóa học cần xem
- Form xem thông tin khóa học xuất hiện, hệ thống hiển thị thông tin về khóa học đã
chọn
- Người quản trị, người sử dụng xem thông tin chi tiết về khóa học được hiển thị
- UC kết thúc
e. Luồng sự kiện rẽ nhánh:
f. Hậu điều kiện: Người sử dụng xem thông tin của khóa học
2.5. Xem và sửa thông tin cá nhân
a. Tác nhân: Thành viên của hệ thống
b. Mô tả: Cho phép thành viên xem và thay đổi các thông tin đã đăng ký
c. Tiền điều kiện: Thành viên phải đăng nhập vào hệ thống
d. Luồng sự kiện chính:
- Thành viên chọn chức năng xem thông tin cá nhân
- Thành viên được chuyển đến trang hiển thị thông tin cá nhân
- Thành viên chọn chức năng sửa thông tin cá nhân
- Hệ thống hiện thị form sửa thông tin của thành viên hiện tại
- Thành viên nhập vào các thông tin mới
- Nhấn nút lưu thông tin
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Thông tin của thành viên khi chỉnh sửa không được lưu lại
- Hệ thống thông báo thông tin nhập vào không hợp lệ
- Thành viên nhập lại thông tin
f. Hậu điều kiện: Hệ thống lưu lại thông tin cá nhân thành viên mới sửa

14
2.6. Thêm vào giỏ hàng
a. Tác nhân: Khách hàng
b. Mô tả: Cho phép khách hàng đưa khóa học vào danh sách giỏ hàng
c. Tiền điều kiện: Khóa học đã được chọn
d. Luồng sự kiện chính:
- Khách hàng chọn chức năng thêm vào giỏ hàng để đưa sản phẩm đã chọn vào lưu
trong giỏ hàng
- Hệ thống hiển thị thông tin khóa học được đưa vào giỏ hàng
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Khách hang chưa chọn sản phẩm để đưa vào giỏ hang
- Hệ thống thông báo khóa học chưa được chọn
f. Hậu điều kiện: Khóa học được lưu trữ lại ào giỏ hang của khách hàng
2.7. Thanh toán
a. Tác nhân: Khách hàng
b. Mô tả: Cho phép khách hàng tạo đơn hàng để tiến hành thanh toán giỏ hàng
c. Tiền điều kiện: Khách hàng đã chọn sản phẩm hoặc đưa sản phẩm vào danh sách giỏ
hàng
d. Luồng sự kiện chính:
- Khách hang nhấn thanh toán để tạo đơn hàng
- Hệ thống hiện thị form thanh toán, kèm thông thông tin kháo học và một số thông tin
mặc định.
- Khách hàng nhập tiếp các thông tin thanh toán: Phương thức thanh toán, Số tài khoản
- Khách hàng nhấn xác nhận thanh toán
- Hệ thống kiểm tra số tài khoản và phương thức thanh toán của khách hang. Nếu hợp
lệ, hệ thống thông báo giao dịch thành công và khóa học được lưu vào danh sách lưu
trữ của khách hang
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Số tài khoản hay phương thức thanh toán của khách hang không
hợp lệ
- Hệ thống thông báo tài khoản hay phương thức thanh toán của khách hang không hợp
lệ
- Khách hàng nhập lại thông tin nếu muốn tiếp tục thanh toán
- Nếu khách hàng không muốn tiếp tục thanh toán và nhấn nút hủy đơn hang, hệ thống
sẽ thông báo hủy bỏ giao dịch
- Khách hàng xác nhận hủy bỏ giao dịch
- UC kết thúc
f. Hậu điều kiện: Giao dịch được hoàn thành

15
2.8. Kiểm tra lịch sử thanh toán
a. Tác nhân: Khách hàng
b. Mô tả: Cho phép khách hàng kiểm tra lịch sử thanh toán
c. Tiền điều kiện: Giao dịch thanh toán đã được thực thi
d. Luồng sự kiện chính:
- Khách hàng nhấn vào thanh sidebar và chọn lịch sử thanh toán
- Hệ thống dẫn khách hàng tới trang hiển thị lịch sử thanh toán
- UC kết thúc
e. Luồng sự kiện rẽ nhánh:
f. Hậu điều kiện: Khách hàng kiểm tra được lịch sử giao dịch
2.9. Ghim khóa học
a. Tác nhân: Khách hàng
b. Mô tả: Cho phép khách hàng ghim lại khóa học mình muốn chon
c. Tiền điều kiện: Khách hàng đã chọn một khóa học
d. Luồng sự kiện chính:
- Khách hàng nhấn ghim lại một khóa học muốn theo sau trong tương lai
- Hệ thống sẽ lưu lại khóa học đó vào danh mục Wishlist
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Khách hàng chưa chọn khóa học
- Hệ thống thống thông báo khóa học chưa được chọn
f. Hậu điều kiện: Khóa học được lưu lại vào mục Wishlist
2.10. Tạo khóa học
a. Tác nhân: Giáo viên
b. Mô tả: Cho phép người dùng tải khóa học lên Website
c. Tiền điều kiện: Người dùng đã chuẩn bị khóa học
d. Luồng sự kiện chính:
- Giáo viên yêu cầu tạo một khóa học
- Hệ thống sẽ chuyển đến trang tạo khóa học, yêu cầu giáo ciên phải điền đầy đủ các
thông tin cần thiết: Tên khóa học, Danh mục, Giá tiền, Đường dẫn.
- Sau khi điền xong, giáo viên nhấn nút hoàn thành
- Hệ thống ghi nhân khóa học và lưu lại trên hệ thống
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Giáo viên chưa ghi đầy đủ các thông tin cần thiết
- Khi nhấn nút hoàn thành, hệ thống sẽ hiện ra thông báo thông tin chưa được ghi đầy
đủ, yêu cầu giáo viên phải quay lại và hoàn thành
- Nếu không muốn hoàn thành, giáo viên có thể rời đi và hệ thống sẽ hủy khóa học
đang được thực hiện
16
-UC kết thúc
f. Hậu điều kiện: Khóa học được tạo và lưu lại trên hệ thống
2.11. Chỉnh sửa khóa học
a. Tác nhân: Giáo viên
b. Mô tả: Cho phép giáo viên chỉnh sửa khóa học
c. Tiền điều kiện: Người dùng đã tạo một khóa học
d. Luồng sự kiện chính:
- Giáo viên yêu chỉnh sửa thông tin một khóa học
- Hệ thống sẽ chuyển đến trang chỉnh sửa khóa học, yêu cầu giáo viên phải điền đầy đủ
các thông tin cần thiết: Tên khóa học, Danh mục, Giá tiền, Đường dẫn.
- Sau khi điền xong, giáo viên nhấn nút hoàn thành
- Hệ thống ghi nhân chỉnh sửa khóa học và lưu lại trên hệ thống
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Giáo viên chưa ghi đầy đủ các thông tin cần thiết
- Khi nhấn nút hoàn thành, hệ thống sẽ hiện ra thông báo thông tin chưa được ghi đầy
đủ, yêu cầu giáo viên phải quay lại và hoàn thành
- Nếu không muốn hoàn thành, giáo viên có thể rời đi và hệ thống sẽ hủy khóa học
đang được thực hiện
- UC kết thúc
f. Hậu điều kiện: Thông tin mới của khóa học được cập nhật lại trên hệ thống

2.12. Tạo đường dẫn thanh toán


a. Tác nhân: Giáo viên
b. Mô tả: Cho phép giáo viên tạo đường dẫn thanh toán tới tài khoản của mình
c. Tiền điều kiện: Người dùng đã tạo ra một khóa học
d. Luồng sự kiện chính:
- Hệ thống sẽ chuyển đến trang liên kết ttaif khoản, yêu cầu giáo viên phải lựa chọn
phương thức liên kết và mã số của kẻ
- Sau khi điền xong, giáo viên nhấn nút cập nhật
- Hệ thống ghi nhận và lưu lại thông tin liên kết
- UC kết thúc
e. Luồng sự kiện rẽ nhánh: Thông tin tài khoản không hợp lệ
- Khi nhấn nút cập nhật, hệ thống sẽ kiểm tra và hiện ra thông tin liên kết thanh toán
chưa hợp lệ, yêu cầu giáo viên phải ghi lại thông tin
g. Hậu điều kiện: Đường dẫn tới tài khoản của giáo viên được hoàn thành

17
3. Biểu đồ UC chi tiết
a, Biểu đồ Usecase Đăng ký/Đăng nhập

18
b, Biểu đồ Usecase tìm kiếm khóa học

c, Biểu đồ Usecase tạo khóa học

19
d, Biểu đồ Usecase mua khóa học

20
4. Biểu đồ hoạt động
a, Đăng ký thành viên

21
b, Đăng nhập vào hệ thống

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

23
d, Tìm kiếm khóa học

24
e, Xem khóa học

25
f, Xem giỏ hàng

26
g, Thanh toán

27
h, Tạo khóa học

28
5. Lược đồ liên kết
a, Người dùng

29
b, Khóa học

6. Cài đặt chương trình


6.1. Giao diện trang chủ

30
6.2. Giao diện người dùng

31
6.3. Giao diện giáo viên

6.4. Giao diện Admin

32
6.5. Giao diện tìm kiếm khóa học

6.6. Giao diện giỏ hàng

33
CHƯƠNG III: KẾT LUẬN
Qua quá trình thực hiện bài tập lớn với chủ đề ‘Tìm hiểu về Phalcon framework” và “Xây
dựng chương trình quản lý các khóa học Online” đã giúp chúng em hiểu them về các framework
PHP và cải thiện khả năng lập trình web.
Framework PHP Phalcon đã cho thấy sự mạnh mẽ và linh hoạt trong việc cấu trục lên
một chương trình, trong khi ngôn ngữ C với cú pháp đơn giản, dễ hiểu lại phù hợp cho việc lập
trình và phân tích dữ liệu. Sự kết hợp giữa ngôn ngữ PHP và C đã cho tạo nên tốc độ xử lí yêu
cầu cao của Phalcon so với các mô hình framework khác.
Mặc dù hệ thống đã hoàn thành, nhưng nó vẫn còn rất nhiều mặt hạn chế và vấn đề tồn
tại. Có thể kể đến như: mô tả các nghiệp vụ chưa đầy đủ, thiếu chính xác, CSDL sơ xài và chưa
được chuẩn hóa, giao diện web vẫn chưa được hoàn thiện và còn nhiều lỗi xảy ra.
Tóm lại, bài tập lớn này không chỉ giúp chúng em nắm bắt được kiến thức về các
framework và lập trình web, mà còn mở rộng tầm nhìn về những ứng dụng thực tế của công nghệ
trong cuộc sống. Hy vọng rằng những kiến thức và kỹ năng mà chúng em đã học được từ bài tập
lớn này sẽ là nền tảng vững chắc cho những dự án tiếp theo.

34
TÀI LIỆU THAM KHẢO
[1] Link tác giả gốc phần mềm: https://www.campcodes.com/projects/php/online-learning-
management-system/
[2] Tài liệu Framework PHP Phalcon: https://docs.phalcon.io/5.6/introduction/
[3] Tài liệu thư viện Framework PHP Codeincogniter:
https://codeigniter.com/userguide3/general/creating_libraries.html
[4] Tài liệu mô hình MVC: https://developer.mozilla.org/en-US/docs/Glossary/MVC
[5] Github DevTools Framework PHP Phalcon: https://github.com/phalcon/phalcon-devtools

35

You might also like