Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Xây dựng website bán tour du lịch có hỗ trợ thanh toán trực tuyến...

Tài liệu Xây dựng website bán tour du lịch có hỗ trợ thanh toán trực tuyến

.PDF
70
1
52

Mô tả:

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGUYỄN TRUNG HIẾU - 19521508 NGUYỄN TIẾN DŨNG - 19521398 BÁO CÁO ĐỒ ÁN 1 XÂY DỰNG WEBSITE BÁN TOUR DU LỊCH CÓ HỖ TRỢ THANH TOÁN TRỰC TUYẾN Building a website to sell tours with online payment support GIẢNG VIÊN HƯỚNG DẪN THS. THÁI THỤY HÀN UYỂN TP. HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM NGUYỄN TRUNG HIẾU – 19521508 NGUYỄN TIẾN DŨNG – 19521398 BÁO CÁO ĐỒ ÁN 1 XÂY DỰNG WEBSITE BÁN TOUR DU LỊCH CÓ HỖ TRỢ THANH TOÁN TRỰC TUYẾN Building a website to sell tours with online payment support GIẢNG VIÊN HƯỚNG DẪN TH.S THÁI THỤY HÀN UYỂN TP. HỒ CHÍ MINH, 2022 ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG ĐẠI HỌC Độc Lập – Tự Do – Hạnh Phúc CÔNG NGHỆ THÔNG TIN TP. HCM, ngày 15 tháng 6 năm 2022 ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Xây dựng website bán tour du lịch có hỗ trợ thay toán Tên đề tài (tiếng Anh): Building a website to sell tours with online payment support Cán bộ hướng dẫn: Th.s Thái Thụy Hàn Uyển Sinh viên thực hiện: Nguyễn Tiến Dũng – 19521398 Nguyễn Trung Hiếu - 19521508 Nội dung đề tài: 1. Mục tiêu Xây dựng website bán tour du lịch với các chức năng: • Phía bên client o Xem thông tin tour du lịch o Tìm kiếm tour o Đặt tour, thanh toán • Phía bên admin: o Quản lý tour du lịch o Quản lý các điểm đến o Quản lý các đơn đặt tour 2. Phạm vi • Phạm vi môi trường: Xây dựng hệ thống trên môi trường website • Phạm vi chức năng: o Đặt Tour o Quản lý tour o Quản lý điểm đến o Quản lý đơn hàng 3. Đối tượng: Người có nhu cầu đi du lịch 4. Công nghệ • Front-end: ReactJs • Back-end: NodeJs, ExpressJs • Database: MySQL 5. Phương pháp thực hiện • Tìm hiểu về công nghệ • Phân tích thiết kế hệ thống • Xây dựng CSDL • Xây dựng backend • Xây dựng frontend • Tiến hành kiểm thử và bảo trì 6. Kết quả mong đợi • Xây dựng được ứng dụng với tất cả các yêu cầu được đặt ra • Giao diện ứng dụng thân thiện, dễ sử dụng • Ứng dụng dễ dàng phát triển và mở rộng trong tương lai Kế hoạch thực hiện Thời gian Nội dung Phân công 21/03/2022 - 11/03/2022 Tìm hiểu đề tài, đánh Nguyễn Tiến Dũng giá thị trường, xác định Nguyễn Trung Hiếu các chức năng của hệ thống 12/03/2022 - 26/03/2022 Tìm hiểu công nghệ Nguyễn Tiến Dũng Nguyễn Trung Hiếu 27/03/2022 – 16/04/2022 Phân tích thiết kế hệ thống Nguyễn Tiến Dũng Nguyễn Trung Hiếu 17/04/2022 – 29/05/2022 Xây dựng website Nguyễn Tiến Dũng: Xây dựng frontend bên phía client Nguyễn Trung Hiếu: Xây dựng frontend bên phía admin, xây dựng backend 30/05/2022 – 08/06/2022 Kiểm thử và sửa lỗi Nguyễn Tiến Dũng Nguyễn Trung Hiếu 09/06/2022 – 15/06/2022 Hoàn thành báo cáo Xác nhận của CBHD (Ký tên và ghi rõ họ tên) ThS. Thái Thụy Hàn Uyển Nguyễn Tiến Dũng TP. HCM ngày 15 tháng 6 năm 2022 Sinh viên (Ký tên và ghi rõ họ tên) Nguyễn Tiến Nguyễn Trung Dũng Hiếu LỜI CẢM ƠN Để hoàn thành được dự án cho môn đồ án 1 này, chúng em xin gửi lời cảm ơn chân thành đến Ths Thái Thụy Hàn Uyển đã tận tình hướng dẫn, giúp đỡ và định hướng xuyên suốt quá trình hoàn thành đồ án. Những lời góp ý, nhắc nhở của cô là những hành trang và tiền đề cho chúng em trong quá trình học tập và phát triển bản thân sau này.Chúng em cũng xin gửi lời càm ơn đến Khoa Công Nghệ Phần Mềm đã tạo điều kiện cho chúng em được học tập trong môi trường tốt nhất. Trong quá trình làm đồ án này chúng em có thể vẫn còn những thiết sót, mong nhận được góp ý và chỉ dẫn cùa cô để đồ án của chúng em có thể hoàn thiện hơn TP. HCM, ngày 12 tháng 06 năm 2022 Sinh viên thực hiện Sinh viên thực hiện NGUYỄN TIẾN DŨNG NGUYỄN TRUNG HIẾU MỤC LỤC Chương 1. MỞ ĐẦU ................................................................................................1 1.1. Lý do chọn đề tài ..........................................................................................1 1.2. Pham vi nghiên cứu .....................................................................................1 1.3. Đối tượng nghiên cứu ..................................................................................1 Chương 2. CƠ SỞ LÝ THUYẾT ............................................................................2 2.1. React .............................................................................................................2 2.1.1. React là gì ..............................................................................................2 2.1.2. Tại sao sử dụng React ...........................................................................2 2.1.3. Một số khái niệm ...................................................................................2 2.1.4. Một số React Hook phổ biến ................................................................5 2.1.5. React Router Dom ................................................................................5 2.2. NodeJs ...........................................................................................................5 2.2.1. NodeJs là gì? ..........................................................................................5 2.2.2. Tính năng vượt trội của NodeJs ..........................................................6 2.2.3. Khi nào nên sử dụng NodeJs ...............................................................6 2.3. ExpressJs ......................................................................................................6 2.3.1. ExpressJs là gì .......................................................................................6 2.3.2. ExpressJs được sử dụng làm gì? .........................................................7 2.4. MySQL .........................................................................................................7 2.4.1. MySQL là gì? ........................................................................................7 2.4.2. Ưu điểm của MySQL ............................................................................8 2.5. Các phần mềm và công nghệ khác .............................................................8 2.5.1. Visual Studio Code................................................................................8 2.5.2. GitHub ...................................................................................................8 2.5.3. VietQR ...................................................................................................9 Chương 3. PHÂN TÍCH THIẾT KẾ HỆ THỐNG .............................................10 3.1. Kiến trúc hệ thống .....................................................................................10 3.2. Sơ đồ Use case ............................................................................................10 3.2.1. Sơ đồ Usecase ......................................................................................10 3.2.2. Danh sách Actor ..................................................................................12 3.2.3. Danh sách Use case .............................................................................12 3.2.4. Đặc tả use case .....................................................................................13 3.3. Sơ đồ Sequence...........................................................................................25 3.4. Cơ sở dữ liệu...............................................................................................40 3.4.1. Lược đồ cơ sở dữ liệu..........................................................................40 3.4.2. Chi tiết các bảng dữ liệu .....................................................................41 3.5. Thiết kế giao diện .......................................................................................46 3.5.1. Danh sách các trang trong hệ thống .................................................46 3.5.2. Giao diện khách hàng .........................................................................48 3.5.3. Giao diện quản lý ................................................................................53 Chương 4. KẾT LUẬN ..........................................................................................57 4.1. Kết quả đạt được .......................................................................................57 4.1.1. Về mặt nghiên cứu ..............................................................................57 4.1.2. Về mặt sản phẩm.................................................................................57 4.2. Ưu điểm ......................................................................................................57 4.3. Nhược điểm ................................................................................................57 4.4. Hướng phát triển .......................................................................................57 DANH MỤC HÌNH Hình 2.1: Logo của React...........................................................................................2 Hình 2.2 React component lifecycle ..........................................................................4 Hình 2.3: Logo của NodeJs ........................................................................................6 Hình 2.4: ExpressJs ....................................................................................................6 Hình 2.5: MySQL.......................................................................................................8 Hình 3.1: Sơ đồ kiến trúc hệ thống ..........................................................................10 Hình 3.2: Sơ đồ use case tổng quát ..........................................................................10 Hình 3.3: Sơ đồ use case quản lý tour ......................................................................11 Hình 3.4: Sơ đồ use case quản lý điểm đến .............................................................11 Hình 3.5: Sơ đồ use case quản lý đơn hàng .............................................................12 Hình 3.6: Sequence Diagram use case “tìm kiếm tour” ...........................................26 Hình 3.7: Sequence Diagram use case “xem tour” ..................................................27 Hình 3.8: Sequence diagram use case “nhập thông tin liên hệ” ..............................28 Hình 3.9: Sequence Diagram use case "Thanh toán" ...............................................29 Hình 3.10: Sequence diagram use case "Đặt tour" ..................................................30 Hình 3.11: Sequence Diagram use case "Đăng nhập" .............................................30 Hình 3.12: Sequence diagram use case "Thêm điểm đến” ......................................31 Hình 3.13: Sequence diagram use case "Cập nhật điểm đến" .................................32 Hình 3.14: Sequence diagram use case “Xóa điểm đến" .........................................33 Hình 3.15: Sequence diagram use case “Thêm tour" ...............................................34 Hình 3.16: Sequence diagram use case “Cập nhật tour" ..........................................35 Hình 3.17: Sequence diagram use case “Xóa tour" .................................................36 Hình 3.18: Sequence diagram use case “Thêm ngày khởi hành" ............................37 Hình 3.19: Sequence diagram use case “Cập nhật ngày khởi hành" .......................38 Hình 3.20: Sequence diagram use case “xóa ngày khởi hành" ................................39 Hình 3.21: Sequence diagram use case “cập nhật đơn hàng” ..................................40 Hình 3.22: Cơ sở dữ liệu ..........................................................................................41 Hình 3.23: Giao diện màn hình trang chủ ................................................................48 Hình 3.24: Giao diện màn hình danh sách tour........................................................49 Hình 3.25: Giao diện màn hình chi tiết tour ............................................................50 Hình 3.26: Giao diện màn hình nhập thông tin liên hệ ............................................51 Hình 3.27: Giao diện màn hình thanh toán ..............................................................52 Hình 3.28: Giao diện trang không tồn tại.................................................................53 Hình 3.29: Giao diện màn hình đăng nhập ..............................................................53 Hình 3.30: Giao diện màn hình dashboard ..............................................................54 Hình 3.31: Giao diện màn hình quản lý tour............................................................55 Hình 3.32: Giao diện màn hình quản lý điểm đến ...................................................55 Hình 3.33: Giao diện màn hình quản lý thanh toán .................................................56 Hình 3.34: Giao diện màn hình phân tích ................................................................56 DANH MỤC BẢNG Bảng 3.1: Bảng danh sách các actor..........................................................................12 Bảng 3.2: Bảng mô tả ngắn các use case ..................................................................13 Bảng 3.3: Bảng đặc tả use case "tìm kiếm tour" .......................................................14 Bảng 3.4: Bảng đặc tả use case xem tour ..................................................................15 Bảng 3.5: Bảng đặc tả use case "nhập thông tin liên hệ" ..........................................16 Bảng 3.6: Bảng đặc tả use case "Thanh toán" ...........................................................17 Bảng 3.7: Bảng đặc tả use case "Đặt tour"................................................................17 Bảng 3.8: Bảng đặc tả use case đăng nhập ...............................................................18 Bảng 3.9: Bảng đặc tả use case thêm điểm đến ........................................................19 Bảng 3.10: Bảng đặc tả use case cập nhật điểm đến .................................................19 Bảng 3.11: Bản đặc tả use case xóa điểm đến ..........................................................20 Bảng 3.12: Bản đặc tả use case thêm tour.................................................................21 Bảng 3.13: Bản đặc tả use case cập nhật tour ...........................................................21 Bảng 3.14: Bảng đặc tả use case xóa tour .................................................................22 Bảng 3.15: Bảng đặc tả use case thêm ngày khởi hành ............................................23 Bảng 3.16: Bảng đặc tả use case cập nhật ngày khởi hành .......................................24 Bảng 3.17: Bảng đặc tả use case xóa ngày khởi hành ..............................................24 Bảng 3.18: Bảng đặc tả use case xem đơn đặt hàng .................................................25 Bảng 3.19: Bảng đặc tả use case cập nhật thanh toán ...............................................25 Bảng 3.20: Bảng mô tả các thông tin được lưu trữ ở CSDL .....................................41 Bảng 3.21: Bảng tours ...............................................................................................42 Bảng 3.22: Bảng detination .......................................................................................43 Bảng 3.23: Bảng chi tiết tour ....................................................................................43 Bảng 3.24: Bảng Lịch trình (Schedule) ....................................................................44 Bảng 3.25: Bảng payment .........................................................................................45 Bảng 3.26: Bảng user ................................................................................................46 Bảng 3.27: Bảng danh sách các màn hình ................................................................47 DANH MỤC TỪ VIẾT TẮT STT Từ viết tắt Từ đầy đủ 1 CSDL Cơ sở dữ liệu Giải thích Cơ sở dữ liệu (Database) 2 DOM Document Object Mô hình đối tượng tài Model liệu - một chuẩn được định nghĩa bởi Tổ chức Web toàn cầu. 3 URL Uniform Resource Locator Địa chỉ của một tài nguyên duy nhất trên Web 4 CRUD Create – Read – Thêm, đọc, sửa và xóa Update – Delete dữ liệu trên cơ sở dữ liệu Chương 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Trong những năm vừa rồi tình hình dịch covid diễn biến phức tạp, người dân trong nước không thể tự do ra ngoài. Cũng vì vậy, những hình thức mua bán trực tuyến và thanh toán hàng online càng trở nên phổ biến và quen thuộc hơn. Vài tháng trở lại đây, tình hình dịch đã nằm trong tầm kiểm soát, mọi hoạt động được quay trở lại như bình thường. Sau một thời gian không được thoải mái ra đường, nhu cầu được đi đây mai đó của mọi người cũng cao hơn. Hơn thế nữa, những thói quen mua hàng trực tuyến vẫn còn đó, vì vậy chúng em đã quyết định cho ra đời một website cung cấp các tour du lịch với hình thức thanh toán trực tuyến. 1.2. Pham vi nghiên cứu o Tìm hiểu bài toán về cung cấp các tour du lịch đến khách hàng. o Xây dựng website với phần frond-end sử dụng React, backend sử dụng NodeJs và MySQL cho việc lưu trữ dữ liệu. 1.3. - Đối tượng nghiên cứu Các công nghệ: • Ngôn ngữ lập trình: Javascript, TypeScript • JWT, React, NodeJs • MySQL - Đối tượng: • Khách hàng (người mua tour du lịch) • Admin (Người cung cấp tour du lịch) Trang 1 Chương 2. CƠ SỞ LÝ THUYẾT 2.1. React 2.1.1. React là gì React là một thư viện JavaScript được phát triển bởi Facebook, được sử dụng để phát triển giao diện người dùng (UI) có tính tương tác cao. React phát triển giao diện bằng cách chia giao diện thành các thành phần (components), nhờ đó các thành phần giao diện trùng lặp có thể tái sử dụng mà không cần phải code lại. React hiện được sử dụng bởi rất nhiều công ty lớn trên thế giới, bao gồm Neflix, Facebook, WhatsApp, Instagram… Hình 2.1: Logo của React 2.1.2. Tại sao sử dụng React o React là một thư viện có mã nguồn mở, dễ sử dụng. o React cho phép sử dụng lại components (Reusable Component) đã được phát triển trước đó o Có nhiều thư viện được xây dựng phù hợp cho các nhu cầu khác nhau o Cộng động lớn 2.1.3. Một số khái niệm a. Virtual Dom Virtual Dom là một DOM ảo, hoạt động tốt và đáng kể hơn so với DOM thực. Một ứng dụng React sẽ được xây dựng từ nhiều các component. Các component Trang 2 này sẽ chức hoặc không chứa những trạng thái (state). Khi trạng thái của một component bị thay đổi, React sẽ so sánh phiên bản sau khi bị thay đổi và phiên bản trước khi thay đổi và thực hiện cập nhật trên Virtual DOM. Quá trình này gọi là “Diffing”. b. JSX JSX là một dạng ngôn ngữ cho phép viết các mã HTML trong JavaScript với nhiều tính năng hỗ trợ lập trình viên: • Tốc độ nhanh: JSX thực hiện tối ưu hóa trong khi biên dịch sang mã JavaScript. Các mã này cho thời gian thực hiện nhanh hơn nhiều so với việc viết một mã tương đương trực tiếp bằng JavaScript. • An toàn: JSX là kiểu statically-typed, nghĩa là nó được biên dịch trước khi chạy. Vì thế các lỗi sẽ được phát hiện ngay trong quá trình biên dịch. • Dễ dàng hơn: JSX kế thừa dựa trên Javascript, vì vậy rất dễ dàng để cho các lập trình viên Javascripts có thể sử dụng c. Props và State Props là một từ viết ngắn gọn của properties. Trong React, props là một đối tượng lưu trữ giá trị được truyền từ bên ngoài vào bên trong component, thường là truyền từ componet cha đến component con. Khác với props, state được dùng để lưu trữ dữ liệu của chính component đó, giá trị của state có thể thay đổi và sẽ component sẽ được render lại ngay sau khi state thay đổi. d. Component Lifecycle Trang 3 Hình 2.2 React component lifecycle Để lập trình một ứng dụng React, thì việc nắm rõ vòng đời của một component sẽ giúp lập trình viên lập trình quản lí dữ liệu tốt hơn. Vòng đời của một component sẽ bao gồm ba nhóm chính: • Mouting: là giai đoạn mà component được khởi tạo và mount on the DOM (chèn vào DOM) • Updating: giai đoạn các state của componet thay đổi, component sẽ render lại. • Unmouting: component được unmout DOM (xóa khỏi DOM) d. React Hook Những người mới tiếp xúc với React lần đầu, sẽ cảm thấy rất bối rối trong việc làm quen với lifecycle của component. Hơn thế, việc sử dụng các component với các hàm trong lifecycle cũng khiến nhiều lập trình viên dù đã có kinh nghiệm những vẫn sẽ gặp nhiều khó khăn. Nhận thấy điều này, React đã cho ra đời React Hook. Với Hook, lập trình viên có thể dễ dàng quản lý state mà không cần sử dụng đến class. Trang 4 2.1.4. Một số React Hook phổ biến a. UseState UseState là một hàm nhận vào một tham số là giá trị khởi tạo của state và trả về một mảng gồm hai phần tử. Phần tử thứ nhất là state hiện tại. phần tử thứ 2 là một hàm sử dụng để cập nhật state. b. UseEffect UseEffect là một hàm nhận vào hai tham số. Tham số thứ nhất là một hàm, tạm gọi là callback. Tham số thứ hai sẽ là một mảng mảng hoặc không có gì cả. Callback sẽ được gọi mặc dịnh lần đầu tiên khi component được mout vào DOM, sau khi render xong component. Nếu như không truyền tham số thứ hai cho useEffect, callback sẽ được gọi mỗi khi component rerender. Nếu như tham số thứ 2 là mảng, callback được gọi mỗi khi mảng đó thay đổi. c. UseContext UseContext được sinh ra để giải quyết việc chia sẻ các state giữa các component. UseContext có thể giúp lưu trữ các state ở toàn cục, giúp cho tất cả các component con bên trong context đều có thể lấy state ở bất kỳ đâu. 2.1.5. React Router Dom React không tích hợp sẵn router, nhưng chúng ta có thể làm điều này bằng cách cài đặt thư viện React Router Dom. Thư viên này cho phép thay đổi URL của trình duyệt và render ra giao diện tương ứng. 2.2. NodeJs 2.2.1. NodeJs là gì? Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng trên V8 JavaScript Engine – một trình thông dịch thực thi mã JavaScript. NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ Windows cho tới Linux, MacOs nên đó cũng là một lợi thế. NodeJs hỗ trợ nhiều thư viện giúp việc lập trình trở nên đơn giản hóa. Trang 5 Hình 2.3: Logo của NodeJs 2.2.2. Tính năng vượt trội của NodeJs • Thực thi các sự kiện không đồng bộ, cho phép xử lí nhiều yều cầu đồng thời • Nodejs được xây dựng dựa vào nền tảng V8 Javascript Engine nên việc thực thi chương trình rất nhanh 2.2.3. Khi nào nên sử dụng NodeJs • Xây dựng ứng dụng Restful API • Các ứng dụng cần về thời gian thực • Các chương trình upload file với tốc độ cao 2.3. ExpressJs 2.3.1. ExpressJs là gì ExpressJs là một framework mã nguồn mở miễn phí cho NodeJs. ExpressJs được sử dụng trong thiết kế và xây dựng các ứng dụng web một cách đơn giản và nhanh chóng. Để hiểu và sử dụng ExpressJs, lập trình viên chỉ cần biết về JavaScript, do đó việc xây dựng website sẽ càng dễ dàng hơn đối với các lập trình viên đã biết về JavaScript trước đó. Hình 2.4: ExpressJs Trang 6 2.3.2. ExpressJs được sử dụng làm gì? ExpressJS sẽ giúp bạn tổ chức kiến trúc back-end của mình. ExpressJs có thể triển khai website với mô hình MVC – một mô hình web phổ biến, giúp cho việc bảo trì tương đối dễ dàng. Một số tính năng của ExpressJs: • Phát triển máy chủ nhanh hơn: cung cấp cho bạn nhiều tính năng phổ biến của Node.js dưới dạng hàm có thể dễ dàng sử dụng ở bất kỳ đâu trong chương trình. Điều này sẽ giúp rút ngắn thời gian để viết code. • Định tuyến: cung cấp cơ chế định tuyến cao giúp duy trì trạng thái của trang web. • Khuôn mẫu: cung cấp các công cụ tạo khuôn mẫu cho phép các nhà phát triển tạo nội dung động trên các trang web bằng việc xây dựng các mẫu HTML ở phía máy chủ. • Gỡ lỗi: cung cấp một cơ chế có khả năng xác định chính xác phần ứng dụng web có lỗi. 2.4. MySQL 2.4.1. MySQL là gì? MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (gọi tắt là RDBMS) hoạt động theo mô hình client-server. Với RDBMS là viết tắt của Relational Database Management System. MySQL được đánh giá cao nhờ việc tích hợp với Apache và PHP. Không chỉ vậy, việc có tính tương thích với nhiều trình duyệt, với nhiều hệ điều hành tiêu biểu như Ubuntu, Linux, macOS, Windows càng giúp việc sử dụng MySQL được tin tưởng và ưa chuộng nhiều hơn. Trang 7 Hình 2.5: MySQL 2.4.2. Ưu điểm của MySQL MySQL được ưa chuộc trong các ứng dụng website nhờ một số ưu điểm sau: o MySQL là một cơ sở dữ liệu tốc độ cao, ổn định dễ sử dụng và có thể hoạt động được trên nhiều hệ điều hành khác nhau. o MySQL có độ bảo mật cao, thích hợp cho các ứng dụng truy cập CSDL trên internet. o Có khả năng xử lý rất nhiều dữ liệu và có thể mở rộng nếu cần thiết. o MySQL hoàn toàn miễn phí sử dụng 2.5. Các phần mềm và công nghệ khác 2.5.1. Visual Studio Code Visual Studio Code là một trình soạn thảo mã nguồn được phát triển bởi Microsoft dành cho Windows, Linux và macOS. Nó hỗ trợ chức năng debug, đi kèm với Git, có chức năng nổi bật cú pháp (syntax highlighting), tự hoàn thành mã thông minh, snippets, và cải tiến mã nguồn. Nó cũng cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt, và các tùy chọn khác. Nó miễn phí và là phần mềm mã nguồn mở theo giấy phép MIT, mặc dù bản phát hành của Microsoft là theo giấy phép phần mềm miễn phí. 2.5.2. GitHub GitHub là một hệ thống quản lý dự án và phiên bản code, GitHub được coi giống như một mạng xã hội dành riêng cho các lập trình Trang 8
- Xem thêm -

Tài liệu liên quan