NHIỆM VỤ CÁC THÀNH VIÊN TRONG NHÓMNguyễn Bá Đức45.01.104.056Tìm kiếm tài liệu, link, vẽ sơ đồ tư duy và thực thi chương trìnhPhạm Thị Xuân Tấn45.01.104.209Tìm kiếm tài liệu, nghiên cứu v
Trang 23 Nguyễn Tuấn Phong – 45.01.104.174
4 Huỳnh Hoàng Lam – 45.01.104.120
Học Phần: Công Nghệ Phần Mềm – COMP104402
Trang 3MỤC LỤC
PHẦN I MỞ ĐẦU 2
Đề tài: 2
1 Tính cấp thiết của đề tài 2
2 Mục đích đề tài 2
3 Đối tượng nghiên cứu 2
4 Phạm vi nghiên cứu 2
5 Lý do chọn đề tài 2
6 Phương pháp nghiên cứu 2
7 Kết cấu tiểu luận 2
PHẦN II NỘI DUNG 2
CHƯƠNG 1 TỔNG QUAN VỀ CÀI ĐẶT VÀ THỬ NGHIỆM 2
1.1 Khái niệm 2
1.2 Cài đặt 2
1.3 Thử nghiệm: 2
1.4 Kết quả 2
CHƯƠNG 2 SƠ ĐỒ TƯ DUY HỆ THỐNG HÓA TÀI LIỆU 2
CHƯƠNG 3 NGHIÊN CỨU CÁCH THỰC HIỆN VÀ TẠO PROJECT 2
3.1 Quá trình tìm hiểu xây dụng và cài đặt xây dựng project 2
3.2 App To-Do React 2
PHẦN III XÂY DỰNG ĐỒ ÁN 2
Mô phỏng trang web chat Real-times 2
KẾT LUẬN 2
Tài liệu kham khảo 2
Trang 4NHIỆM VỤ CÁC THÀNH VIÊN TRONG NHÓM
Trang 5PHẦN I MỞ ĐẦU
Đề tài:
Tìm hiểu công nghệ React JS trong môi trường WEB
1 Tính cấp thiết của đề tài
Ngày nay, sự phát triển của phần mềm thật sự khó kiểm soát, các dự án phần mềmthường kéo dài và vượt quá chi phí cho phép Những nhà lập trình chuyên nghiệp phải cốgắng hoàn thành các dự án phần mềm một cách chất lượng, đúng hạn và trong chi phí chophép
Tìm hiểu công nghệ React JS trong xây dựng Web Cách cài đặt và thực hiện các câu lệnhnhư thế nào Cách xây dựng một Project và có thể đưa lên Github, thực thi và sử dụng phầnmềm Qua đó khi sử dụng Github ta được trang bị kỹ năng quản lý phiên bản trong một dự
án, đặc biệt là khi các thành viên tham gia có những khoảng cách lớn về mặt địa lý
Công nghệ React JS phát triển ứng dụng Web và thực thi mô phỏng chương trình
Phần mềm được thực thi và mô phỏng trong quá trình tìm hiểu và nghiên cứu, nên phạm
vi hoạt động còn nhiều hạn chế nên chỉ có thể thực thi trong trường học và doanh nghiệpnhỏ
5 Lý do chọn đề tài
Trong quá trình phát triển phần mềm, chúng ta thường sẽ gặp phải nhiều vấn đề như:
Làm thế nào để quản lý được các phiên bản của quá trình quản lý phần mềm?
Làm thế nào để quản lý mã nguồn chung cho cả nhóm?
Phần code này là của ai viết, người nào phải chịu trách nghiệm khi có lỗi xảy ra?
Khách hàng muốn sử dụng lại một phiên bản đã phát hình cũ thì làm như thế nào?
…
Để giải quyết được vấn đề đó, chúng ta có thể sử dụng các công cụ quản lý phiên bản và
hỗ trợ từ Github, với công cụ này, toàn bộ phiên bản có thể được lưu trữ trên một thư mục(Repository) và tất cả các thành viên tham gia dự án có thể thực hiện các thao tác đưa thay đổilên, cập nhật thay đổi về, cập nhật những thay đổi, lấy về những thay đổi do các thành viên kháccập nhật trước đó,
Hơn thế nữa việc quản lý cấu hình tốt sẽ đem lại nhiều lợi ích:
Giảm thiểu sự nhầm lẫn, tổ chức và quản lý tốt hơn các khoản mục phần mềm
Tổ chức các hoạt động cần thiết để đảm bảo tính toàn vẹn của nhiều sản phẩm phần mềm
Đảm bảo tính nguyên vẹn cấu hình hiện tại của sản phẩm
Tối ưu hóa chi phí phát triển, bảo trì và hỗ trợ sau bán hàng
Trang 6 Cung cấp môi trường phát triển, bảo trì, thử nghiệm và sản xuất ổn định
Nâng cao chất lượng và tuân thủ các tiêu chuẩn kỹ thuật phần mềm
Giảm chi phí làm lại những thành phần đã thực hiện trước đó
…
- Tìm kiếm thông tin
- Đọc hiểu tài liệu
- Cài đặt và thực thi project đầu tiên
7 Kết cấu tiểu luận
- Cài đặt chương trình, tạo Project đầu tiên và phát triển sơ đồ tư duy
- Tìm hiểu, nghiên cứu các thực hiện chương trình
- Xây dựng Project
Trang 7PHẦN II NỘI DUNG CHƯƠNG 1 TỔNG QUAN VỀ CÀI ĐẶT VÀ THỬ NGHIỆM
1.1 Khái niệm
React Js là một thư viện javascript dùng để xây dựng UI, UI ở đây được dùng chính ở 2 nền tảng Web và Mobile Ở lĩnh vực Web, sử dụng React Js có thể đem lại trải nghiệm tốt cho người dùng, cũng như khả năng Hot Reload giúp bạn lập trình nhanh hơn.
1.2 Cài đặt
Hướng dẫn cài đặt JS và thử nghiệm chương trình “Hello Word”
Trước hết ta cần phải cài đặt môi trường React JS về máy để sử dụng cho trang web:
Đầu tiên ta cần cài đặt node.js về máy
Node.js là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, nó được sửdụng để xây dựng các ứng dụng web như các trang video clip, các forum và đặc biệt là trangmạng xã hội phạm vi hẹp NodeJS là một mã nguồn mở được sử dụng rộng bởi hàng ngàn lậptrình viên trên toàn thế giới
Bước 1: Cài đặt bộ cài app React
Có thể cài ở bất kỳ ổ đĩa hay thư mục nào bằng lệnh cmd.
Ta gõ câu lệnh sau trong cmd: npm install -g create-react-app
Bước 2: Tạo project React.js trong ổ đĩa với tên D react-project.
Ta lần lượt tiến hành: trỏ vào ổ đĩa D
Trang 8Chạy lệnh tạo project với tên bất kỳ, ví dụ đặt tên react-project như sau:
create-react-app react-project
Khi này sẽ xuất hiện một thư mục react-project bên trong ổ đĩa D, chứa các file và thư mục như
sau:
Trang 9Bước 3: Thực thi lệnh chạy project
Ta lần lượt tiến hành: trỏ vào thư mục react-project với lệnh cmd sau: cd react-project Thực thi chạy project React bằng lệnh: npm start
Như vậy là hoàn thành các bước cài đặt React để sử dụng
1.3 Thử nghiệm:
Chạy ví dụ “Hello World”
Ta vào thư mục scr tạo 1 folder components
Trang 10Trong folder components ta tạo 1 file đặt tên là Hello.js với nội dung như sau:
Sau khi nhập xong ta qua file App.js và điền thêm import và gọi hàm như sau:
Sau đó ta reload lại trang web ta đã thực thi.
Trang 111.4 Kết quả
Trang 12CHƯƠNG 2 SƠ ĐỒ TƯ DUY HỆ THỐNG HÓA TÀI LIỆU
Trang 13CHƯƠNG 3 NGHIÊN CỨU CÁCH THỰC HIỆN VÀ TẠO PROJECT
Bước 1: Cài đặt package create-react-app
Bước 2: Tạo app react cho chính bạn
Điều này tạo ra ứng dụng react, với tất cả các function cần thiết mà bạn cần Đã được tích hợp
sẵn trong ứng dụng với tên-app-của-bạn
Trang 14Khi quá trình xử lý hoàn tất, bạn sẽ có thể thấy như sau:
Bước 3: Đi đến thư mục tên-app-của-bạn
Bước 4: Start bằng npm và kiểm tra xem app có hoạt động không
Bạn thấy kết quả sau trong terminal
Trang 15Là trang localhost hiển thị như sau
Web localhost hiển thị
Bây giờ, hãy chuyển sang xây dựng App To-Do
3.1 App To-Do React
- Phân tích: Tạo một app To Do List với chức năng đơn giản như thêm/ xóa danh sách công
Các thư mục bạn cần làm việc là thư mục src và thư mục public
Trang 16Structure of the created App
- Component
Package.json: Đây là tệp thực thi chính chứa tất cả thông tin ứng dụng của bạn, các dependency, các tập lệnh đã cài đặt, v.v Không app nào có thể được thực thi nếu không có tệp này.
- Public -> index.html: Điều này chỉ đơn giản là để xác định giao diện app của bạn với
tham chiếu đến cả kiểu (style.css) và xử lý (index.js) Ngoài index.html, chỉ cần tệp manifest.json trong thư mục chung.
Trang 17Lưu ý: div với id là “root” Dưới div này, tất cả nội dung của ứng dụng react của bạn sẽ được
xuất ra Bạn không cần phải thay đổi điều đó mà chỉ cần biết vị trí dữ liệu sẽ được đặt trong tệp
- Src -> index.js: Ở đây, chúng ta đang import React và ReactDOM Chúng ta cũng đang
render mọi thứ về phần tử ‘root’ Bạn cũng không cần phải chạm hoặc thay đổi tệp này, nhưng chỉ cần biết rằng đây là cách cấu trúc của tệp.
index.js file
- Src -> styling files (style.css, index.css): Các tệp này để tùy chỉnh style để làm cho giao
diện người dùng trông đẹp Hãy tùy chỉnh nó theo sở thích của bạn.
Như đã đề cập, React có một khả năng tuyệt vời để mô-đun hóa code trong các componentriêng biệt Mặc dù bạn có thể tạo tất cả các component của mình trong một tệp App.js duy nhấtnhưng để tránh App.js dài và để viết clean code, bạn nên tạo một thư mục component và giữ cáctệp js riêng biệt cho từng component bạn cần
- Src -> App.js: Đây là tệp xử lý chính Chúng ta import tất cả các class cần thiết và các
mô-đun thấp hơn tại đây.
Trang 18Giải thích
Class App extends Components: syntax này cũng sẽ được sử dụng trong mỗi component khác
của chúng ta Về cơ bản, điều này nói lên rằng bất kỳ attribute (thuộc tính) nào có trong React.Component, sẽ được mở rộng (về khả năng truy cập và sử dụng) thông qua App Class
Constructor(): Phương thức đầu tiên chúng ta gọi sau khi mở rộng component là phương thức
khởi tạo constructor cho một component React được gọi trước khi nó được mout Khi triển khai constructor cho lớp con React.Component, bạn nên gọi super (props) trước bất kỳ câu lệnh nào khác Nếu không, this.props sẽ không được xác định trong constructor, điều này có thể dẫn đến lỗi.
HandleChange():Như tên đã nói (Hãy nhớ: đặt tên là 90% của chương trình), đây là một
phương pháp được sử dụng để xác định cách App sẽ thực hiện bất kỳ thay đổi state nào (đã chọn / bỏ chọn các tác vụ trong trường hợp này).
- Src -> TodoItem.js : Tệp này được chuẩn bị dưới dạng mô-đun thấp hơn của App.js Để
xác định component của một mục cụ thể trong to-do-list
- Src -> todosData.js: Tệp này lại được tôi tạo dưới dạng tệp data Và nếu phải thêm /
xóa một công việc cụ thể khỏi công việc cần làm của mình, cần hard code nó trong file
dữ liệu (kể từ bây giờ).
Cuối cùng là Kiểm tra: Kiểm chứng các thành phần của app
Trang 20PHẦN III XÂY DỰNG ĐỒ ÁN
Mô phỏng trang web chat Real-times
Nhóm em chọn đề tài: “ Tìm hiểu về ReactJS và xây dựng trang web chat Real-times”
Trang web chat Real-times hỗ trợ cho người dùng có không gian trò chuyện trực tuyếncùng bạn bè gần xa thông qua internet
Các tính năng chính của trang web bao gồm:
- Đăng nhập bằng Google/Facebook
- Quản lý các phòng chat
- Thêm thành viên vào phòng chat
- Hiển thị danh sách thành viên trong phòng chat
- Nhắn tin
Các component của app bao gồm:
ChatRoom: là giao diện phòng chat.
Login: Giao diện đăng nhập.
Modals: chức năng thêm phòng chat, mời thêm người dùng vào phòng chat.
Trang 21Khi vô trang web sẽ bắt đầu ở trang login, ở đây ta có thể đăng nhập bằng tài khoản Google hoặcFacebook
Sau khi đăng nhập xong sẽ chuyển hướng sang trang chat:
Web chat bao gồm các thành phần sau:
- Thanh sidebar các phòng chat ở phía bên trái
Trong thanh sidebar thì gồm có danh sách các phòng mà người dùng tạo ra, nút thêm phòng để thêm các phòng chat cho người dùng dễ quản lý và nút đăng xuất (thoát khỏi tàikhoản)
- Khu vực chat là phần còn lại bao gồm 1 thanh sidebar nhỏ ở phía trên chứa tên phòng chat, mô tả của phòng chat và có 1 nút mời phía bên phải để mời thêm bạn bè vào phòng chat Và ở dưới cùng là thanh input để nhập nội dung đoạn chat vào đây
Trang 22Để mà tạo phòng chat ta nhấn vào nút thêm phòng và điền các thông tin sau Bao gồm tên phòng
và mô tả phòng
Sau khi điền xong bấm nút Ok thì hệ thống sẽ thêm 1 phòng chat mới vào danh mục danh sách các phòng với tên và mô tả như thông tin mà người dùng đã điền vào
Vì thời gian có hạn nên đồ án nhóm em chưa được hoàn chỉnh, em mong thầy sẽ đóng góp ý kiến
hỗ trợ cho đồ án của nhóm em được hoàn thiện hơn
Link github đồ án: https://github.com/Phongtor21/messenger_WEB
Trang 23Dễ dàng làm việc nhóm vì việc chia các task, chia màn hình ứng dụng đơn giản Mỗi người sẽ được đảm nhiệm làm một thành phần Khi các thành phần này hoàn thiện và kết nối hoàn chỉnh Không xảy ra những sai sót hoặc nếu sai sẽ biết tách nhỏ từng giai đoạn để dễ khắc phục Reactjs được đảm bảo bởi Facebook Từ nguồn gốc, cộng đồng, tài liệu của Facebook, bạn hoàn toàn có yên tâm gửi gắm dự án của mình cho Reactjs được thực hiện chất lượng nhất.
Tương lai của ReactJS
Đội ngũ phát triển ReactJS vẫn đang cố gắng cam kết nâng cao tính hiệu quả của ReactJS
và chứng tỏ được sự phát triển nhanh chóng của react và vượt qua cả framework khác Trong tương lai ReactJS được kỳ vọng sẽ cải thiện được việc xử lý các lỗi trong component mà chúng
có thể làm hỏng state của component và cũng gây ra các lỗi trong quá trình render Đặc biệt cải thiện và có thêm những loại render mới hữu ích Với các chức năng như add thêm những đoạn
cú pháp mới và độc đáo hơn nhiều Điều này sẽ giúp ReactJS được sử dụng nhiều trong quá trình làm việc của lập trình viên.
Trang 24Tài liệu kham khảo
Link To-Do-App: GitHub - AnjaliSharma1234/To-Do-App: A basic ToDo app using ReactJS
Youtube:
[1] React Website Tutorial: https://www.youtube.com/watch?v=YyGgqmIjR-M
[2] React JS Crash Course : https://www.youtube.com/watch?v=w7ejDZ8SWv8&t=1s
[3] React Crash Course for Beginners 2021 https://www.youtube.com/watch?v=Dorf8i6lCuk
[4] React JS - React Tutorial for Beginners: https://www.youtube.com/watch?v=Ke90Tje7VS0
[5] Full React Course : https://www.youtube.com/watch?v=4UZrsTqkcW4
Blogs:
[1] Josh W.Comeau’s Blog: https://www.joshwcomeau.com/
[2] Overreacted: https://overreacted.io/
[3] Kent C Dodds’ Blog: https://kentcdodds.com/blog/
[4] Flavio Copes’ Blog: https://flaviocopes.com/
[5] Robin Wieruch’s Blog: https://www.robinwieruch.de/blog
Ebook:
[1] REACT.JS for the visual learner: https://leanpub.com/reactjsforthevisuallearner/read#leanpub-auto-chapter-1 what-is- this-all-about [2] SurviveJS – React: https://survivejs.com/react/introduction/
[3] HACKING WITH REACT: http://www.hackingwithreact.com/
[4] REACT JS NOTES FOR PROFESSIONALS: https://goalkicker.com/ReactJSBook/
Trang 25Lời Cảm Ơn
"Đầu tiên, em xin gửi lời cảm ơn chân thành đến Trường Đại học Sư Phạm Hồ Chí Minh đã đưa môn học Công Nghệ Phần Mềm vào trương trình giảng dạy Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn Thầy Trần Sơn Hải và Thầy Nguyễn Tấn Duẩn đã dạy dỗ, truyền đạt những kiến thức quý báu cho em trong suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học môn Công Nghệ Phần Mềm, em đã có thêm cho mình nhiều kiến thức bổ ích, tinh thần học tập hiệu quả, nghiêm túc Đây chắc chắn sẽ là những kiến thức quý báu, là hành trang để em có thể vững bước sau này.
Bộ môn Công Nghệ Phần Mềm là môn học thú vị, vô cùng bổ ích và có tính thực tế cao Đảm bảo cung cấp đủ kiến thức, gắn liền với nhu cầu thực tiễn của sinh viên Tuy nhiên, do vốn kiến thức còn nhiều hạn chế và khả năng tiếp thu thực tế còn nhiều bỡ ngỡ Mặc dù em đã cố gắng hết sức nhưng chắc chắn bài tiểu luận khó
có thể tránh khỏi những thiếu sót và nhiều chỗ còn chưa chính xác, kính mong thầy xem xét và góp ý để bài tiểu luận của em được hoàn thiện hơn
Em xin chân thành cảm ơn!”