Framework cung cấp chocác nhà lập trình những chức năng cơ bản nhất.Laravel là một Framework cĩ mã nguồn mở và hồn tồnmiễn phí, được xây dựng nhằm hỗ trợ phát triển các phầnmềm, ứng dụng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA: CÔNG NGHỆ THÔNG TIN
Hà Nội – Năm 2023
Trang 2MỤC LỤC
PHẦN 1 MỞ ĐẦU
PHẦN 2 KẾT QUẢ NGHIÊN CỨU
Chương 1 Tìm hiểu tổ chức FSF và giấy phép phát hành GPL
1.1.Giới thiệu tổ chức FSF
1.1.1 Giới thiệu
1.1.2 Lịch sử
1.2.Cấu trúc của tổ chức (con người, tài chính)
1.2.1 Nhân viên
1.2.2 Tài chính
1.3.Các hoạt động chính và định hướng phát triển của tổ chức
1.4.Giấy phép mà tổ chức đã cấp phép hay hỗ trợ 7 1.6 Các loại phần mềm đã xuất bản dựa trên giấy phép GPL
Chương 2 Ứng dụng web quản lý bán đồ điện tử Shopping Zone
2.1 Yêu cầu bài toán
2.2 Công cụ Laravel
2.2.1 Tổng quan về phần mềm nguồn mở chuyên về nhóm framwork
2.2.2 Đặc điểm của công cụ Laravel
2.2.2.1 Đặc điểm của Laravel
2.2.2.2 Lĩnh vực giải quyết bài toán
2.2.2.3 Laravel là sản phẩm của Phần Mềm Mã Nguồn Mở
2.2.3 Tiềm năng phát triển trong tương lai
Trang 3Chương 3 Thực hiện bài toán 3.1 Phân tích yêu cầu người dùng 3.2 Thực hiên bài toán 3.2.1 Phan Trọng Trường - Giỏ hàng – Edit Cart
3.2.2 Vũ Minh Tuấn – Sản phẩm – Add & EditProduct
3.2.3 Bùi Như Toán – Sửa thông tin tài khoản –Edit Acount
3.2.4 Phùng Xuân Trường – Đăng kí tài khoản –Register Acount 3.2.5 Nguyễn Văn Song – Giao diện – Add &Edit Banner
PHẦN 3 KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM
3.1 Nội dung đã thực hiện 3.2 Hướng phát triển
Trang 4PHẦN 1 MỞ ĐẦU
Framework là các đoạn code đã được viết sẵn, cấu thành
nên một bộ khung và các thư viện lập trình được đóng gói.Chúng cung cấp các tính năng có sẵn như mô hình, API vàcác yếu tố khác để tối giản cho việc phát triển các ứngdụng web phong phú, năng động Framework cung cấp chocác nhà lập trình những chức năng cơ bản nhất
Laravel là một Framework có mã nguồn mở và hoàn toàn
miễn phí, được xây dựng nhằm hỗ trợ phát triển các phầnmềm, ứng dụng, theo kiến trúc MVC Hiện nay, Laravelđang phổ biến và tốt nhất
dùng mua hàng một cách dễ dàng, thuận tiện và tiết kiệmchi phí Được hình thành dựa trên nhu cầu mua hàngonline của xã hội, mọi người đều có smartphone và có thểđặt hàng bất cứ lúc nào Website với 6 nội dung chính nhưsau: Trang chủ, tìm kiếm, danh mục sản phẩm, chi tiết sảnphẩm, đặt hàng và trang quản trị admin
Đề tài đã được thực hiện dựa trên kinh nghiệm và quá trìnhlàm việc của toàn bộ các thành viên trong nhóm với các
Trang 5mục tiêu chính: Tìm hiểu phần mềm mã nguồn mở và càiđặt thành công, làm chủ được phần mềm nguồn mở, xâydựng các tài liệu cho dự án một cách tường minh và đầy
đủ, kiểm soát được các vấn đề xảy ra, hoàn thiện sảnphẩm và kết thúc bài tập lớn thành công
Để hoàn thành đề tài nhóm chúng em đã vận dụng cáckiến thức được học trên trường như: Html, CSS kết hợp tìmhiểu và nghiên cứu trên internet để có thể sử dụng thêm
về ngôn ngữ PHP Bài tập được nghiên cứu và phát triểndựa trên Laravel Framework nó là dạng sử dụng sourcecode có sẵn để tiếp tục hoàn thiện website: phát triển giaodiện bên ngoài và các tính năng theo nhu cầu nhằm đápứng tốt yêu cầu khách hàng
Tên chủ đề nghiên cứu: Ứng dụng công cụ nguồn mởLaravel xây dựng ứng dụng web quản lý bán đồ điện tửShopping Zone
PHẦN 2 KẾT QUẢ NGHIÊN CỨU Chương 1 Tìm hiểu tổ chức FSF và giấy phép
phát hành GPL1.1 Giới thiệu tổ chức FSF.
Trang 6Loại Tổ chức phi lợi nhuận
Free Software Foundation
51 Franklin Street, Fifth Floor
Boston, MA 02110USA
Điện thoại: +
1-617-542-5942 (Phần mở rộng điển thoại cá nhân tại FSF)
Số fax: + 1-617-542-2652Email chung: info@fsf.org
1.1.2 Lịch sử
Tổ chức Phần mềm Tự do được thành lập vào năm
1985 với tư cách là một tổ chức phi lợi nhuận hỗ trợ pháttriển phần mềm miễn phí Nó tiếp tục chạy các dự án GNUhiện có như bán sách hướng dẫn và băng đĩa cũng nhưthuê các nhà phát triển miễn phí. kể từ đó đã tiếp tụcnhững hoạt động này Ngoài việc hỗ trợ phong trào phầnmềm tự do, FSF cũng duy trì một số giấy phép phần mềmmiễn phí
1.2 Cấu trúc của tổ chức (con người, tài chính).
1.2.1 Nhân viên
Trang 7 Zoë Kooyman - Giám đốc điều hành
doanh
cận
1.2.2 Tài chính
Tổ chức Phần mềm Tự do cĩ chính sách đầu tư cĩtrách nhiệm hỗ trợ sứ mệnh của chúng tơi Chúng tơikhơng mua cổ phiếu cổ phiếu của các cơng ty sản xuấtphần mềm độc quyền, cũng như khơng mua các quỹ cĩchứa cổ phiếu đĩ Chúng tơi tuân theo một cách tiếp cậnđầu tư thận trọng được thiết kế để duy trì dự trữ của chúngtơi thơng qua sự bất ổn kinh tế và đảm bảo tương lai lâudài của Quỹ
1.3 Các hoạt động chính và định hướng phát triển của tổ chức.
Các chiến dịch của FSF nhắm đến các cơ hội quantrọng để áp dụng và phát triển phần mềm miễn phí, traoquyền cho mọi người chống lại các mối đe dọa cụ thể đốivới quyền tự do của họ và đưa chúng ta đến gần hơn vớimột xã hội tự do
Trang 8Các chiến dịch, hoạt động quá khứ:
Giấy phép Công cộng GNU (GNU General Public
License, viết tắt GNU GPL hay GPL): là giấy phép phầnmềm tự do được sử dụng rộng rãi, đảm bảo cho người dùngcuối tự do chạy, nghiên cứu, sửa đổi và chia sẻ phần mềm
Các giấy phép GNU: các giấy phép sau đây được xuấtbản bởi Tổ chức Phần mềm Tự do:
Giấy phép Công cộng Gnu Lesser General PublicLicense (LGPL)
Trang 91.6 Các loại phần mềm đã xuất bản dựa trên giấy phép GPL.
Linux kernel GNU Compiler Collection
Joomla
Trang 10Chương 2 Ứng dụng web quản lý bán đồ điện
tử Shopping Zone
Bài toán: Ứng dụng công cụ nguồn mở Laravel xây dựngứng dụng web quản lý bán đồ điện tử Shopping Zone
Quy trình thực hiện:
2.1 Yêu cầu bài toán.
Các yêu cầu chức năng:
Trang 11Các yêu cầu phi chức năng:
- Hiệu năng hoạt động: Yêu cầu về thời gian, tàinguyên sử dụng, công suất tối đa
lòng người sử dụng như: Phù hợp với nhu cầu, dễdàng học cách sử dụng, giao diện người sử dụng, khảnăng truy cập, khai thác
phục hồi, thời gian giữa các lần xảy ra sự cố giánđoạn hoạt động của hệ thống
năng cho công cụ tìm kiếm, thống kê, xây dựng báocáo thống kê cho việc quản trị Admin như: (views,comment, money ), quản lí sản phẩm, quản lí user…
2.2 Công cụ Laravel
2.2.1 Tổng quan về phần mềm nguồn mở chuyên
về nhóm framwork
Framework là các đoạn code đã được viết sẵn, cấu
thành nên một bộ khung và các thư viện lập trình đượcđóng gói Chúng cung cấp các tính năng có sẵn như môhình, API và các yếu tố khác để tối giản cho việc phát triểncác ứng dụng web phong phú, năng động Framework cungcấp cho các nhà lập trình những chức năng cơ bản nhất
PHP framework là thư viện tập hợp các class PHP
giúp phát triển những ứng dụng web viết bằng ngôn ngữPHP trở nên trôi chảy hơn Nói cách khác, PHP frameworkgiúp thúc đẩy nhanh chóng quá trình phát triển ứng dụng
Trang 12bằng ngôn ngữ lập trình này Giúp tiết kiệm thời gian, tăng
sự ổn định cho ứng dụng và giảm thiểu số lần phải viết lạicode cho lập trình viên
Một số tính năng chính của framework:
Đơn giản hóa quá trình thiết kế và xây dựng giaodiện
Giảm, loại bỏ các nhiệm vụ lặp đi lặp lại
Tăng tính linh hoạt của ứng dụng thông qua sự trừutượng
Tái sử dụng lại mã code
Hỗ trợ và đơn giản hóa cách sử dụng các công nghệmới và phức tạp
Nó liên kết với nhau một loạt các đối tượng / thànhphần riêng biệt thành một hệ thống hữu ích hơn
Mọi người đều có thể dễ dàng kiểm tra và gỡ lỗi mã,ngay cả mã mà họ không tham gia vào dự án
kiểm thử phần mềm
Laravel là một Framework có mã nguồn mở và hoàntoàn miễn phí, được xây dựng nhằm hỗ trợ phát triển cácphần mềm, ứng dụng, theo kiến trúc MVC Hiện nay,Laravel đang phổ biến và tốt nhất
2.2.2 Đặc điểm của công cụ Laravel
2.2.2.1 Đặc điểm của Laravel
Laravel là gì ?
Trang 13Laravel là một PHP framework, có mã nguồn mở vàmiễn phí, được xây dựng nhằm hỗ trợ phát triển các phầnmềm, ứng dụng, theo kiến trúc MVC Được tạo rabởi Taylor Otwell với phiên bản đầu tiên được ra mắt vàotháng 6 năm 2011
Lịch sử
Nhằm khắc phục những hạn chế của CodeIgniter (mộtweb framework mã nguồn mở của ngôn ngữ PHP), đồngthời phát huy khả năng xuất sắc về design-pattern củamình, Taylor quyết định tạo ra một Framework mới Tiêuchí anh đặt ra là đơn giản, dễ hiểu, hỗ trợ developer thựchiện ý tưởng nhanh nhất bằng nhiều tính năng hỗ trợ
Tháng 6/2011, Taylor Otwell đã “trình làng” Lavarelnhư một giải pháp thay thế cho CodeIgniter Với giải phápnày, lập trình viên (developer) đã được hỗ trợ nhiều tínhnăng mới mẻ với thao tác vô cùng đơn giản Eloquent ORMmạnh mẽ, xác thực đơn giản, phân trang hiệu quả, …lànhững tính năng thu hút sự chú ý của đông đảo người dùngcủa phiên bản đầu tiên này
Những tính năng nổi bật của Laravel
Thao tác với cú pháp đẹp mắt và đơn giản vớiEloquent ORM
Restful API
với Artisan
Trang 14 Hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm cáccột trong bảng, tạo mối quan hệ giữa các bảng, với Migrations.
quên mật khẩu, … với Authentication
Một số dự án được triển khai bởi Laravel
Ví dụ: Facebook, Yahoo!, Wikipedia, WordPress,Tumblr, MailChimp, Flickr, Digg, iStockPhoto, Baidu, Canva
2.2.2.2 Lĩnh vực giải quyết bài toán
Laravel hỗ trợ giải quyết các bài toán trên nhiều lĩnhvực như: thương mại điện tử, tin tức, giáo dục, giải trí,…
2.2.2.3 Laravel là sản phẩm của Phần Mềm Mã Nguồn Mở
Giấy phép MIT
Laravel được phát hành theo giấy phép MIT, với
source code được lưu trữ tại Github
Giấy phép MIT là một loại giấy phép sử dụng cho cácphần mềm mã nguồn mở được phát triển dựa trên một loạigiấy phép có nguồn gốc tại Viện Công nghệMassachusetts Là một giấy phép cấp phép, nó có rất ít cáchạn chế sử dụng lại và do đó, có một khả năng tương thíchgiấy phép tuyệt vời Các rủi ro cấp phép của MIT trongphần mềm sở hữu độc quyền được cung cấp bởi tất cả cácbản sao của phần mềm được cấp phép bao gồm một bảnsao các điều khoản của Giấy phép MIT và các điểm chú ý
Trang 15về bản quyền Giấy phép MIT cũng tương thích với nhiềugiấy phép copyleft, ví dụ như GNU General Public License(GPL) Phần mềm được cấp phép MIT có thể được tích hợpvào phần mềm GPL, nhưng không phải là cách khác.Nộidung chính của giấy phép MIT: MIT là một giấy phép dạng
“premissive”, nghĩa là nó cho phép tái sử dụng các phầnmềm độc quyền nhưng với điều kiện giấy phép MIT đãđược phân phối kèm phần mềm đó Giấy phép MIT cũngtương thích GPL, nghĩa là GPL cho phép tổng hợp và táiphân phối các phần mềm sử dụng giấy phép MIT
Các điều khoản của giấy phép MIT được gói gọn rằng:
"Quyền hạn sử dụng được trao cho người sử dụng vớikhông hạn chế nào, kể cả quyền sử dụng, sao chép, chỉnhsửa, kết hợp, xuất bản, phân phối, hay phân phối dưới cácdạng phiên bản sửa đổi khác nhau, và bán bản sao chépcủa phần mềm nhưng với điều kiện như: những 昀椀le ghi vềtác giả, người có công (như 昀椀le NOTICE), 昀椀le ghi về quyềnhạn sử dụng phải được bao gồm trong các phiên bản sửdụng giấy phép này"
2.2.3 Tiềm năng phát triển trong tương lai
Hiện nay Laravel chứa rất nhiều những ưu điểm khiếncác nhà lập trình viên không thể bỏ qua như:
Trang 16 Tính bảo mật cao
Laravel sở hữu đầy đủ các tính năng hữu có thể đemlại cho các nhà phát triển PHP Tuy nhiên, điểm cộng lớnkhiến laravel được ưa chuộng là vì tính đơn giản của nó.Laravel là một framework dễ sử dụng cùng với cú phápbiểu đạt đơn giản
Không chỉ vậy mô hình kiến trúc MVC sẽ tạo điều kiệnthuận lợi cho việc quản lý các dự án quy mô lớn và phứctạp Điều này giúp các nhà phát triển xây dựng ứng dụngweb ổn định trong khi vẫn duy trì tính linh hoạt Khả năng
hỗ trợ nhiều ngôn ngữ để bất kỳ trang web nào cũng cóthể được điều chỉnh phù hợp với các quốc gia đó Do vậytrong tương lai Laravel sẽ ngày càng phổ biến và tốt hơn
Trang 17Chương 3 Thực hiện bài toán.
3.1 Phân tích yêu cầu người dùng
Tài liệu mô tả người dùng:
Vào website và chọn danh mục sản phẩm cần lựachọn hoặc gõ vào ô tìm kiếm để tìm kiếm các sảnphẩm phù hợp hơn
vừa hiện ra để xem chi tiết
hàng” và tùy chọn số lượng sản phẩm cho phù hợpsau đó vào giỏ hàng để tiến hành mua hàng
Các chức năng cần thực hiện: Xem danh mục sảnphẩm, Xem chi tiết sản phẩm, Tìm kiếm sản phẩm, Đăng kítài khoản, Đăng nhập tài khoản, Quản lý khách hàng, Quản
lý giỏ hàng, Quản lý hóa đơn, Quản lý tài khoản, Xem lịch
sử mua hàng
Biểu đồ Usecase:
Trang 18Biểu đồ lớp :
xem danh muc san pham tim kiem sp
Quan ly gio hang
Quan ly tai khoan
quan ly san pham Quan ly khach hang
Xem chi tiet SP
Quan ly don hang
Quan ly danh muc sp
Xem lich su mua hang
Admin user_admin : Integer password_admin : Integer dangnhapvaoadmin()
1 n
1 1 n 1
DonHang madonhang : Integer tenkhachhang : String sodt : Integer motadonhang : String emailkh : String diachikh : String tinhtrangdonhang : Integer tongtien : Integer tongsp : Integer themdh() suadh() xoadh() laydh()
KhachHang makh : Integer tenkh : String sodt : Integer emailkh : String themkh() suakh() xoakh()
ThanhToan mathanhtoan : Integer madonhang : Integer sotien : Double thoigian : Date phuongthucthanhtoan : String atm()
Orders madonhang : Integer masp : Integer soluong : Integer themdonhang() capnhatdonhang() xoadonhang()
1 n
1 1 n 1
1 n
1 1 n
1
1 0 n 1 0 n
1 1
1 1
Trang 193.2 Thực hiên bài toán
Cài đặt và triển khai công cụ:
XAMPP là gì?
XAMPP là viết tắt của 5 module được tích hợp bêntrong nó bao gồm là Cross-Platform (X), Apache (A),MariaDB (M), PHP (P) và Perl (P). XAMPP là một phần mềmnguồn mở và miễn phí dùng để tạo web server trên máytính cá nhân (Localhost), XAMPP tương thích với các hệđiều hành phổ biến như : Linux, MacOS, Windows,
Ưu điểm lớn nhất của XAMPP là mã nguồn mở và tính
dễ sử dụng, tương đối đơn giản, gọn nhẹ nên được sử dụngngày càng phổ biến hiện nay
XAMPP được ứng dụng rộng rãi từ người dùng phổ thôngđến lập trình viên, nhằm để vận hành cũng như phát triểncác website dùng ngôn ngữ lập trình PHP như: WordPress,Joomla!, Magento, Drupal, OpenCart, phpBB,
Cách cài đặt XAMPP và tạo Localhost
Trang 20Ngay sau đó là hộp thoại “Warning” về quyền Userđiều khiển Nếu bạn chạy bằng quyền administrator thìkhông cần quan tâm tới cảnh báo này, chọn “Ok” để tiếptục Còn muốn an toàn hơn thì bạn cứ việc chọn cài XAMPP
ở ổ đĩa khác với ổ cài Window là được (chọn ổ đĩa tại bướcSetup – Installation folder)
Hãy chạy nó, sau đó chọn Next.
Trang 21Tại màn hình này chọn các ứng dụng kèm theo của bộXAMPP, bạn có thể bỏ những phần không cần thiết đi nhe,tuy nhiên cứ chọn hết và “Next” thôi, vì sau này sẽ có dịpdùng đến.
Trang 22Ở phần chọn đường dẫn, bạn hãy chọn đường dẫncần lưu cài đặt của XAMPP Lưu ý rằng đường dẫn này bạnphải nhớ vì khi cài đặt web lên localhost, bạn phải truy cập
vào thư mục này Bạn nên để mặc định là c:\xampp Tiếp
tục ấn Next
Trang 23Ở trang kế tiếp, bạn bỏ chọn phần “Learn more about Bitnami for XAMPP“ Và ấn Next 2 lần nữa để bắt đầu quátrình cài đặt XAMPP.
Trang 24Sau khi cài xong, ấn nút Finish để kết thúc cài đặt và
mở bảng điều khiển của XAMPP Tuy nhiên, hãy khởi độnglại máy sau khi cài đặt xong để tránh tình trạng không khởiđộng được localhost
Khởi động Localhost
Bây giờ bạn hãy vào thư mục c:\xampp và mở
XAMPP
Trang 25Bạn để ý sẽ thấy hai ứng dụng Apache và MySQL có
nút Start, đó là dấu hiệu bảo 2 ứng dụng này chưa được
khởi động, hãy ấn vào nút Start của từng ứng dụng để khởiđộng Webserver Apache và MySQL Server lên thì mới chạyđược localhost
Nếu cả hai ứng dụng chuyển sang màu xanh như hìnhdưới là đã khởi động thành công
Trang 26Sau khi khởi động xong, bạn hãy truy cập vào website
với địa chỉ là http://localhost sẽ thấy nó hiển thị ra trang
giới thiệu XAMPP như hình dưới
Cài đặt Laravel
Cài đặt Composer
Laravel sử dụng Composer để quản lý các thư việnphụ thuộc Vì vậy, trước khi sử dụng Laravel, cần đảm bảorằng đã cài đặt trình soạn thảo trên máy Vàohttps://getcomposer.org/doc/00-intro.md để set upcomposer Hướng dẫn bên dưới là cho Windows Khởi động昀椀le Composer-Setup.exe
Trang 27Lựa chọn thư mục cài đặt, đặt chung với XAMPP.
Trang 28Lựa chọn đường dẫn đến phiên bản PHP muốn sử dụng (Ởđây dùng PHP 7.18 trên XAMPP).
Nhấn Install để cài đặt
Trang 29 Cài đặt Laravel thông qua Laravel Installer
Bạn mở Terminal (CMD hoặc Git Bash), gõ dòng lệnh sau:
composer global require “laravel/installer”
Đối với Windows, đường dẫn là:
%appdata%Composervendorbin
Sau khi cài đặt xong, bạn di chuyển vào thư
windows thì nhấp Shift + chuột phải và chọn Command
Window Here hoặc Git Bash Here) và gõ:
laravel new blog
Trong đó blog chính là tên thư mục laravel
project của bạn Vậy là chúng ta đã cài đặt
xong Laravel rồi đấy
Cài đặt Laravel thông qua Composer
Di chuyển thẳng vào thư mục htdocs của XAMPP, tạiđây mở cửa sổ lệnh và gõ lệnh:
Trong đó blog chính là tên thư mục laravel project của bạn
Cài đặt Laravel thủ công