Trong bối cảnh cuộc khủng hoảng dịch bệnh COVID-19 đang diễn ra trên toàn thế giới, việc học tập trực tuyến đã trở thành xu hướng chung của nhiều quốc gia, giúp cho các em học sinh/sinh
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
BÁO CÁO ĐỒ ÁN HỌC PHẦN
CÔNG CỤ VÀ MÔI TRƯỜNG PHÁT TRIỂN PHẦN MỀM
Đề
Ngành: Công nghệ thông tin
Giáo viên hướng dẫn : Nguyễn Chí Toàn
Tp Hồ Chí Minh, 04/2023
Trang 2NHẬN XÉT CỦA GIÁO VIÊN
Trang 3
MỤC LỤC
LỜI CẢM ƠN 5
LỜI MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN VỀ DỰ ÁN 7
1.1 Lý do chọn dự án 7
1.2 Mô tả về dự án 7
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 8
2.1 GIT 8
2.2 JIRA 8
2.3 React 9
2.4 Các Template 10
2.4.1 Bootstrap 10
2.4.2 Material ui 10
CHƯƠNG 3: TÍNH ỨNG DỤNG CỦA GIT VS JIRA VÀ ỨNG DỤNG VÀO THỰC TẾ 11 CHƯƠNG 4: TỔNG KẾT BÁO CÁO DỰ ÁN 12
4.1 Kết Quả Đạt Được 12
4.2 Đánh Giá Phần Mềm 12
4.2.1 Ưu Điểm 12
4.2.2 Nhược Điểm 12
4.3 Hướng Phát Triển Trong Tương Lai 12
TÀI LIỆU THAM KHẢO 13
Trang 4LỜI CẢM ƠN
Lời đầu tiên, nhóm xin đặc biệt gửi lời cảm ơn đến Thầy Toàn giảng viên hướng dẫn môn Công cụ và môi trường phát triển phần mềm Thầy đã cung cấp kiến thức, chỉ bảo và đóng góp những ý kiến quý báu giúp nhóm hoàn thành được báo cáo môn học của mình Xuất phát từ mục đích học tập, nhóm đã tìm hiểu và thực nghiệm để tạo nên dự án Website lớp học trực tuyến Trong quá trình thực hiện báo cáo môn học, dựa trên những kiến thức được Thầy cung cấp trên trường kết hợp với việc tự tìm hiểu nhóm đã cố gắng thực hiện báo cáo một cách tốt nhất
Tuy nhiên, báo cáo chưa hoàn thiện và còn nhiều sai sót nhưng nó là kết quả của sự
nỗ lực của các thành viên trong nhóm, cũng như sự giúp đỡ của tất cả bạn bè và Thầy Nhóm rất mong nhận sự góp ý từ phía Thầy nhằm rút ra những kinh nghiệm quý báu và hoàn thiện vốn kiến thức để nhóm có thể tiếp tục hoàn thành những báo cáo đồ án khác trong tương lai
Xin chân thành cảm ơn Thầy!
Trang 5LỜI MỞ ĐẦU
Ngày nay công nghệ thông tin đang ngày càng phát triển nhanh chóng, kéo theo đó là
hệ thống mạng và các phần mềm cũng gia tăng cả về số lượng theo quy mô rộng và cả về chất lượng phần mềm theo chiều sâu Các hình thức học tập hiện nay đã lỗi thời và bất tiện Trong môi trường công nghệ đã ngày càng phát triển thì hình thức học trực tuyến cho sinh viên/học sinh là điều kiện cần để phát triển tư duy máy tính và học tập 1 cách dễ dàng hơn
Do đó yêu cầu đặt ra là cần có 1 website để hỗ trợ cho giáo viên và sinh viên/học sinh
có thể học tập tại nhà 1 cách dễ dàng nhanh chóng Sau khi hiểu được những vấn đề nêu trên chúng em đã tạo ra website học trực tuyến này để đáp ứng những điều đó
Trang 6CHƯƠNG 1: TỔNG QUAN VỀ DỰ ÁN
1.1 Lý do chọn dự án.
Trong bối cảnh cuộc khủng hoảng dịch bệnh COVID-19 đang diễn ra trên toàn thế giới, việc học tập trực tuyến đã trở thành xu hướng chung của nhiều quốc gia, giúp cho các
em học sinh/sinh viên tiếp cận kiến thức một cách tiện lợi, nhanh chóng và an toàn Trong trường hợp này, Website lớp học trực tuyến là một trong những nền tảng giáo dục cần có Website lớp học trực tuyến là một nền tảng giáo dục cung cấp một môi trường học tập đơn giản và dễ sử dụng cho học sinh/sinh viên và giáo viên Nó cho phép giáo viên tạo và chia sẻ các nhiệm vụ học tập trực tuyến, theo dõi tiến độ học tập của học sinh, đăng tải tài liệu học tập và tương tác với học sinh trong thời gian thực Các học sinh/sinh viên cũng có thể dễ dàng truy cập các tài liệu học tập, gửi bài tập và nhận phản hồi từ giáo viên một cách nhanh chóng và dễ dàng
Ngoài ra, Website lớp học trực tuyến còn có các tính năng như đăng nhập/đăng ký ,
mã hóa dữ liệu và quản lý quyền truy cập Điều này giúp đảm bảo rằng các thông tin liên quan đến học tập của học sinh sẽ được bảo vệ và giữ an toàn
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 GIT
Git là một hệ thống quản lý phiên bản phân tán (distributed version control system) Nhờ Git, việc quản lý code và làm việc nhóm của developer trở nên đơn giản, thuận tiện hơn
Có rất nhiều cách để định nghĩa Git, ở đây em sẽ tách nhỏ ra và giải thích chi tiết ngữ nghĩa
Hệ thống kiểm soát (Control System): Về cơ bản, điều này có nghĩa Git là một trình theo dõi nội dung, do đó, Git có thể được sử dụng để lưu trữ nội dung và chủ yếu được sử dụng để lưu trữ source code dựa theo những tính năng mà nó cung cấp
Hệ thống kiếm soát phiên bản (Version Control System): Source code lưu trữ trong Git sẽ thay đổi khi có càng nhiều source code mới được thêm vào Hơn nữa, nhiều developer có thể add thêm source code song song đó Vì vậy Hệ thống kiểm soát phiên bản giúp xử lý vấn đề này bằng cách duy trì lịch sử những thay đổi đã xảy ra Thêm vào đó, Git còn cung cấp các tính năng như nhánh (branch) và gộp nhánh (merge)
Hệ thống kiểm soát phiên bản phân tán (Distributed Version Control System): Git có một kho lưu trữ từ xa được lưu trữ trong một máy chủ và một kho lưu trữ cục bộ được lưu trữ trong máy tính của mỗi developer Điều này có nghĩa là source code không chỉ
Trang 8được lưu trữ trong máy chủ trung tâm mà bản sao đầy đủ của source code đó cũng được lưu trữ trong tất cả các máy tính của developer
2.2 JIRA
Jira là một ứng dụng theo dõi và quản lý lỗi, vấn đề và dự án, được phát triển để làm quy trình này trở nên dễ dàng hơn cho mọi tổ chức JIRA đã được thiết kế với trọng tâm vào kết quả công việc, có thể sử dụng ngay và linh hoạt khi sử dụng
2.3 React
React là thư viện JavaScript phổ biến nhất để xây dựng giao diện người dùng (UI) Nó cho tốc độ phản hồi tuyệt vời khi user nhập liệu bằng cách sử dụng phương pháp mới để render trang web
Components của công cụ này được phát triển bởi Facebook Nó được ra mắt như một công
cụ JavaScript mã nguồn mở vào năm 2013 Hiện tại, nó đã đi trước các đối thủ chính như Angular và Bootstrap, hai thư viện JavaScript bán chạy nhất thời bấy giờ
2.4 Các Template
2.4.1 Bootstrap
Bootstrap là một framework CSS miễn phí sử
dụng mã nguồn mở dùng cho mục đích phát triển web
front-end cho thiết bị di động Bên cạnh những mẫu thiết
kế kiểu chữ, biểu mẫu, nút hay thanh điều hướng bằng
Trang 9ngôn ngữ HTML, CSS và JavaScript, framework này còn bao gồm một số thành phần giao diện khác
2.4.2 Material ui
Material UI là một thư viện các React Component đã được tích hợp thêm cả Google's Material Design Theo như giới thiệu trên trang chủ thì được xây
dựng nhờ tình cảm với React và Google's Material Design Do đó
mà phần hướng dẫn trên trang chủ của Material UI cũng đã nói nên
sử dụng Material UI với React
Trang 10CHƯƠNG 3: TÍNH ỨNG DỤNG CỦA GIT, JIRA VÀ ỨNG DỤNG
VÀO DỰ ÁN
3.1 GIT
3.1.1 Ứng dụng của Git
Giúp quản lý mã nguồn đơn giản, an toàn và dễ sử dụng
Tối ưu hóa việc quản lý source code khi làm việc theo nhóm bằng cách chia và kết hợp ra các nhánh (branch)
Dễ dàng tích hợp CI/CD trong việc deployment với git
Có thể dễ dàng lấy source code ở bất kỳ đâu chỉ cần clone từ git server về máy của bạn
Thực tế dự án thường có nhiều developer làm việc song song Vì vậy, một hệ thống kiểm soát phiên bản như Git là cần thiết để đảm bảo không có xung đột source code giữa các các developer với nhau
Ngoài ra, requirement trong dự án thay đổi thường xuyên Do đó, hệ thống kiểm soát phiên bản cho phép developer có thể quay lại (revert) phiên bản source code cũ hơn Cuối cùng, đôi khi cũng có trường hợp nhiều dự án chạy song song cùng liên quan đến một codebase Trong trường hợp như vậy, khái niệm phân nhánh trong Git là cực kỳ quan trọng
3.1.2 Workflow khi làm việc với Git
Clone git repository ở git server về máy local của bạn (clone remote repository => local repository)
Tạo mới local branch như một nơi làm việc (workspace) của riêng bạn
Chỉnh sửa source code (thêm, xóa, sửa files)
Kiểm tra các thay đổi source code Thường ở bước này mình sẽ tạo một pull request
từ branch của mình vào branch chính (master) => Review code
Sau khi review code ok, không có vấn đề => Commit code (lúc này vẫn ở local branch)
Sau đó push code để đẩy code từ local lên remote server git Lúc này local branch của
Trang 11bạn đã liên kết với remote branch và được lưu ở git server.
3.1.3 Ứng dụng Git vào website Lớp học trực tuyến
Thành viên trưởng nhóm đã tạo 1 Repostiory trên github.com - nơi lưu trữ chứa mã nguồn (source code) và tất cả thông tin liên quan đến việc sửa đổi và lịch sử của toàn bộ project (dự án)
Trang 12Tất cả thành viên đều có nhiệm vụ dung Git Clone để lấy source code từ remote repository ở git server về máy local Sau đó tạo một branch mới để
code các chức năng trong dự án
Khi nhóm làm một tính năng (feature) mới nhóm có
thể tạo ra một branch riêng để code cho feature này Sau
khi feature hoàn thành ta có thể merge code vào branch
chính (master)
Hoặc trong team có nhiều team members nhóm có thể chia repository thành nhiều branch Với mỗi branch cho một người
Việc chia thành các branch riêng biệt rất tiện lợi cho việc làm việc theo nhóm và tách biệt source code, cùng lúc chỉnh sửa trên 1 repository
Trang 13Thành viên nhóm dùng Git commit để ghi lại sự thay đổi của các files trong source code (add, update, remove) kèm với messages tương ứng Nhóm có thể xem lại lịch sử của các lần commit trước đó để biết có sự thay đổi gì trong source code Ở đây nhóm đã dùng TortoiseGit để xem các sự thay đổi
Trang 14Sau khi chia nhánh và hoàn thiện chức năng, mỗi thành viên sẽ dung Git push đẩy dữ liệu từ local repository lên remote repository (git server) Dữ liệu ở đây bao gồm các files thay đổi, các branchs mới, các thông tin chung về git Sau đó dùng lệnh git merge cho phép merge các branch lại với nhau
3.2 JIRA
3.2.1 Ứng Dụng của Jira
Quản lý, theo dõi tiến độ của dự án
Quản lý lỗi, tính năng, công việc, những cải tiến hoặc bất kỳ vấn đề gì
Tìm kiếm nhanh chóng với bộ lọc JIRA Query Language
Xây dựng quy trình làm việc tương thích với yêu cầu của từng dự án
Cung cấp nhiều loại báo cáo thống kê với rất nhiều loại biểu đồ khác nhau phù hợp với nhiều loại hình dự án, nhiều đối tượng người dùng
Dễ dàng tích hợp với các hệ thống khác (như Email, Excel, RSS…)
Có thể chạy trên hầu hết các nền tảng phần cứng, hệ điều hành và cơ sở dữ liệu
3.2.2 Vì sao nên dùng Jira
Dễ dàng lựa chọn nhiều loại dự án với các mục đích khác nhau
Dễ dàng lên kế hoạch, phân chia nhiệm vụ cho các thành viên
Tạo ra quy trình làm việc hiệu quả
Dễ dàng quản lý nhiều dự án phần mềm cùng lúc
Bộ lọc JIRA Query Language giúp tìm kiếm nhanh chóng
Dễ dàng đưa ra các báo cáo phân tích tình hình dự án một cách nhanh chóng, chính xác và hiệu quả
Hơn 950 add-on mang đến các tính năng nâng cao
Giao diện thân thiện, rõ ràng, dễ thao tác, thích hợp với mọi đối tượng người sử dụng
3.2.3 Các thành phần cơ bản của Jira
Roles: Xác lập các role của dự án, Mục này xác nhận ai tham gia vào dự án, những người add vào role thì mới có thể tạo Resource Allocation và project team sau này Nhiều người có thể vào 1 role
Issue: là các tasks, các bugs, các features hay bất kỳ các type khác của project work
Project: Chức năng này dùng để phân quyền approve worklog cho thành viên của dự
Trang 15án Ai là team lead của group nào thì sẽ được approve worklog cho member của group đó Project management được quyền approve cho toàn bộ thành viên dự án
Component là sản phẩm của dự án Ở đây sẽ nhập tất cả sản phẩm của dự án lấy từ file kế hoạch doanh số Nếu dự án làm theo Scrum thì sẽ là Product của Sprint tương ứng
Workflow: Là một quản trị JIRA, bạn có thể cấu hình gây nên quy trình làm việc, điều kiện, xác nhận, và sau chức năng Trang này sẽ cung cấp một cái nhìn tổng quan
và các bước cơ bản cho từng phần của công việc của bạn
Priority: Là mức độ ưu tiên của một defect Có 4 mức, chọn theo datalist
Status: Đại diện cho các vị trí của vấn đề trong workflow
Resolution
3.2.4 Ứng dụng Jira vào website Lớp học trực tuyến
Jira giúp nhóm quản lý những điều cần phải làm trong 1 workflow cụ thể
Sau đó từng công việc sẽ được phân phối theo từng giai đoạn của workflow
Trang 16CHƯƠNG 4: TỔNG KẾT BÁO CÁO DỰ ÁN
4.1 Kết Quả Đạt Được
Dự án website lớp học trực tuyến đã ứng dụng tốt 2 phần mềm Git và Jira để quản lý công việc 1 cách chuyên nghiệp và hiệu quả
4.2 Những gì còn thiếu sót, chưa đạt
Dự án chưa dùng hết tất cả các tính năng của 2 phần mềm, do đó còn bỏ sót rất nhiều tính năng hay ho của công cụ để có thể làm việc 1 cách hiệu quả hơn, chi tiết hơn và đạt đến sự rủi ro thấp nhất
4.3 Đánh Giá Phần Mềm Git vs Jira
4.3.1 Ưu Điểm
Dễ sử dụng: Giao diện đơn giản và dễ sử dụng, giúp cho giáo viên và học sinh dễ dàng thao tác và sử dụng nền tảng
Jira có chức năng phân quyền cực kỳ chi tiết, không chỉ phân quyền trong dự án chung, mà còn phân quyền đối với từng nhiệm vụ, giúp team công nghệ bảo vệ thông tin độc quyền của mình
Trang 174.3.2 Nhược Điểm
Tốn nhiều thời gian và công sức để setup nên chỉ phát huy tối ưu hiệu quả với dự án lớn, không phù hợp với dự án vừa và nhỏ (dưới 3 tháng)
Ngôn ngữ tiếng Anh với nhiều thuật ngữ khó sử dụng
Quy trình làm việc phức tạp đòi hỏi phải tìm hiểu kỹ lưỡng
4.4 Hướng Phát Triển Trong Tương Lai
Sử dụng hết 100% chức năng của phần mềm
Ứng dụng tốt vào tất cả dự án của bản than cũng như công ty sắp tới
Trang 18TÀI LIỆU THAM KHẢO
1 https://git-scm.com/
2 https://www.ilook.asia/thu-thuat/download/kien-thuc-ve-git-phan-1-nhung-khai-niem-va-thuat-ngu-co-ban-ve-git-90.html
3 https://backlog.com/git-tutorial/creating-a-repository/
4 https://vn.got-it.ai/blog/huong-dan-cach-tao-branch-trong-git
5 https://www.tutorialspoint.com/git/git_life_cycle.htm#
6 https://github.com/Kunena/Kunena-Forum/wiki/Create-a-new-branch-with-git-and-manage-branches
7 https://backlog.com/git-tutorial/vn/intro/intro1_3.html
8 https://www.atlassian.com/git/tutorials/syncing/git-push
9 https://xuanthulab.net/lenh-git-merge-va-rebase-gop-va-viet-lai-lich-su-commit.html