TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----------o0o----------
BÀI TẬP LỚN
PHẦN MỀM MÃ NGUỒN MỞ
(FOSS)
Tên đề tài:
Xây dựng phần mềm trợ giúp tìm kiếm người
giúp việc trên framework Laravel
Giáo viên hướng dẫn
: Trần Thanh Huân
Lớp
: ĐH – KTPM2 – K10
Nhóm
:8
Sinh viên thực hiện
:
Nguyễn Thị Oanh
Nguyễn Thị Cẩm Nhung
Hoàng Đức Cương
Hà Nội – 12/2018
1
LỜI NÓI ĐẦU
Ngày nay cùng với sự phát triển của xã hội, con người càng trở nên bận rộn hơn
bao gồm cả người phụ nữ. Họ không chỉ là một người phụ nữ của gia đình mà họ
còn có công việc của bản thân đối với cộng đồng xã hội. Và cũng chính vì vậy mà
nhu cầu tìm kiếm người giúp việc ngày càng cao. Do đó, nhóm 8 chúng em làm về
đề tài “Xây dựng phần mềm trợ giúp tìm kiếm người giúp việc trên framework
Laravel”.
Phần mềm trợ giúp tìm kiếm người giúp việc theo nghề là một trong những hệ
thống phần mềm bổ ích giúp cho những người tìm việc hay những người muốn tìm
giúp việc nhanh hơn, thuận lợi hơn trong việc tìm kiếm và đỡ mất thời gian.
Trong suốt thời gian học tập, nhóm 8 chúng em đã nhận được nhiều sự quan tâm,
giúp đỡ của thầy và bạn bè. Để hoàn thành báo cáo này, thay mặt nhóm 8 em xin
chân thành cảm ơn đến thầy Trần Thanh Huân, người đã trực tiếp hướng dẫn giúp
chúng em hoàn thành đề tài.
Tuy thời gian chưa nhiều nhưng với sự cố gắng nỗ lực, quyết tâm của các thành
viên trong nhóm, em đã có thể tự hào nói rằng nhóm 8 đã hoàn thành đề tài bằng
chính khả năng của từng thành viên. Xong để hoàn thiện hơn, các thành viên trong
nhóm rất mong nhận được những đánh giá, nhận xét, góp ý từ thầy và các bạn.
Nhóm 8 chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện!
2
MỤC LỤC
LỜI NÓI ĐẦU..........................................................................................................2
MỤC LỤC................................................................................................................. 3
DANH SÁCH HÌNH VẼ...........................................................................................5
DANH SÁCH CÁC BẢNG BIỂU............................................................................6
DANH SÁCH CÁC TỪ VIẾT TẮT..........................................................................7
PHẦN MỞ ĐẦU.......................................................................................................8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT........................................................................10
1.1
Tổng quan về phần mềm mã nguồn mở.....................................................10
1.1.1
Mã nguồn mở là gì?.............................................................................10
1.1.2
Các loại mã nguồn mở.........................................................................13
1.1.3
Tình hình mã nguồn mở trên Thế giới.................................................20
1.1.4
Tình hình mã nguồn mở ở Việt Nam...................................................21
1.2
Giới thiệu ngôn ngữ, công cụ lập trình được áp dụng................................23
1.2.1
Tìm hiểu về công nghệ PHP Laravel...................................................23
1.2.2
Giới thiệu về Visual Studio Code, XamPP..........................................25
1.2.3
Giới thiệu về JavaScript, Bootstrap.....................................................26
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG..............................................28
2.1
Khảo sát hệ thống.......................................................................................28
2.2
Biểu đồ UC................................................................................................28
2.3
Đặc tả UC...................................................................................................28
2.3.1
Đăng nhập hệ thống.............................................................................28
2.3.2
Đăng ký tài khoản................................................................................29
2.3.3
Đăng bản tin........................................................................................30
2.3.4
Chỉnh sửa bản tin.................................................................................31
2.3.5
Xóa bản tin..........................................................................................32
2.3.6
Sửa tài khoản người dùng....................................................................33
2.4
Biểu đồ trình tự..........................................................................................34
CHƯƠNG 3: CÀI ĐẶT TRIỂN KHAI...................................................................37
3.1
Thiết kế cơ sở dữ liệu.................................................................................37
3.2
Thiết kế giao diện.......................................................................................37
CHƯƠNG 4: ĐÁNH GIÁ KẾT LUẬN...................................................................41
3
TÀI LIỆU THAM KHẢO.......................................................................................42
4
DANH SÁCH HÌNH
Hình 1. 1. Các loại nguồn mở tốt nhất hiện nay..................................................14
Hình 1. 2. Phần mềm WordPress..........................................................................15
Hình 1. 3. Phần mềm Joomla................................................................................15
Hình 1. 4. Phần mềm Drupal................................................................................16
Hình 1. 5. Phần mềm Magento.............................................................................17
Hình 1. 6. Phần mềm Opencart............................................................................18
Hình 1. 7. Phần mềm CMS Made Simple............................................................19
Hình 1. 8. Phần mềm B2evolution........................................................................19
Hình 1. 9. Phần mềm osCommerce......................................................................20
Hình 1. 10. Phần mềm nguồn mở đang được ứng dụng phổ biến......................22
Y
Hình 2. 1. Biểu đồ UC chính của hệ thống...........................................................28
Hình 2. 2. Biểu đồ trình tự UC đăng tin...............................................................34
Hình 2. 3. Biểu đồ trình tự UC đăng nhập...........................................................35
Hình 2. 4. Biểu đồ trình tự UC sửa tài khoản người dùng.................................35
Hình 2. 5. Biểu đồ trình tự UC xóa tài khoản người dùng.................................36
Hình 3. 1. Giao diện trang chủ..............................................................................38
Hình 3. 2. Giao diện phần footer..........................................................................38
Hình 3. 3. Giao diện đăng nhập............................................................................39
Hình 3. 4. Giao diện đăng ký................................................................................39
Hình 3. 5. Giao diện đăng tin................................................................................40
Hình 3. 6. Giao diện thông tin tài khoản..............................................................40
5
DANH SÁCH CÁC BẢNG BI
Bảng 2. 1. Đặc tả UC đăng nhập hệ thống...........................................................28
Bảng 2. 2. Đặc tả UC đăng ký tài khoản..............................................................29
Bảng 2. 3. Đặc tả UC đăng tin...............................................................................30
Bảng 2. 4. Đặc tả UC chỉnh sửa bản tin...............................................................31
Bảng 2. 5. Đặc tả UC xóa tin.................................................................................32
Bảng 2. 6. Đặc tả UC sửa tài khoản người dùng.................................................33
Y
Bảng 3. 1. Bảng dữ liệu thông tin bài đăng..........................................................37
Bảng 3. 2. Bảng dữ liệu thông tin người dùng tài khoản....................................37
6
DANH SÁCH CÁC TỪ VIẾT TẮT
Từ viết tắt
OSS
UC
VS code
BTL
SSL
ORM
Diễn giải
Open Source Software: Phần mềm mã nguồn mở
Use Case: ca sử dụng
Visual Studio Code: phần mềm viết code website
fontend và backend
Bài Tập Lớn
Secure Sockets Layer: Tầng ổ bảo mật (Đây là một
tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên
kết giữa máy chủ web và trình duyệt)
Object Relation Mapping: được hiểu như là kỹ thuật
ánh xạ từ mô hình đối tượng với các table trong cơ sở
dữ liệu quan hệ.
7
PHẦN MỞ ĐẦU
Hiện nay, các công nghệ tiên tiến phát triển ngày càng mạnh mẽ và được ứng
dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường
ngày của con người. Một điểm tiêu biểu nhất trong việc phát triển công nghệ đó
phải nói đến việc ứng dụng công nghệ thông tin vào các hoạt động. Nhờ đó công
việc được thực hiện nhanh, chính xác và đạt kết quả cao hơn rất nhiều.
Cũng chính sự phát triển của xã hội, con người càng trở nên bận rộn hơn bao
gồm cả người phụ nữ. Họ không chỉ là một người phụ nữ của gia đình mà họ còn có
công việc của bản thân đối với cộng đồng xã hội. Và cũng chính vì vậy mà nhu cầu
tìm kiếm người giúp việc ngày càng cao. Do đó, nhóm 3 chúng em làm về đề tài
“Xây dựng phần mềm trợ giúp tìm kiếm người giúp việc theo nghề”.
Mục đích của đề tài BTL: Xây dựng một phần mềm có giao diện đẹp, thân thiện
với mọi người, với các tính năng của một phần mềm cung cấp dịch vụ giúp việc.
Là nơi mọi người có thể xem các bản tin tuyển dụng hay tìm kiếm giúp việc với
đủ các chuyên mục như: Nhà cửa, Đời sống xã hội, Sửa chữa cơ khí – máy móc,
Sửa chữa thiết bị điện tử, Sửa chữa ô tô – xe máy, Sửa chữa máy tính – điện thoại –
linh kiện, Dịch vụ, Công nghệ thông tin, Mỹ thuật – thiết kế, Dịch vụ nấu ăn.
Phần mềm sẽ có các chức năng cơ bản như: đăng tin, chỉnh sửa và xóa bản tin;
sửa và xóa tài khoản người dùng,… Dĩ nhiên người dùng phải có tài khoản thì mới
có thể đăng nhập vào hệ thống và sử dụng các chức năng trên. Nếu chưa có tài
khoản có thể đăng ký với hệ thống. Bên cạnh đó, không cần đăng nhập, người dùng
hay nói chính xác hơn là khách xem có thể xem hệ thống, xem các bài đăng, các
chức năng hay giao diện hệ thống mà không cần phải đăng nhập.
Mục tiêu của đề tài BTL: Tìm hiểu công nghệ PHP Laravel, ứng dụng nó vào
việc xây dựng phần mềm trợ giúp tìm kiếm người giúp việc theo nghề. Người dùng
truy cập vào hệ thống có thể tìm kiếm các sản phẩm theo tên sản phẩm, phân loại,
mức giá…, website cũng cung cấp cho người quản trị một giao diện đơn giản giúp
quản lý hóa đơn, chi tiết hóa đơn, quản lý khách hàng, sản phẩm và thống kê.
Giao diện đẹp, thân thiện và dễ sử dụng.
Dễ dàng bảo trì và nâng cấp.
Phương pháp: Nghiên cứu cơ sở lý thuyết và tài liệu thông qua các công cụ tìm
kiếm như google ,coccoc …
Tìm hiểu các website sử dụng công nghệ PHP Laravel, từ đó có ý tưởng xây
dựng phần mềm trợ giúp tìm kiếm người giúp việc theo nghề.
Áp dụng công nghệ PHP Laravel để áp dụng cho việc xây dựng trang hệ thống.
Sử dụng những kiến thức đã học về phân tích, thiết kế hệ thống để tổng hợp lại
kiến thức và hoàn thành báo cáo.
8
Dự kiến kết quả đạt được: Cung cấp những tài liệu cần thiết về các công nghệ
được áp dụng. Biết thêm được các phần mềm nguồn mở đang được áp dụng phổ
biến.
Tóm tắt nội dung của các chương:
Chương 1: Nêu được cơ sở lý thuyết. Sơ lược về ngôn ngữ PHP, Laravel
framework của PHP, công cụ được áp dụng trong đề tài BTL là VS code và XamPP.
Tổng quan về phần mềm mã nguồn mở: khái niệm, lợi ích của OSS, các loại
OSS, tình hình phát triển OSS trên Thế giới và ở Việt Nam.
Chương 2: Phân tích thiết kế hệ thống UML. Khảo sát về hệ thống, vẽ biểu đồ
UC, đặc tả UC, các biểu đồ trình tự.
Chương 3: Cài đặt triển khai. Có các bảng thiết kế cơ sở dữ liệu và thiết kế giao
diện phần mềm.
Chương 4: Đánh giá kết luận. Kết luận chung cho các chương trong BTL. Nhấn
mạnh những vấn đề đã giải quyết đồng thời trình bày các vấn đề vẫn chưa được giải
quyết và đưa ra kiến nghị, đề xuất.
Tài liệu tham khảo
9
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1 Tổng quan về phần mềm mã nguồn mở
1.1.1
Mã nguồn mở là gì?
Phần mềm nguồn mở (Open Source Software - OSS) là phần mềm với mã
nguồn được công bố và sử dụng một giấy phép nguồn mở. Giấy phép này cho phép
bất cứ ai cũng có thể nghiên cứu, thay đổi và cải tiến phần mềm, và phân phối phần
mềm ở dạng chưa thay đổi hoặc đã thay đổi.
Nhà cung cấp mã nguồn mở có quyền yêu cầu người dùng trả một số chi phí về
các dịch vụ bảo hành, huấn luyện, nâng cấp, tư vấn, vv… tức là những dịch vụ thực
sự đã thực hiện để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn
mở vì nó là tài sản của trí tuệ chung, không phải là tài sản riêng của một nhà cung
cấp nào.
Tiện ích mà Open Source mang lại chính là quyền tự do sử dụng chương trình
cho mọi mục đích, quyền tự do để nghiên cứu cấu trúc của chương trình, chỉnh sữa
phù hợp với nhu cầu, truy cập vào mã nguồn, quyền tự do phân phối lại các phiên
bản cho nhiều người, quyền tự do cải tiến chương trình và phát hành những bản cải
tiến vì mục đích công cộng.
Đặc điểm của phần mềm tự do – mã nguồn mở:
⁃ Tự do phân phối.
⁃ Luôn kèm mã nguồn.
⁃ Cho phép thay đổi phần mềm.
⁃ Không cho phép thay đổi các ràng buộc bản quyền.
⁃ Có thể có ràng buộc về việc:
Tích hợp mã nguồn.
Đặt tên phiên bản.
⁃ Không phân biệt cá nhân/nhóm khác nhau.
⁃ Không phân biệt mục đích sử dụng.
⁃ Không hạn chế các phần mềm khác.
⁃ Trung lập về công nghệ.
Mã nguồn mở từ đâu mà có?
Ý niệm và một phần mềm hợp tác cùng lập trình đã có từ những năm 1950-1960
nhưng tới những năm 1970-1980, các tranh cãi về pháp lý khiến cho ý tưởng này
mất đi sức hấp dẫn. Phần mềm độc quyền chiếm thế trên thị trường phần mềm cho
10
tới khi Richard Stallman sáng lập Free Software Foundation (FSF) vào năm 1985,
đưa phần mềm mở/miễn phí trở lại.
Khái niệm "phần mềm miễn phí" ám chỉ sự tự do, không phải trả phí. Phong trào
xã hội đứng sau phần mềm mở cho phép người dùng phần mềm tự do xem, thay
đổi, cập nhật, sửa, thêm vào mã nguồn để đáp ứng nhu cầu của mình và phân phối,
chia sẻ với người khác dễ dàng.
FSF đóng vai trò quan trọng trong phong trào phần mềm mã nguồn mở bằng dự
án GNU Project. GNU là hệ điều hành miễn phí (một nhóm các phần mềm và công
cụ hướng dẫn thiết bị hoặc máy tính vận hành), thường phát hành các công cụ, thư
viện, ứng dụng… gộp lại được gọi là các phiên bản hoặc bản phân phối.
GNU đi kèm một phần mềm được gọi là kernel, có nhiệm vụ quản lý các nguồn
lực của máy tính hoặc thiết bị, trong đó có việc giao tiếp giữa các ứng dụng và phần
cứng. Kernel phổ biến nhất của GNU là Linux kernel, được Linus Torvalds tạo ra
đầu tiên. Việc kết hợp hệ điều hành và kernel được gọi là hệ điều hành GNU/Linux,
dù thường được gọi đơn giản là Linux.
Vì nhiều lý do, gồm cả việc gây dễ nhầm lẫn trên thị trường về ý nghĩa của thuật
ngữ "phần mềm mở" mà thuật ngữ thay thế là "mã nguồn mở" thường được dùng
cho các phần mềm được tạo và duy trì bởi sự phối hợp của cộng đồng.
Thuật ngữ "mã nguồn mở" chính thức được chấp thuận tại hội nghị đặc biệt của
những người đi đầu về công nghệ diễn ra vào 2/1998 do Tim O’Reilly tổ chức. Cuối
tháng đó, Open Source Initiative (OSI) được thành lập bởi Eric Raymond và Bruce
Perens, là một tổ chức phi lợi nhuận nhằm khuyến khích phát triển phần mềm mã
nguồn mở.
FSF tiếp tục là tổ chức ủng hộ và hoạt động để hỗ trợ "quyền tự do và quyền liên
quan tới mã nguồn mở" của người dùng. Tuy vậy, nhiều tổ chức hiện này sử dụng
thuật ngữ "mã nguồn mở" cho các dự án và phần mềm mà họ cho phép công chúng
truy cập mã nguồn.
Ưu điểm của phần mềm mã nguồn mở?
⁃ Mở rộng thị trường.
⁃ Thiết lập các chuẩn công nghiệp.
⁃ Lôi kéo được các nhà phát triển.
⁃ Cập nhật sự phát triển về công nghệ.
⁃ Cung cấp các phần mềm tin cậy, ổn định, giá thành hạ.
⁃ Mềm dẻo, đổi mới, sáng tạo.
⁃ Không bị sức ép thương mại.
11
Nhược điểm của phần mềm mã nguồn mở?
⁃ Khó thuyết phục người sử dụng không là nhà phát triển.
⁃ Không có các dữ liệu về tính năng của phần mềm.
⁃ Sản phẩm khó thương mại hóa.
⁃ 50-50 với hacker.
Lợi ích của phần mềm mã nguồn mở.
⁃ Phần mềm có thể được sao chép hoàn toàn miễn phí, hoàn toàn an tâm khi
chia sẽ một chương trình tuyệt vời với bạn bè.
⁃ Các định dạng file không hoàn toàn bị kiểm soát bởi một vài nhà cung cấp.
Điều gì sẽ xảy ra khi dữ liệu nằm trong một phần mềm độc quyền? Việc sử
dụng một định dạng file bí ẩn sẽ khiến bạn chỉ dùng chương trình của một
công ty. Do yêu cầu công việc, bạn muốn sử dụng dữ liệu trên cho một ứng
dụng khác nhưng ương trình bản quyền không cho phép ! Còn nếu như nhà
cung cấp chấm dứt hổ trợ và ngưng việc nâng cấp sản phẩm, chắc chắn rằng
dữ liệu của bạn sẽ phải vứt xó. Với phần mềm bản quyền, chỉ có duy nhất
nhà cung cấp có thể giải quyết vấn đề của bạn. Nhưng với OpenSource bạn
có thể gặp hàng tá nhà cung cấp làm vừa lòng mình.
⁃ Hầu hết các sản phẩm Open Source đều có khả năng bảo mật tuyệt vời, khi
một vết nứt được tìm thấy, nó thường được trám nhanh hơn phần mềm có
bản quyền.
⁃ Các hệ thống Open Source, nhất là các hệ thống dựa trên UNIX, thường linh
hoạt đến khó tin nổi. Bởi vì chúng được xây dựng từ nhiều khối thống nhất
và được miêu tả cặn kẽ, rất dễ để bạn thay thế nhiều phần của hệ thống với
phần có giao diện tương tự.
⁃ Có một cộng đồng hỗ trợ lớn. Không bị phụ thuộc vào một công ty nào.
Vì sao mã nguồn mở tiện lợi và nên sử dụng nhiều trong thiết kế web?
Hiện nay, người ta chuộng sử dụng mã nguồn mở trong thiết kế web
và các phần mềm ứng dụng vì các lý do như:
Khả năng quản trị và điều khiển cao: Mã nguồn mở được giới
chuyên môn ưa chuộng nhiều do họ có khả năng quản lí và kiểm soát
sản phẩm của mình nhiều hơn. Họ có thể cho phép phần nào hoạt động,
phần nào không. Còn trên phương diện người sử dụng sản phẩm, mặc
12
dù không biết nhiều về khái niệm này nhưng họ lại được hưởng khá
nhiều lợi ích từ loại mã nguồn này.
Tăng khả năng sáng tạo: Vì được thiết kế dưới dạng “mở”, nên nhiều
người có thể nghiên cứu để tạo ra các phần mềm tốt hơn. Đây có thể
xem là một sản phẩm thách thức nhiều lập trình viên trong quá trình
sáng tạo của mình.
Độ an ninh cao: Một điều khá nghịch lý ở phần mềm mã nguồn mở
là nó lại được bảo mật và an ninh cao hơn các phần mềm độc quyền
khác. Lý do lý giải cho điều này là vì nhiều người lập trình có thể cùng
làm việc trên một phần mềm nguồn mở mà không cần xin phép từ các
tác giả gốc, nên họ có thể sửa chữa, cập nhật và nâng cấp phần mềm mã
nguồn mở nhanh hơn các phần mềm có bản quyền. Nói cách khác, khi
có cả một cộng đồng cùng tập trung “chăm sóc” một sản phẩm thì chắc
chắn nó sẽ cải tiến và sở hữu nhiều chức năng tốt hơn.
Ổn định: Nhiều người đánh giá cao mã nguồn mở vì cho rằng nó có thể hỗ trợ
cho nhiều công ty, doanh nghiệp trong các dự án quan trọng, có tính chất dài hạn. Ví
dụ khi muốn mở rộng hay cải thiện các chức năng cho website công ty sau nhiều
năm hoạt động, đội ngũ lập trình viên trong công ty của họ có thể điều chỉnh mã
nguồn mở để đáp ứng các yêu cầu này. Đối với các mã nguồn có bản quyền thì quá
trình này lại gần như phức tạp hơn.
Phần mềm mã nguồn mở là một phần của cuộc sống hàng ngày.
Các dự án mã nguồn mở rất phổ biến trong cuộc sống hàng ngày. Hệ điều hành
iOS và cả Android trước đây đều được tạo bằng các khối từ phần mềm, dự án mã
nguồn mở.
Mozilla FIrefox là trình duyệt web mã nguồn mở. Google Chrome là phiên bản
có chỉnh sửa của dự án mã nguồn mở có tên Chromium - dù Chromium được các
nhà phát triển Google khởi xướng và họ vẫn tiếp tục đóng vai trò quan trọng trong
việc cập nhật, bổ sung thêm, Google cũng đưa thêm các tính năng mới (một vài
trong số chúng không phải mã nguồn mở) vào phần mềm cơ sở để phát triển trình
duyệt Google Chrome.
Không thể có Internet ngày nay nếu không có OSS. Những người tiên phong
trong công nghệ đã xây dựng nên thế giới World Wide Web bằng công nghệ mã
nguồn mở, như hệ điều hành Linux và máy chủ web Apache để tạo ra Internet ngày
nay.
13
Máy chủ web Apache là các phần mềm OSS xử lý yêu cầu cho một trang web
nhất định (ví dụ khi click vào một trang web mà bạn muốn truy cập) bằng cách tìm
và đưa bạn tới trang đó. Máy chủ web Apache là mã nguồn mở và được duy trì bởi
những tình nguyện viên, thành viên của tổ chức phi lợi nhuận có tên Apache
Software Foundation.
1.1.2
Các loại mã nguồn mở
Hình 1. 1. Các loại nguồn mở tốt nhất hiện nay
Đối với lĩnh vực thiết kế website, các loại mã nguồn mở sau đây được sử dụng
nhiều và khá phổ biến:
WordPress: WordPress được đánh giá là mã nguồn mở với CMS hoạt động
mạnh nhất từ trước đến nay. Rất nhiều website trong nhiều lĩnh vực hiện nay đã và
đang sử dụng mã nguồn mở để hoạt động và phát triển. Web-giadinh cũng chọn mã
nguồn này làm nguồn thiết kế web chính cho khách hàng, thời gian thiết kế web
nhanh, giao diện quản trị dễ dùng phù hợp với khách hàng, có hệ thống hỗ trợ tối ưu
hóa công cụ tìm tiếm tốt cho SEO, hơn nữa các Plugin và Widget đa dạng cho người
lập trình sử dụng mà không cần phải động vào code nhiều.
14
Hình 1. 2. Phần mềm WordPress
Joomla: Joomla cũng là mã nguồn mở xuất hiện đầu tiên trên internet vào năm
2005 – một trong các mã nguồn mở được ưa chuộng hiện nay với cấu hình mạnh và
khả năng tương thích cao, có thể mở rộng và phát triển thêm nhiều tính năng ưu việt
khác. Được sử dụng nhiều nhất vào các website thương mại điện tử, các designer dễ
dàng tùy chỉnh website bán hàng bằng các thêm các modul cho nó, Joomla còn
được viết bằng PHP và có thể được sử dụng trong môi trường php & mysql.
Hình 1. 3. Phần mềm Joomla
15
Drupal: Drupal ra đời vào năm 2001 là một trong những cái tên lâu đời nhất, đi
trước cả WordPress và Joomla. Drupal là một trong số những mã nguồn mở lớn vẫn
còn được hỗ trợ. Các nhà phát triển đã chấp nhận tính chất nguồn mở của Drupal,
tách CMS thành 2 phần chính: core – được xây dựng bởi các lập trình viên, và
module – được phát triển bởi cộng đồng. Tại thời điểm này có khoảng 9000 module
có thể download. Drupal được xây dựng từ PHP và nhiều loại database: MySQL,
PostgreSQL, SQLite, Microsoft SQL Server, MongoDB hoặc MariaDB… và hỗ trợ
tốt cho nhiều loại website hiện này.
Hình 1. 4. Phần mềm Drupal
Magento, OpenCart, WooCommerce: Nhắc tới ba phần mềm mã nguồn mở
này thì phải kể đến ưu điểm tuyệt vời của nó trong việc hỗ trợ các website thương
mại điện tử. Các chức năng như bán hàng, thanh toán, giỏ hàng đều được phát triển
mạnh mẽ với Magento, OpenCart, WooCommerce…
Magento là một mã nguồn mở cho phép thiết kế web bán hàng rất tốt, được ra
mắt vào ngày 31 tháng 3 năm 2008. Magento được phát triển bởi Varien, với sự
giúp đỡ từ các lập trình viên trong cộng đồng mã nguồn mở, nhưng chỉ được sở hữu
bởi Magento Inc. Magento được xây dựng trên nền tảng Zend Framework.
⁃ Mã nguồn Magento đã được áp dụng rộng rãi bởi các nhà bán lẻ trực tuyến
với khoảng 150.000 trang web.
⁃ Magento hiện phát hành 3 phiên bản khác nhau dùng cho các đối tượng
khách hàng bao gồm:
⁃ Magento Comunity Edition – Phiên bản Magento hoàn toàn miễn phí
16
⁃ Magento Go – Phiên bản Magento có trả phí hàng tháng, chủ yếu bao gồm
dịch vụ Hosting cho website của người sử dụng
⁃ Magento Enterprise – Phiên bản Magento chuyên nghiệp tích hợp các tính
năng mạnh mẽ nhất cho các website “khủng” của các Shop bán hàng lớn.
Hình 1. 5. Phần mềm Magento
Mã nguồn mở Opencart là một mã nguồn bán hàng rất gần gũi với phong cách
thương mại điện tử ở Việt Nam.
⁃ OpenCart sử dụng ngôn ngữ PHP, cung cấp các giải pháp thương mại điện
tử mạnh mẽ với khả năng tạo kinh doanh trực tuyến,ngoài tính năng free thì
opencart được biết đến với các tinh năng vốn có của 1 opensource, là có thể
sửa đổi, dễ hiệu chỉnh, dễ cải tiến theo hướng phát triển của bản thân ngưởi
sử dụng.
⁃ Opencart đầu tư khá công phu cho việc sử dụng , quản lý các gian hàng, và
khách hàng. Nó chứa các module cho phép bạn sử dụng các mục đích khác
nhau, như giới thiệu sản phẩm, sản phẩm được đưa ra trưng bày, liệt kê sản
phẩm theo các tính năng.
17
Hình 1. 6. Phần mềm Opencart
CMS Made Simple ra đời năm 2009 với hàng triệu lượt download và dần dần trở
nên phổ biến với người dùng.
⁃ Được dùng làm việc với code và lập trình, CMS Made Simple cung cấp cho
người dùng một phương pháp phát triển và tùy chỉnh website thật đơn giản
mà không cần phải đối diện với những dòng mã phức tạp.
⁃ CMS Made Simple được phát triển trên nền tảng PHP và MySQL hoặc
PostgreSQL.
18
Hình 1. 7. Phần mềm CMS Made Simple
Chính vì vậy mà nhiều đơn vị khi có nhu cầu thiết kế website thương mại điện
tử đều tìm đến và sử dụng các mã nguồn này như một giải pháp tối ưu cho các hoạt
động kinh doanh trực tuyến của họ.
B2evolution: B2evolution có cùng nguồn gốc với WordPress ra đời vào năm
2003, được biết đến nhiều vì có hỗ trợ nhiều blog, admin và user chỉ với một lần cài
đặt duy nhất, đặc biệt là tính năng multi-blog. B2evolution được xây dựng trên nền
tảng PHP và MySQL, là một phần mềm sử dụng mã nguồn mở hoạt động khá hiệu
quả.
Hình 1. 8. Phần mềm B2evolution
19
osCommerce là một trong những tên tuổi lâu đời nhất trong các phần mềm
thương mại điện tử, do đó nó được rất nhiều website bán hàng sử
dụng. osCommerce đã có hơn 7.000 tích hợp miễn phí, và được hỗ trợ bởi một
cộng đồng phát triển năng động. Theo các chuyên gia nhận xét, do được phát triển
từ quá sớm, hệ thống phần mềm này được xem có dấu hiệu lỗi thời, vì vậy bạn cần
phải cân nhắc khi sử dụng. Tuy nhiên, giống như Magento, nếu có thể tìm ra cách
để làm việc khi chọn giải pháp này, đó không phải là điều cản trở. Nên lưu ý, mặc
dù osCommerce có tính năng bảo mật, nhưng chúng rất kém, vì vậy cần xây dựng
thêm hệ thống bảo mật riêng cho mình.
Hình 1. 9. Phần mềm osCommerce
1.1.3
Tình hình mã nguồn mở trên Thế giới
Trong 12 năm qua, phần mềm nguồn mở trên thế giới đã phát triển vượt bậc cả
về công nghệ cũng như tạo đà ảnh hưởng tới các lĩnh vực có liên quan như dữ liệu
mở (open data), tài nguyên giáo dục mở (OER- open educational resources), phần
cứng nguồn mở (open hardware)…
Nếu như năm 2004, công cụ quản lý mã nguồn git chưa ra đời, thì hiện nay nó
đã trở thành công cụ cộng tác lập trình mạnh nhất thế giới. Bản thân git cũng là
phần mềm nguồn mở, và nhờ có git, khái niệm “mạng xã hội dành cho lập trình
viên” (social coding) cũng ra đời. Điển hình của mô hình mạng xã hội dành cho lập
trình viên là github.com, đây là nơi lưu trữ kho code, nơi cộng tác làm việc của
20
hàng chục ngàn người phát triển Linux (và vô số phần mềm nguồn mở khác) trên
toàn thế giới.
Một thống kê vào tháng 2 năm 2015, chỉ tính từ năm 2005 khi bắt đầu sử dụng
git, có 11.800 cá nhân từ gần 1.200 công ty đã đóng góp cho nhân Linux. Với số
lượng lập trình viên lớn ở khắp mọi nơi trên thế giới, làm trong mọi khung giờ, vậy
mà họ vẫn có thể cộng tác với nhau mượt mà, cũng là nhờ có công cụ quản lý mã
nguồn mở git.
Các doanh nghiệp phần mềm truyền thống theo đuổi mô hình phần mềm nguồn
đóng trên thế giới quen chống đối mô hình phát triển phần mềm nguồn mở cũng
thay đổi 180 độ trước những lợi ích không thể chối cãi của phần mềm nguồn mở,
điển hình là Microsoft. Nếu như vào năm 2001, Steve Ballmer (CEO của Microsoft)
đã ví hệ điều hành Linux là “căn bệnh ung thư”, bởi hệ điều hành này đang xâm
chiếm thị phần với Windows trên thị trường máy tính cá nhân, thì năm 2012,
Microsoft thành lập công ty con là Microsoft Open Technology chuyên phát triển
phần mềm nguồn mở. Tháng 6 năm 2016, Microsoft công bố phần mềm nguồn
mở .NET Core 1.0, và gần đây nhất là Microsoft gia nhập Linux Foundation, không
ai ngờ Microsoft thậm chí còn là thành viên bạch kim (cấp bậc thành viên cao nhất
của Linux Foundation). Những động thái này của Microsoft làm giới công nghệ đi
hết từ bất ngờ này đến bất ngờ khác. Tuy nhiên những ai am hiểu lợi ích của phần
mềm nguồn mở thì không hề bất ngờ, vì một trong những thứ dẫn dắt cho sự phát
triển mạnh mẽ của phần mềm nguồn mở chính là lợi ích kinh tế. Bên cạnh đó, phần
mềm nguồn mở là phương thức giúp thúc đẩy sáng tạo, đổi mới khoa học công nghệ
thông qua việc hội tụ và tích lũy tri thức cộng đồng, qua việc cống hiến tài sản trí
tuệ của các tổ chức và cá nhân những người tham gia thành tài sản chung cho cộng
đồng nguồn mở.
Trên thế giới, nhiều chính phủ đã quyết định chuyển sang sử dụng OSS vì lý do
an ninh. Chính phủ Hoa Kỳ có tới 90% máy chủ tên miền, 70% máy chủ thư tín
điện tử và 60% máy chủ web đã sử dụng OSS. Tại Pháp, Bộ Văn hóa đã chuyển 400
máy chủ sang Linux, Tổng cục Thuế quốc gia Pháp cũng đã chuyển 950 máy chủ
sang hệ điều hành nguồn mở. Chính phủ Đức đã cấm dùng các sản phẩm Microsoft
trong các hệ thống máy tính “nhạy cảm” và lựa chọn bộ tiêu chuẩn mở trong việc
xây dựng Chính phủ điện tử. Ở Canada, sau các sự kiện tin tặc tấn công hồi tháng
1/2011vào Bộ Tài chính, Kho bạc và Bộ Phát triển và Nghiên cứu Phòng vệ, Chính
phủ Canada quyết định bỏ Windows để chuyển sang một mạng an ninh tốt hơn dựa
vào Linux. Như vậy, OSS đã trở thành một lựa chọn hàng đầu cho chính phủ nhiều
nước.
Để hỗ trợ việc phát triển và ứng dụng OSS, nhiều tổ chức, hội, hiệp hội, liên
minh OSS trên thế giới đã được thành lập như Asianux của châu Á, Free Software
21
Foundation Europe của châu Âu, GNOME Foundation, Open Source for America
tại Mỹ, Open Embedded Software Foundation của Nhật Bản. Ở Việt Nam, đã hình
thành một số cộng đồng OSS như SaigonLUG, Fedora VN, HueLUG,
MekongLUG. Những cộng đồng này đã cùng nhau hình thành Câu lạc bộ Phần
mềm Tự do Nguồn mở Việt Nam (Vietnam Free & Open Source Software
Association - viết tắt là VFOSSA) trực thuộc Hội Tin học Việt Nam vào tháng 11
năm ngoái. Cũng xuất hiện nhiều doanh nghiệp CNTT Việt Nam chuyên phát triển
và cung cấp giải pháp OSS. Đây là cơ sở để đẩy mạnh ứng dụng và phát triển OSS
tại Việt Nam trong thời gian tới.
1.1.4
Tình hình mã nguồn mở ở Việt Nam
Hình 1. 10. Phần mềm nguồn mở đang được ứng dụng phổ biến
Việt Nam là một trong số ít nước sớm có chính sách ứng dụng và phát triển
PMNM ở quy mô quốc gia. Ngay từ năm 2004, Thủ tướng Chính phủ đã ban hành
Quyết định số 235/2004/QĐ-TTg phê duyệt Dự án tổng thể về Ứng dụng và phát
triển PMNM ở Việt Nam giai đoạn 2004-2008 đặt những nền móng ban đầu quan
trọng trong việc đưa PMNM vào hoạt động của cơ quan nhà nước, góp phần làm
chủ công nghệ và giảm dần gánh nặng mua sắm bản quyền phần mềm.
Quyết định số 50/2009/QĐ-TTg ngày 3/4/2009 của Thủ tướng Chính phủ ban
hành “Quy chế quản lý Chương trình phát triển công nghiệp phần mềm và Chương
trình phát triển công nghiệp nội dung số Việt Nam” đã vạch ra nhiệm vụ thúc đẩy
22
phát triển PMNM tại các địa phương thông qua các hoạt động hỗ trợ đào tạo cán bộ
sử dụng PMNM và hỗ trợ đánh giá phần mềm nguồn mở đáp ứng được yêu cầu để
khuyến cáo sử dụng.
Thực hiện các quyết định của Thủ tướng, Bộ Thông tin và Truyền thông
(TT&TT), cơ quan quản lý nhà nước về CNTT, đã ban hành một số chính sách
nhằm định hướng và thúc đẩy ứng dụng và phát triển PMNM tại các bộ, ngành, địa
phương, điển hình như Chỉ thị số 07/2008/CT-BTTTT ngày 30/12/2008 về thúc đẩy
sử dụng PMNM trong hoạt động của CQNN; Thông tư số 41/2009/TT-BTTTT ngày
30/12/2009 ban hành danh mục 13 sản phẩm PMNM đáp ứng được yêu cầu sử dụng
trong các cơ quan, tổ chức nhà nước; Thông tư 19/2011/TT-BTTTT về quy định áp
dụng tiêu chuẩn định dạng tài liệu mở trong CQNN nhằm thúc đẩy việc ứng dụng
bộ phần mềm văn phòng nguồn mở OpenOffice.
Các sự kiện phần mềm nguồn mở đáng chú ý ở Việt Nam trong năm 2016
Tháng 1 năm 2016, phần mềm nguồn mở NukeViet chính thức ra mắt CMS
phiên bản mới – thế hệ NukeViet CMS 4.0. NukeViet được coi là phần mềm nguồn
mở có lịch sử phát triển lâu đời nhất ở Việt Nam, được duy trì từ năm 2004 và được
phát triển liên tục cho đến ngày nay. Ngoài NukeViet CMS được phát hành dưới
dạng phần mềm nguồn mở, còn có NukeViet Shop sử dụng cho bán hàng trực
tuyến. Số lượng website sử dụng NukeViet CMS và NukeViet Shop ước tính trên
10.000 trang.
Một số giải pháp khác của NukeViet cũng được sử dụng phổ biến, bao gồm:
NukeViet Edu Gate là giải pháp cổng thông tin chuyên dùng cho các phòng, sở giáo
dục với khả năng tích hợp với website các trường, NukeViet Portal là giải pháp
cổng thông tin chuyên dùng cho doanh nghiệp, NukeViet eNews là giải pháp tòa
soạn điện tử dựa trên phần mềm nguồn mở NukeViet… Nhóm phát triển NukeViet
cũng dự định ra mắt một sản phẩm nguồn mở có tên gọi NukeViet eGovernment
dùng cho khối chính phủ trong thời gian tới. Sự phát triển liên tục của NukeViet là
tín hiệu đáng mừng vì trong khi hầu hết các sản phẩm nguồn mở của Việt Nam hầu
hết không tồn tại được quá 3 năm vì không thể kinh doanh được thì NukeViet đã
tìm ra còn đường đi của mình.
1.2 Giới thiệu ngôn ngữ, công cụ lập trình được áp dụng
1.2.1
Tìm hiểu về công nghệ PHP Laravel
Giới thiệu về PHP Laravel?
PHP là một ngôn ngữ lập trình kịch bản (scripting language) hay một loại mã
lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn
23
mở, dùng cho mục đích tổng quát. Nó rất thích hợp với web và có thể dễ dàng
nhúng vào trang HTML.
Laravel là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi
Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm
trúc model-view-controller (MVC).
Laravel nhằm giúp cho quá trình phát triển trở nên dễ chịu với developer mà
không làm thiếu sót các chức năng của ứng dụng. Những developer hạnh phúc sẽ
tạo ra những dòng code tốt nhất.
Cài đặt và ứng dụng?
Điều kiện để cài đặt:
Laravel được xây dựng dựa trên các xu hướng mới của PHP 5.3 nên cần cài đặt
phiên bản PHP 5.3.x. Hiện giờ phiên bản mới nhất là PHP 5.7.x. Bật SSL, các bạn
vào php.ini tìm dòng extension=php_openssl.dll và bỏ dấu “;” đằng trước đi nếu
có.
Muốn sử dụng Xampp thì cần khởi động lại Apache.
Để sử dụng Laravel thì cần cài đặt Composer (Composer là một Dependency
Management trong PHP, công cụ quản lý các thư viện mà project sử dụng, chỉ cần
khai báo nó, composer sẽ tự động tải code của các thư viện, tạo ra các file cần thiết
vào project của bạn, và update các thư viện nếu cần).
Các đặc trưng và tính năng cơ bản?
Các tính năng cơ bản của Laravel Framework
Bundles : Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các module, với
rất nhiều tính năng đi kèm.
Composer : Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý với
tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel có trong
kho Packagist.
Eloquent ORM (object relation mapping): ánh xạ các đối tượng và quan hệ cơ sở
dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung các
tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu. Eloquent ORM
trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọn
truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn.
Application logic : Là một phần của phát triển ứng dụng, được sử dụng bởi bộ điều
khiển controllers.
24
Routes : Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link) . Khi
một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liên
kết thống nhất sẽ được tạo ra bởi laravel.
Restful Controller : cung cấp các tùy chọn để tách các logic phía sau các request
HTTP POST, GET.
Class auto loading : cung cấp việc tải tự động các class trong PHP, mà không cần
include các class vào. Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào,
hạn chế các class không cần thiết.
View : chưa các mã html, hiển thị dữ liệu được chỉ định bởi controller.
Migrations : cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở dữ liệu
(database cheme), làm cho web ứng dụng có khả năng tương tác phù hợp những
thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cần thiết trong
việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứng dụng.
Unit Testing : đóng một vai trò quan trọng trong Laravel, Unit testting chứa rất
nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuôn khổ
nhất định. Unit Testing có thể được chạy thông qua tiện ích command-line.
Automatic pagination : Tính năng tự động phân trang được tích hợp
vào Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với các
phương pháp thông thường.
Ưu điểm của PHP Laravel?
⁃ Được thừa hưởng những ưu điểm và thế mạnh của các framework khác.
⁃ Nó có số lượng người sử dụng nhiều nhất.
⁃ Tài liệu rõ dàng, dễ học.
⁃ Autoload theo namespace.
⁃ Sử dụng mô hình ORM rất đơn giản khi thao tác với database.
⁃ Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thân thiện.
⁃ Việc quản lý layout thật sự giản đơn với Balade Templating.
⁃ Dễ dàng tích hợp các thư viện khác vào dự án, và được quản lý với
Composer.
⁃ Phần route rất mạnh.
1.2.2
Giới thiệu về Visual Studio Code, XamPP
VS code?
25