ĐẠI HỌC BÁCH KHOA HÀ NỘI
TRƯỜNG ĐIỆN - ĐIỆN TỬ
BÀI TẬP LỚN
MÔN: Kỹ Thuật Phần Mềm Ứng Dụng
QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT
HỌC TẬP CHO SINH VIÊN
Giáo viên hướng dẫn: Hoàng Quang Huy
Họ và tên Nguyễn Văn Hải
Mã số sinh
viên
20230166P
Lớp LT-ĐTVT K68
Hà Nội, 07-2023
Mục Lục
Contents
TRƯỜNG ĐIỆN - ĐIỆN TỬ...................................................................................1
LỜI CẢM ƠN.............................................................................................................3
LỜI MỞ ĐẦU.............................................................................................................4
1. Đặt vấn đề:...........................................................................................................4
2. Mục tiêu nghiên cứu:............................................................................................4
3. Đối tượng và phạm vi nghiên cứu:.......................................................................4
4. Phương pháp nghiên cứu:.....................................................................................4
5. Nhiệm vụ và kết quả đạt được:.............................................................................5
6. Bố cục của bài toán:.............................................................................................5
CHƯƠNG 1. Giới thiệu chung:..................................................................................6
1. Khái niệm cơ bản về Internet:..............................................................................6
2. Công nghệ sử dụng...............................................................................................9
CHƯƠNG 2. Phân công công việc...........................................................................15
CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG........................................15
1. Phân tích yêu cầu đề tài........................................................................................15
2. Thiết kế cơ sở dữ liệu:..........................................................................................18
CHƯƠNG 4. CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ...................................21
1. Cài đặt chương trình:..........................................................................................21
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................23
1. Kết quả đạt được:...............................................................................................23
2. Hạn chế...............................................................................................................23
3. Hướng phát triển:...............................................................................................24
TÀI LIỆU THAM KHẢO........................................................................................24
2
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy Hoàng Quang Huy đã trang bị những kiến thức cho
em trong suốt quá trình học tập môn học này. Chính nhờ công lao giảng dạy, chỉ bảo tận
tình của thầy mà em mới trang bị được kiến thức để có thể vận dụng và sáng tạo ra những
sản phẩm hữu ích góp phần phục vụ các lĩnh vực khác nhau. Với lòng kính trọng và biết
ơn sâu sắc, em xin gửi lời cảm ơn đến thầy vì đã tận tình giúp đỡ em từ những bước đầu
tiên khi xây dựng ý tưởng nghiên cứu, đề cương cũng như trong suốt quá trình thực hiện
và hoàn thiện bài toán này.
Mặc dù em đã rất cố gắng và nổ lực để hoàn thành bài tập lớn này nhưng trong
phạm vi và khả năng cho phép, chắc chắn bài tập sẽ không tránh khỏi những thiếu sót.
Chúng em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của thầy để báo
cáo được hoàn thiện nhất.
Em xin chân thành cảm ơn!
3
LỜI MỞ ĐẦU
1. Đặt vấn đề:
Ngày nay, chúng ta đang sống trong một xã hội hiện đại với công nghệ phát triển
như vũ bão thì việc đưa nó vào trong đời sống không còn quá xa lạ. Ứng dụng công nghệ
thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định
trong hoạt động của các chính phủ, tổ chức cũng như của các công ty. Nó đóng vai trò hết
sức quan trọng có thể tạo ra những bước đột phá mạnh mẽ. Là một phần của công nghệ
thông tin, công nghệ web đang có được sự phát triển mạnh mẽ và phổ biến rất nhanh bởi
những lợi ích mà nó mang lại cho cộng đồng là rất lớn.
Hiện nay, đa số sinh viên chúng ta tự học, tìm tòi, xem video, website để bổ sung
kiến thức. Bản thân em cũng vậy, cũng trải qua những điều đó nên khi còn học e đã luôn
ấp ủ tương lai sẽ có 1 web riêng, tạo nên 1 cộng đồng để mọi người có thể chia sẻ, hỗ trợ
nhau về học tập. Do đó e chọn đề tài: “QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC
BÀI VIẾT HỌC TẬP CHO SINH VIÊN”. Với đề tài này, mọi người có thể tìm các bài
học bổ ích, thông tin hữu dụng, bổ sung kiến thức, làm theo các đồ án public để có thêm
kinh nghiệm.
2. Mục tiêu nghiên cứu:
Mục tiêu của bài toán là chia sẻ được nhiều thông tin, nhu cầu của người truy cập,
khiến cho người truy cập ấn tượng, sẽ tìm đến website thường xuyên.
Ứng dụng vào việc bán hàng, tiếp thị liên kết sau này.
3. Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu gồm:
- Các sinh viên
- Vai trò của người quản lý web
- Nhu cầu của mọi người ( truy cập để xem các bài viết hay mua, đặt hỗ trợ về các
bài tập lớn hay đồ án)
4. Phương pháp nghiên cứu:
Phương pháp tài liệu: Nghiên cứu các tài liệu liên quan đến các nội dung nghiên
cứu: Tài liệu về các ngôn ngữ lập trình, về lập trình nhúng, vi điều khiến, linh kiện bán
dẫn, điện tử số.
Phương pháp thực nghiệm: Nghiên cứu, xây dựng các phương pháp đặt hàng và
quản lí website.
4
5. Nhiệm vụ và kết quả đạt được:
- Nghiên cứu và tìm hiểu một số website bán hàng trực tuyến.
- Phân tích yêu cầu và đề xuất
- Thiết kế đặc tả hệ thống.
- Xây dựng được cơ sở dữ liệu.
- Lập trình các module của hệ thống.
6. Bố cục của bài toán:
Trên cơ sở các nội dung nghiên cứu, để đạt mục tiêu đề ra và đảm bảo tính logic, ngoài
phần mở đầu và phần kết luận, bài toán được tổ chức thành các chương như sau:
Chương 1. Cơ sở lý thuyết. Chương này trình bày các cơ sở lí thuyết về internet và
website; trình bày kết quả nghiên cứu, tìm hiểu về các ngôn ngữ lập trình: PHP, HTML,
CSS, My SQL được sử dụng trong việc xây dựng đề tài.
Chương 2: Phân tích và thiết kế hệ thống. Chương này giới thiệu bài toán và đưa ra các
mô hình hệ thống; đề xuất các ý tưởng, chức năng cho phần mềm; trình bày các mô hình
thực thể quan hệ, sơ đồ phân cấp chức năng. Phân tích chi tiết các chức năng của người sử
dụng và người quản lí; thiết kế giao diện người dùng và thiết dữ liệu, chức năng cho hệ
thống.
Chương 3: Cài đặt chương trình và kết quả. Trong chương này, nêu kết quả thực hiện
được của đề tài và trình bày cách cài đặt chương trình.
5
CHƯƠNG 1. Giới thiệu chung:
1. Khái niệm cơ bản về Internet:
1.1 Giới thiệu chung:
Internet là hệ thống thông tin toàn cầu có thể truy nhập công cộng gồm các mạng
máy tính được liên kết với nhau. Nguồn gốc của Internet bắt nguồn từ sự phát triển của
chuyển mạch gói và nghiên cứu của bộ quốc phòng Hoa Kỳ ủy quyền thực hiện vào những
năm 1960 để cho phép chia sẻ thời gian của máy tính[1].
Vào mạng Internet, bạn có tìm thấy các tài liệu để nghiên cứu, học tập, trao đổi thư
từ, mặt hàng, mua bán, … Một trong những mục tiêu của Internet là chia sẻ thông tin giữa
những người dùng trên nhiều lĩnh vực khác nhau.
1.2 Phân loại:
Các máy tính trên mạng được chia làm 2 nhóm Client và Server.
- Client: Máy khách trên mạng, chứa chương trình Client.
- Server: Máy phục vụ-máy chủ. Chứa các chương trình Server, tài nguyên (tập tin,
tài liệu, …) dùng chung cho nhiều máy khách. Server luôn ở trạng thái chờ yêu cầu
và đáp ứng yêu cầu của Client
Các dịch vụ thường dùng trong Internet:
- Dịch vụ World Wide Web (gọi tắt Web)
- Dịch vụ Electronic Mail (gọi tắt là Mail)
- Dịch vụ FPT
- Để truyền thông với những máy tính khác, mọi máy tính trên Internet phải hỗ trợ
giao thức chung TCP/IP (Transmission Control Protocol/Internet Protocol - giao
thức điều khiển truyền dữ liệu và giao thức Internet), là một giao thức đồng bộ, cho
truyền thông điệp từ nhiều nguồn và tới nhiều đích khác nhau. Ví dụ có thể vừa lấy
thư từ trong hộp thư, đồng thời vừa truy cập vào trang web. TCP đảm bảo tính an
toàn dữ liệu, IP là giao thức chi phối phương thức vận chuyển dữ liệu trên Internet
[1]
1.3 World Wide Web
Các khái niệm cơ bản về World Wide Web
- World Wide Web (WWW) hay còn gọi là Web là một dịch vu phổ biến nhất hiện
nay trên Internet, 85% các giao dịch trên Internet ước lượng thuộc về WWW. Ngày
nay số Website trên thế giới đã đạt tới con số khổng lồ. WWW cho bạn truy xuất
6
thông tin văn bản, hình ảnh, âm thanh, video trên toàn thế giới. Thông qua Website,
các quý công ty có thể giảm thiểu tối đa chi phí in ấn và phân phát tài liệu cho
khách hàng ở nhiều nơi [2].
Cách tạo trang web
Có nhiều cách để tạo trang Web:
- Có thể tạo trang web trên bất kì chương trình xử lý văn bản nào.
- Tạo web bằng cách viết mã nguồn bởi một trình soạn thảo văn bản như:
- Notpad, Wordpad, v.v. là những chương trình soạn thảo có sẵn trong window.
- Thiết kế bằng các phần mềm chuyên nghiệp như: Fronpage, Dreamweaver, visual
studio…
- Để xây dựng một ứng dụng Web hoàn chỉnh và có tính thương mại, bạn cần kết hợp
cả Client Script (Kịch bản trình khách) và Server Script (Kịch bản trình chủ) với
một loại cơ sở dữ liệu nào đó, chẳng hạn như: MS Access, SQL Server, Oracle, ở
đây chúng em dùng MYSQL.
- Khi bạn muốn triển khai ứng dụng Web trên mạng, ngoài các điều kiện về cấu hình
phần cứng, bạn cần có trình chủ web thường gọi là Web Server.
Trình duyệt web (Web Client hay Web Browser)
- Trình duyệt web là công cụ truy xuất dữ liệu trên mạng, là phần mềm giao diện trực
tiếp với người sử dụng. Nhiệm vụ của web browser là nhận dữ liệu từ người dùng,
gửi các yêu cầu đó qua mạng tới các web Server và nhận các dữ liệu cần thiết từ
Server để hiển thị lên màn hình. Để sử dụng dịch vụ WWW, Client cần có một
chương trình duyệt Web, kết nối vào Internet thông qua một ISP. Các trình duyệt
thông dụng hiện nay là Microsoft Internet Explorer, Mozilla Firefox, Google
Chrome, … [2]
WebServer
WebServer: Là một máy tính được nối vào Internet và chạy các phần mềm được
thiết kế. WebServer đóng vai trò một chương trình xử lý các nhiệm vụ xác định, như tìm
trang thích hợp, xử lý tổ hợp dữ liệu, kiểm tra dữ liệu hợp lệ,… WebServer cũng là nơi lưu
trữ cơ sở dữ liệu, là phần mềm đảm nhiệm vai trò Server cung cấp dịch vụ Web [2].
WebServer hỗ trợ các công nghệ khác nhau:
- IIS (Internet Information Server): Hỗ trợ ASP, mở rộng hỗ trợ PHP.
- Apache: Hỗ trợ PHP.
- Tomcat: Hỗ trợ JPS (Java Servlet Page).
7
Phân loại Website:
- Webite tĩnh
Website tĩnh là những trang web chỉ bao gồm các văn bản HTML đơn giản mà
không có cơ sở dữ liệu hỗ trợ. Nội dung của các trang này thường không thay đổi thường
xuyên và được hiển thị trực tiếp từ mã HTML sau khi tải xuống từ máy chủ. Người dùng
thường chọn website tĩnh khi nhu cầu cập nhật nội dung ít và nhằm tiết kiệm chi phí.
Hoạt động của trang web tĩnh được thể hiện như sau:
Ưu điểm:
- CSDL nhỏ nên việc phân phát dữ liệu có hiệu quả rõ ràng, Server có thể đáp ứng
nhu cầu Client một cách nhanh chóng. Ta nên sử dụng Web tĩnh khi không thay đổi
thông tin trên đó [3].
Nhược điểm:
- Không đáp ứng được yêu cầu phức tạp của người sử dụng, không linh hoạt [3].
- Webite động
Website động là tập hợp của những trang web mà có nội dung có khả năng thay đổi.
Sự thay đổi có thể là tùy theo thời gian, tùy theo người dùng, tùy theo ngữ cảnh. Nội dung
của website động được lấy từ cơ sở dữ liệu hoặc hệ thống quản lý nội dung (CMS). Do đó,
khi bạn cập nhật nội dung của cơ sở dữ liệu thì nội dung của trang web cũng được cập nhật
theo [3].
Để tạo được website động, chúng ta thường sử dụng đến các ngôn ngữ phía server
(server-side), chẳng hạn như Servlet, JSP, PHP, Python, C#...[3]
Một website động thường được đặt trên một máy chủ dịch vụ web (Web Server).
Website động sử dụng kịch bản lập trình phía máy khách (Client) hoặc máy chủ (Server)
hoặc cả hai để tạo ra nội dung động [3].
Khi người dùng sử dụng máy tính của mình thao tác trên trang web sẽ tạo ra một
yêu cầu (request) tới máy chủ. Phía máy chủ nhận và xử lý yêu cầu máy khách dựa vào
kịch bản trên máy chủ để tạo ra một trang đơn giản và gửi lại tới người dùng. Trình duyệt
8
trên máy khách tải xuống và xử lý mã trong trang để hiển thị thông tin cho người dùng
[3].
Hoạt động của Web động được thể hiện như sau:
2. Công nghệ sử dụng
2.1 Ngôn ngữ sử dụng:
2.1.1 PHP là gì?
PHP (viết tắt đệ quy của PHP: Hypertext Preprocessor) là tập hợp con của các ngôn
ngữ script như JavaScript và Python. Sự khác biệt là ngôn ngữ PHP chủ yếu được sử dụng
để giao tiếp phía server trong khi JavaScript có thể được sử dụng cho cả frontend cũng như
backend và Python – chỉ dành cho phía client (backend).
PHP là một ngôn ngữ lập trình đơn giản và dễ học cho người mới bắt đầu với
những cú pháp khá giống với cách viết Java và C, đây cũng là ngôn ngữ lập trình phỗ biến
nhất thế giới trong thiết kế website hiện nay với khả năng tương thích cao với mọi trình
duyệt.
Ưu điểm:
Đầu tiên phải kể đến đó là PHP chính là một mã nguồn mở. Vậy nên việc cài đặt và
sử dụng ngôn ngữ PHP rất là dễ dàng và cài đặt phổ biến nhất là trên các WebSever thông
dụng như Nginx, Apache. Đặc biệt PHP là một mã nguồn miễn phí và được chia sẻ nhiều
trên các diễn đàn, cộng đồng và bạn có thể dễ dàng sao chép và cài đặt sử dụng các
website hay các ngữ cảnh có sẵn.
PHP là ngôn ngữ dễ học và dễ sử dụng, nó có tính linh hoạt cao để giải quyết các vấn đề,
các ngữ cảnh và kịch bản với các phương pháp tùy biến khác nhau theo yêu cầu của bạn.
9
Đây là một ngôn ngữ có tính công đồng lớn nhất hiện nay vì đây là một mã nguồn mở và
cũng rất dễ sử dụng cho nên PHP luôn được ưa chuộng và tạo nên một cộng đồng lớn và
chất lượng với các chuyên gia trên toàn thế giới.
Khả năng bảo mật cao cho dù đây là mã nguồn mở, PHP được cộng đồng phát triển rất
mạnh mẻ vì vậy PHP được coi là an toàn khi sử dụng với sự chia sẻ cách bảo mật. Ngoài
ra khi bạn sử dụng ngôn ngữ lập trình PHP sẻ kết hợp các kỹ thuật bảo mật với từng tầng
khác nhau giúp khả năng hoạt động cho website ổn định và an toàn hơn.
Tương lai của những bạn học ngôn ngữ PHP thì những cơ hội việc làm rất lớn với thu
nhập cao có thể lên đến hàng chục triệu một tháng. Hiện nay thì nhu cầu thiết kế và lập
trình Website rất cao giúp bạn càng có nhiều cơ hội làm việc và kiếm thêm thu nhập hơn.
Nhược điểm:
Nhược điểm phải nói đến đầu tiên khi dùng PHP chính là cấu trúc ngôn ngữ của nó
nhìn không được gọn gàng cho lắm. Mọi câu lệnh được viết trong cặp câu lệnh <?php … ?
>.
Không giống như Java và C# khi bạn học thì có thể làm website, các ứng dụng điện thoại,
chương trình hay phần mềm… . tuy nhiên đối với PHP chỉ có thể sử dụng làm website và
các ứng dụng website mở rộng mà thôi.
Nhược điểm lớn nhất đáng nói đến là khả năng bị sao chép và hack mã code dễ hơn và độ
an toàn không cao như các ngôn ngữ lập trình khác. Nhưng từ khi lên phiên bản PHP 7
chấm trở lên đã khác phục được rất nhiều vấn đề này.
2.1.2 HTML là gì?
HTML là viết tắt cho cụm từ Hypertext Markup Language, tạm dịch là ngôn ngữ
đánh dấu siêu văn bản. HTML được sử dụng để tạo và cấu trúc các thành phần trong trang
web hoặc ứng dụng, phân chia các đoạn văn, heading, links, blockquotes,… HTML không
phải là ngôn ngữ lập trình. Điều này có nghĩa là nó không thể tạo ra các chức năng "động".
Hiểu một cách đơn giản hơn, HTML cũng tương tự như phần mềm Microsoft Word, nó
chỉ có tác dụng bố cục và định dạng trang web. Một tài liệu HTML được hình thành bởi
các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag và attributes).
Các cặp thẻ này được bao bọc bởi một dấu ngoặc nhọn (ví dụ ) và thường là sẽ được khai
báo thành một cặp, bao gồm thẻ mở và thẻ đóng. Ví dụ, chúng ta có thể tạo một đoạn văn
bằng cách đặt văn bản vào trong cặp tag mở đóng văn bản <p> và </p>
Ưu điểm:
10
- Ngôn ngữ này được sử dụng rộng rãi với rất nhiều nguồn tài nguyên hỗ trợ cùng
một cộng đồng sử dụng vô cùng lớn đằng sau nó.
- Có thể hoạt động mượt mà trên hầu hết mọi trình duyệt hiện hành.
- Quá trình học HTML khá đơn giản.
- Mã nguồn mở và hoàn toàn miễn phí.
- Các Markup sử dụng trong HTML thường ngắn gọn và đồng nhất.
- Chuẩn chính của web được vận hành bởi World Wide Web Consortium (W3C).
- Dễ dàng tích hợp với các ngôn ngữ backend như PHP, Node.js,...
Nhược điểm:
- Ngôn ngữ này chỉ được áp dụng chủ yếu cho trang web tĩnh. Đối với các tính năng
động, bạn cần sử dụng JavaScript hoặc ngôn ngữ backend bên thứ 3 ví dụ như PHP.
- Người dùng phải tạo các trang web riêng lẻ cho HTML, ngay cả khi các phần tử
giống nhau.
- Một số trình duyệt chấp nhận các tính năng mới một cách chậm chạp. Đôi khi các
trình duyệt cũ hơn không phải lúc nào cũng hiển thị các thẻ mới hơn.
2.1.3 CSS là gì?
CSS là tên viết tắt của Cascading Style Sheet. Đây là một trong những ngôn ngữ lập
trình đã được thiết kế vô cùng đơn giản, thuận tiện trong việc sử dụng. Với CSS hướng tới
mục tiêu chính đó là có khả năng giúp đơn giản hóa quá trình tạo ra các trang web. Nhiệm
vụ chính của CSS lúc này chính là thực hiện việc xử lý các giao diện đối với một trang
web cụ thể. Đó được biết đến là yếu tố màu sắc văn bản, khoảng cách giữa các đoạn, font
chữ, bố cục, hình ảnh, màu nền,…. Tất cả những yếu tố này đều có thể thay đổi cũng như
chỉnh sửa theo ý muốn hỗ trợ của CSS.
Sử dụng CSS lúc này cũng chính là sử dụng công cụ có khả năng cao trong việc hỗ
trợ hữu ích, cần thiết đối với quá trình phát triển và thiết kế trang web. Những công việc
mà HTML sẽ không xử lý được sẽ được giải quyết tốt nhất với CSS. Nhờ đó, CSS sẽ
mang lại khả năng kiểm soát một cách mạnh mẽ, hiệu quả đối với các quá trình trình bày
tài liệu HTML cụ thể. Chính vì vậy mà đây còn được biết đến là công cụ thường được kết
hợp với đa dạng các ngôn ngữ như HTML hoặc XHTML.
Thành Phần Của Cấu Trúc Một Đoạn Nhỏ CSS
Selector – Bộ Chọn
- Bộ chọn được biết đến là phần mẫu được lựa chọn để có thể lấy những phần tử
11
HTML mà người sử dụng lúc này mong muốn dùng để có thể định nghĩa được các
phong cách. Bộ chọn sẽ được áp dụng vào các trường hợp như sau:
- Toàn bộ phần tử lúc này sẽ theo một dạng cụ thể nào đó, điển hình như phần tử của
tiêu đề H1.
- Thuộc tính id cùng với class của những phần từ này.
- Các phần tử sẽ dựa vào sự liên quan đến các phần tử khác trong cây phân cấp toàn
bộ tài liệu.
Declaration – Khai Báo
- Đây là dạng khối khai báo bao gồm một hoặc nhiều khai báo khác nhau. Lúc này
chúng sẽ được phân tách với nhau bằng ký hiệu chính là dấu chấm phẩy. Trong mỗi
một khai báo sẽ bao gồm những giá trị đặc tính và tên của CSS. Chúng sẽ cách
nhau bằng dấu phẩy. Khai báo của CSS lúc này luôn được kết thúc bằng dấu chấm
phẩy, khối khai báo sẽ nằm tròn các dấu ngoặc móc.
Properties – Thuộc Tính
- Các cách để có thể tạo kiểu cho các phần tử HTML. Đối với những CSS thì chúng
ta chỉ cần lựa chọn thuộc tính mà chính chúng ta mong muốn tác động vào các quy
tắc của chính mình.
Giá Trị Thuộc Tính
- Đây chính là thứ mà ta đã có được cũng như sở hữu trong việc lựa chọn có thể xuất
hiện rất nhiều lần để đem đến một thuộc tính cụ thể cho người dùng.
Ưu điểm
- Tiết Kiệm Thời Gian
- CSS Có Khả Năng Tải Nhanh Chóng
- Dễ Dàng Thực Hiện Bảo Trì
- Thuộc Tính Của CSS Rộng Rãi
- Tương Thích Hoàn Hảo
Nhược điểm
- Hoạt Động Khác Biệt Cho Mỗi Trình Duyệt
- Người Mới Dùng Gặp Nhiều Khó Khăn
- Có Thể Gặp Rủi Ro Cho Định Dạng Web
2.1.4 My SQL là gì?
12
- MySQL chính là một hệ thống mã nguồn mở quản lý cơ sở dữ liệu. Cũng như tất cả
các cơ sở dữ liệu quan hệ khác, MySQL cũng sẽ lưu trữ dữ liệu ở bên trong các bảng được
tạo thành từ các cột và các hàng của nó.
- SQL là một tập hợp các dữ liệu có cấu trúc. Đó có thể là tất cả mọi thứ từ danh sách
mua sắm đơn giản đến nơi chứa lượng thông tin khổng lồ trong mạng công ty hay
thư viện ảnh của bạn.
- Bên cạnh đó, nó là một phần vô cùng quan trọng trong nhiều phần mềm phổ biến
nhất để xây dựng và duy trì mọi thứ, từ các ứng dụng web dành cho khách hàng đến
các dịch vụ B2B mạnh mẽ, dựa trên dữ liệu.
- Với bản chất là nguồn mở, bộ tính năng phong phú của nó, kết hợp cùng với sự
phát triển vượt bậc ngày càng tăng và hỗ trợ liên tục từ Oracle, có nghĩa là các tổ
chức quan trọng trên internet như Facebook, Flickr, Twitter, Wikipedia và
YouTube đều sử dụng các phần phụ trợ của MySQL.
Cách thức hoạt động:
- Giống như hầu hết các hệ thống quản lý cơ sở dữ liệu hiện có, MySQL có kiến trúc
máy khách-máy chủ và có thể được sử dụng trong môi trường nối mạng. Chương
trình máy chủ nằm trên cùng một hệ thống vật lý hoặc ảo nơi các tệp cơ sở dữ liệu
được lưu trữ và nó chịu trách nhiệm cho tất cả các tương tác với cơ sở dữ liệu.
- Các chương trình máy khách khác nhau như công cụ MySQL để quản trị cơ sở dữ
liệu hoặc bất kỳ ứng dụng nào được viết bằng ngôn ngữ lập trình khác, có thể kết
nối với máy chủ và thực hiện các yêu cầu cơ sở dữ liệu.
- Một máy khách có thể cư trú trên cùng một hệ thống với máy chủ hoặc trên một
máy chủ từ xa và gửi các yêu cầu cơ sở dữ liệu qua mạng hoặc kết nối internet đến
máy chủ. Điều quan trọng là máy chủ MySQL phải đang chạy để máy khách kết nối
với nó.
Ưu điểm:
- Dễ dàng sử dụng: là hệ thống khá dễ sử dụng, khiến nó trở thành sự chọn lựa khá
phổ biến dành cho các nhà phát triển ở tất cả cấp độ kỹ năng. Sử dụng ngôn ngữ
truy vấn đơn giản sẽ giúp dễ dàng truy xuất và thao tác dữ liệu.
13
- Khả năng tương thích rộng – MySQL tương thích với nhiều nền tảng, bao gồm
Windows, Linux và macOS. Điều này có nghĩa là nó có thể được sử dụng trên
nhiều loại thiết bị, từ máy tính để bàn đến thiết bị di động.
- Hiệu suất cao – được thiết kế cho hiệu suất cao, có nghĩa là nó có thể xử lý lượng
lớn dữ liệu và lưu lượng truy cập mà không bị chậm. Nó sử dụng các kỹ thuật lập
chỉ mục nâng cao và cơ chế lưu vào bộ nhớ đệm để tối ưu hóa hiệu suất
- Các tính năng bảo mật mạnh mẽ – cung cấp các tính năng bảo mật mạnh mẽ, bao
gồm xác thực người dùng, mã hóa và kiểm soát truy cập. Điều này có nghĩa là dữ
liệu nhạy cảm có thể được bảo vệ khỏi truy cập trái phép, giúp ngăn chặn vi phạm
dữ liệu và các sự cố bảo mật khác.
- Hỗ trợ từ cộng đồng – có một cộng đồng lớn và tích cực bao gồm các nhà phát triển
và người dùng, những người đóng góp cho sự phát triển của nó và cung cấp hỗ trợ
cho những người khác sử dụng nó.
Nhược điểm:
- Khả năng mở rộng – đặc biệt khi xử lý một lượng lớn dữ liệu. Điều này là do nó sử
dụng một kiến trúc tập trung, có thể dẫn đến các vấn đề về hiệu suất khi cơ sở dữ
liệu tăng kích thước.
- Độ phức tạp – để thiết lập và bảo trì, đòi hỏi kiến thức và kỹ năng chuyên môn.
Điều này có thể gây khó khăn cho các tổ chức hoặc cá nhân nhỏ hơn trong việc sử
dụng hiệu quả.
- Bảo mật – có thể dễ bị vi phạm bảo mật, đặc biệt nếu nó không được cấu hình đúng
cách hoặc nếu các bản cập nhật không được áp dụng kịp thời.
- Chức năng hạn chế – có chức năng hạn chế so với một số hệ thống quản lý cơ sở dữ
liệu khác, đặc biệt khi xử lý các cấu trúc dữ liệu hoặc kiểu dữ liệu phức tạp.
- Chi phí – Mặc dù MySQL là nguồn mở và miễn phí, nhưng có thể có chi phí liên
quan đến việc sử dụng nó một cách hiệu quả. Ví dụ: các tổ chức có thể cần thuê
nhân viên chuyên trách hoặc mua phần mềm hoặc phần cứng bổ sung để hỗ trợ việc
sử dụng MySQL.
14
CHƯƠNG 2. Phân công công việc
Nguyễn Văn Hải: Phân tích, thiết kế
- Tìm hiểu về cách thiết kế web
- Tìm hiểu về các ngôn ngữ và chọn các ngôn ngữ phù hợp, đơn giản cho
người mới bắt đầu
- Lên kịch bản, time line
- Code
- Xây dựng
- Thực tế
- Fix bug.
CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ
THỐNG
1. Phân tích yêu cầu đề tài
1.1 Phát biểu bài toán :
Tên bài toán: “QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT HỌC TẬP CHO SINH
VIÊN”
Đây là một loại hình kinh doanh ảo qua mạng bằng cách xây dựng một trang web chia sẻ
các bài tập, bài tập lớn, đồ án về thiết kế mạch, phần mềm và phần cứng để mọi người có thể vào
đó xem, lựa chọn đọc, tham khảo các project, đặt yêu cầu thiết kế. Ngoài ra còn cứ thể tạo các
topic để có thể hỏi, giải đáp thắc mắc từ những người khác hoặc từ chính admin.
Sinh viên đăng nhập vào website theo email và mật khẩu của mình. Khi đó, sinh viên sẽ có
quyền đặt hàng, bình luận,... Bên cạnh đó, đối tượng sinh viên còn có thể tìm kiếm các bài viết,
sản phẩm có sẵn đang bán hoặc được chia sẻ miễn phí.
1.2 Yêu cầu bài toán :
Hệ thống có chức năng ủy quyền người dùng, do đó:
Đối với người dùng là khách hàng sinh viên:
 Được đăng ký tài khoản, đăng nhập.
 Được đăng các bài viết, bình luận
15
 Được xem sản phẩm, đặt mua, đặt yêu cầu.
 Được thêm thông tin các bài viết của chính mình.
 Được tìm kiếm sản phẩm, nội dung liên quan đến ngành
 Được quản lí tài khoản của mình
Đối với người dùng là quản lý:
 Được thêm thông tin các sản phẩm, bài viết mới
 Được chỉnh sửa thông tin các sản phẩm, bài viết
 Được xóa sản phẩm, bài viết
 Được xóa thông tin các thành viên: Khi sinh viên vi phạm các điều luật của trang web
hoặc vì một lí do nào đó yêu cầu xóa tài khoản, người quản lí có thể xóa toàn bộ thông tin
liên quan đến tài khoản đó.
 Được viết bài giới thiệu về sản phẩm. Khi ra mắt sản phẩm mới thì người quản lí có thể
viết bài mô tả cho sản phẩm đó, điều này giúp thu hút khách hàng hơn. Từ đó nâng cao
chất lượng website hơn
1.3 Đặc tả hệ thống:
Vai trò Mô tả
Người quản lí
Là người có vai trò cao nhất trong hệ thống, người quản lí có
thể thêm, sửa, xóa mọi thông tin của hệ thống
Sinh viên,
khách hàng
Không phải
thành viên
Thao tác trực tiếp trên hệ thống người dùng, với các chức
năng: xem bài viết, xem danh sách sản phẩm, xem thông tin
sản phẩm, tìm kiếm sản phẩm, đăng ký tài khoản, đăng nhập
Thành viên
Vận hành các chức năng của khách hàng - không phải thành
viên, ngoài ra khách hàng thành viên có thể đặt hàng, xem
thông tin đơn hàng, đăng bài, bình luận.
1.4 Sơ đồ chức năng:
16
1.5 Sơ đồ use case
17
2. Thiết kế cơ sở dữ liệu:
Bảng Product:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1 Id String X X
2 Name String
3 Price number
4 salePrice number
5 Amount Number
6 Image string
7 Comments Array
8 Rate Number
9 TypeID String X X
10 Review Array
11 CloundinaryID String
12 CreatedAt Datetime
13 UpdatedAt Datetime
18
Bảng user
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1
Id String X X
2
Name String
3
Email String
4
Password string
5 Address String
6
isAdmin Boolean
7
Phone String
8
CreatedAt Datetime
9
UpdatedAt Datetime
Bảng order:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1
Id String X X
2
Province String
3
District String
4
Ward String
5
Phone String
6
UserID String X X
7
Price String
8
paymentMethod String
19
9
Status Status
10 Name String
11 CancelOrder Boolean
12 OrderCode String
13 CreatedAt Datetime
14 UpdatedAt Datetime
Bảng SelectLists:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1
Id String X X
2
Options String
3
Name String
4
Property String
Bảng Message:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1
Id String X X
2
Name String
3
Message String
4
ConversationID String X X
5
CreatedAt Datetime
6
UpdateAt Datetime
Bảng ListProduct:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
20
1
Id String X X
2
Name String
3
Image String
4
CloundinaryID String
5
CreatedAt Datetime
6
UpdateAt Datetime
Bảng Conversations:
STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null
Khóa
ngoại
1
Id String X X
2
Seen Boolean
3
UserID String X X
4
Name String
5
CreatedAt Datetime
6
UpdatedAt Datetime
7
LastMessage
CHƯƠNG 4. CÀI ĐẶT CHƯƠNG TRÌNH VÀ
KẾT QUẢ
1. Cài đặt chương trình:
21
22
CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT
TRIỂN
1. Kết quả đạt được:
2. Hạn chế
- Hệ thống dành cho khách hàng và cả người quản lí thật sự là một hệ
thống lớn, cần đầu tư thời gian, công sức và cả sự nỗ lực để hoàn thiện.
Song, do thời gian nghiên cứu có hạn, hệ thống mà em phân tích và thiết
kế vẫn còn nhiều hạn chế
- Chưa hoàn thiện sản phẩm.
- Chưa thực hiện được chức năng thống kê doanh thu
- Chưa đầy đủ các chức năng điều khiển đối với vai trò người quản lí.
23
- Chưa thực hiện được các chức năng sửa đổi thông tin cá nhân.
- Tính bảo bảo mật cho hệ thống chưa hoàn chỉnh.
- Kiến thức thực tế và kiến thức lập trình còn hạn chế, nên tính chuyên
nghiệp của chương trình chưa cao, bắt lỗi chưa kĩ ở một số chổ và một số
tính năng chưa tối ưu.
3. Hướng phát triển:
Để phát triển được một hệ thống hoàn chỉnh, trước hết cần phải khắc phục các hạn chế của
đề tài và bổ sung nhiều tính năng, công nghệ để sản phẩm đến tay người tiêu dùng một
cách tuyệt vời nhất có thể.
TÀI LIỆU THAM KHẢO
1) PHP là gì? Các ưu và nhược điểm PHP (Có thể bạn chưa biết) (damme.io)
2) HTML là gì? Ưu nhược điểm và cấu trúc của HTML (bizflycloud.vn)
3) Tim Hiểu CSS Là Gì? Đánh Giá Ưu Và Nhược Điểm Của CSS (vtcc.vn)
24
4) MySQL là gì? Ưu điểm và nhược điểm của MySQL nổi bật (tenten.vn)
5) 04 Báo cáo cuối kỳ_Slide_Word (Tham khảo) - OneDrive (sharepoint.com)
25

QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT HỌC TẬP CHO SINH VIÊN.docx

  • 1.
    ĐẠI HỌC BÁCHKHOA HÀ NỘI TRƯỜNG ĐIỆN - ĐIỆN TỬ BÀI TẬP LỚN MÔN: Kỹ Thuật Phần Mềm Ứng Dụng QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT HỌC TẬP CHO SINH VIÊN Giáo viên hướng dẫn: Hoàng Quang Huy Họ và tên Nguyễn Văn Hải Mã số sinh viên 20230166P Lớp LT-ĐTVT K68 Hà Nội, 07-2023
  • 2.
    Mục Lục Contents TRƯỜNG ĐIỆN- ĐIỆN TỬ...................................................................................1 LỜI CẢM ƠN.............................................................................................................3 LỜI MỞ ĐẦU.............................................................................................................4 1. Đặt vấn đề:...........................................................................................................4 2. Mục tiêu nghiên cứu:............................................................................................4 3. Đối tượng và phạm vi nghiên cứu:.......................................................................4 4. Phương pháp nghiên cứu:.....................................................................................4 5. Nhiệm vụ và kết quả đạt được:.............................................................................5 6. Bố cục của bài toán:.............................................................................................5 CHƯƠNG 1. Giới thiệu chung:..................................................................................6 1. Khái niệm cơ bản về Internet:..............................................................................6 2. Công nghệ sử dụng...............................................................................................9 CHƯƠNG 2. Phân công công việc...........................................................................15 CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG........................................15 1. Phân tích yêu cầu đề tài........................................................................................15 2. Thiết kế cơ sở dữ liệu:..........................................................................................18 CHƯƠNG 4. CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ...................................21 1. Cài đặt chương trình:..........................................................................................21 CHƯƠNG 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................23 1. Kết quả đạt được:...............................................................................................23 2. Hạn chế...............................................................................................................23 3. Hướng phát triển:...............................................................................................24 TÀI LIỆU THAM KHẢO........................................................................................24 2
  • 3.
    LỜI CẢM ƠN Emxin chân thành cảm ơn thầy Hoàng Quang Huy đã trang bị những kiến thức cho em trong suốt quá trình học tập môn học này. Chính nhờ công lao giảng dạy, chỉ bảo tận tình của thầy mà em mới trang bị được kiến thức để có thể vận dụng và sáng tạo ra những sản phẩm hữu ích góp phần phục vụ các lĩnh vực khác nhau. Với lòng kính trọng và biết ơn sâu sắc, em xin gửi lời cảm ơn đến thầy vì đã tận tình giúp đỡ em từ những bước đầu tiên khi xây dựng ý tưởng nghiên cứu, đề cương cũng như trong suốt quá trình thực hiện và hoàn thiện bài toán này. Mặc dù em đã rất cố gắng và nổ lực để hoàn thành bài tập lớn này nhưng trong phạm vi và khả năng cho phép, chắc chắn bài tập sẽ không tránh khỏi những thiếu sót. Chúng em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của thầy để báo cáo được hoàn thiện nhất. Em xin chân thành cảm ơn! 3
  • 4.
    LỜI MỞ ĐẦU 1.Đặt vấn đề: Ngày nay, chúng ta đang sống trong một xã hội hiện đại với công nghệ phát triển như vũ bão thì việc đưa nó vào trong đời sống không còn quá xa lạ. Ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức cũng như của các công ty. Nó đóng vai trò hết sức quan trọng có thể tạo ra những bước đột phá mạnh mẽ. Là một phần của công nghệ thông tin, công nghệ web đang có được sự phát triển mạnh mẽ và phổ biến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn. Hiện nay, đa số sinh viên chúng ta tự học, tìm tòi, xem video, website để bổ sung kiến thức. Bản thân em cũng vậy, cũng trải qua những điều đó nên khi còn học e đã luôn ấp ủ tương lai sẽ có 1 web riêng, tạo nên 1 cộng đồng để mọi người có thể chia sẻ, hỗ trợ nhau về học tập. Do đó e chọn đề tài: “QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT HỌC TẬP CHO SINH VIÊN”. Với đề tài này, mọi người có thể tìm các bài học bổ ích, thông tin hữu dụng, bổ sung kiến thức, làm theo các đồ án public để có thêm kinh nghiệm. 2. Mục tiêu nghiên cứu: Mục tiêu của bài toán là chia sẻ được nhiều thông tin, nhu cầu của người truy cập, khiến cho người truy cập ấn tượng, sẽ tìm đến website thường xuyên. Ứng dụng vào việc bán hàng, tiếp thị liên kết sau này. 3. Đối tượng và phạm vi nghiên cứu: Đối tượng nghiên cứu gồm: - Các sinh viên - Vai trò của người quản lý web - Nhu cầu của mọi người ( truy cập để xem các bài viết hay mua, đặt hỗ trợ về các bài tập lớn hay đồ án) 4. Phương pháp nghiên cứu: Phương pháp tài liệu: Nghiên cứu các tài liệu liên quan đến các nội dung nghiên cứu: Tài liệu về các ngôn ngữ lập trình, về lập trình nhúng, vi điều khiến, linh kiện bán dẫn, điện tử số. Phương pháp thực nghiệm: Nghiên cứu, xây dựng các phương pháp đặt hàng và quản lí website. 4
  • 5.
    5. Nhiệm vụvà kết quả đạt được: - Nghiên cứu và tìm hiểu một số website bán hàng trực tuyến. - Phân tích yêu cầu và đề xuất - Thiết kế đặc tả hệ thống. - Xây dựng được cơ sở dữ liệu. - Lập trình các module của hệ thống. 6. Bố cục của bài toán: Trên cơ sở các nội dung nghiên cứu, để đạt mục tiêu đề ra và đảm bảo tính logic, ngoài phần mở đầu và phần kết luận, bài toán được tổ chức thành các chương như sau: Chương 1. Cơ sở lý thuyết. Chương này trình bày các cơ sở lí thuyết về internet và website; trình bày kết quả nghiên cứu, tìm hiểu về các ngôn ngữ lập trình: PHP, HTML, CSS, My SQL được sử dụng trong việc xây dựng đề tài. Chương 2: Phân tích và thiết kế hệ thống. Chương này giới thiệu bài toán và đưa ra các mô hình hệ thống; đề xuất các ý tưởng, chức năng cho phần mềm; trình bày các mô hình thực thể quan hệ, sơ đồ phân cấp chức năng. Phân tích chi tiết các chức năng của người sử dụng và người quản lí; thiết kế giao diện người dùng và thiết dữ liệu, chức năng cho hệ thống. Chương 3: Cài đặt chương trình và kết quả. Trong chương này, nêu kết quả thực hiện được của đề tài và trình bày cách cài đặt chương trình. 5
  • 6.
    CHƯƠNG 1. Giớithiệu chung: 1. Khái niệm cơ bản về Internet: 1.1 Giới thiệu chung: Internet là hệ thống thông tin toàn cầu có thể truy nhập công cộng gồm các mạng máy tính được liên kết với nhau. Nguồn gốc của Internet bắt nguồn từ sự phát triển của chuyển mạch gói và nghiên cứu của bộ quốc phòng Hoa Kỳ ủy quyền thực hiện vào những năm 1960 để cho phép chia sẻ thời gian của máy tính[1]. Vào mạng Internet, bạn có tìm thấy các tài liệu để nghiên cứu, học tập, trao đổi thư từ, mặt hàng, mua bán, … Một trong những mục tiêu của Internet là chia sẻ thông tin giữa những người dùng trên nhiều lĩnh vực khác nhau. 1.2 Phân loại: Các máy tính trên mạng được chia làm 2 nhóm Client và Server. - Client: Máy khách trên mạng, chứa chương trình Client. - Server: Máy phục vụ-máy chủ. Chứa các chương trình Server, tài nguyên (tập tin, tài liệu, …) dùng chung cho nhiều máy khách. Server luôn ở trạng thái chờ yêu cầu và đáp ứng yêu cầu của Client Các dịch vụ thường dùng trong Internet: - Dịch vụ World Wide Web (gọi tắt Web) - Dịch vụ Electronic Mail (gọi tắt là Mail) - Dịch vụ FPT - Để truyền thông với những máy tính khác, mọi máy tính trên Internet phải hỗ trợ giao thức chung TCP/IP (Transmission Control Protocol/Internet Protocol - giao thức điều khiển truyền dữ liệu và giao thức Internet), là một giao thức đồng bộ, cho truyền thông điệp từ nhiều nguồn và tới nhiều đích khác nhau. Ví dụ có thể vừa lấy thư từ trong hộp thư, đồng thời vừa truy cập vào trang web. TCP đảm bảo tính an toàn dữ liệu, IP là giao thức chi phối phương thức vận chuyển dữ liệu trên Internet [1] 1.3 World Wide Web Các khái niệm cơ bản về World Wide Web - World Wide Web (WWW) hay còn gọi là Web là một dịch vu phổ biến nhất hiện nay trên Internet, 85% các giao dịch trên Internet ước lượng thuộc về WWW. Ngày nay số Website trên thế giới đã đạt tới con số khổng lồ. WWW cho bạn truy xuất 6
  • 7.
    thông tin vănbản, hình ảnh, âm thanh, video trên toàn thế giới. Thông qua Website, các quý công ty có thể giảm thiểu tối đa chi phí in ấn và phân phát tài liệu cho khách hàng ở nhiều nơi [2]. Cách tạo trang web Có nhiều cách để tạo trang Web: - Có thể tạo trang web trên bất kì chương trình xử lý văn bản nào. - Tạo web bằng cách viết mã nguồn bởi một trình soạn thảo văn bản như: - Notpad, Wordpad, v.v. là những chương trình soạn thảo có sẵn trong window. - Thiết kế bằng các phần mềm chuyên nghiệp như: Fronpage, Dreamweaver, visual studio… - Để xây dựng một ứng dụng Web hoàn chỉnh và có tính thương mại, bạn cần kết hợp cả Client Script (Kịch bản trình khách) và Server Script (Kịch bản trình chủ) với một loại cơ sở dữ liệu nào đó, chẳng hạn như: MS Access, SQL Server, Oracle, ở đây chúng em dùng MYSQL. - Khi bạn muốn triển khai ứng dụng Web trên mạng, ngoài các điều kiện về cấu hình phần cứng, bạn cần có trình chủ web thường gọi là Web Server. Trình duyệt web (Web Client hay Web Browser) - Trình duyệt web là công cụ truy xuất dữ liệu trên mạng, là phần mềm giao diện trực tiếp với người sử dụng. Nhiệm vụ của web browser là nhận dữ liệu từ người dùng, gửi các yêu cầu đó qua mạng tới các web Server và nhận các dữ liệu cần thiết từ Server để hiển thị lên màn hình. Để sử dụng dịch vụ WWW, Client cần có một chương trình duyệt Web, kết nối vào Internet thông qua một ISP. Các trình duyệt thông dụng hiện nay là Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, … [2] WebServer WebServer: Là một máy tính được nối vào Internet và chạy các phần mềm được thiết kế. WebServer đóng vai trò một chương trình xử lý các nhiệm vụ xác định, như tìm trang thích hợp, xử lý tổ hợp dữ liệu, kiểm tra dữ liệu hợp lệ,… WebServer cũng là nơi lưu trữ cơ sở dữ liệu, là phần mềm đảm nhiệm vai trò Server cung cấp dịch vụ Web [2]. WebServer hỗ trợ các công nghệ khác nhau: - IIS (Internet Information Server): Hỗ trợ ASP, mở rộng hỗ trợ PHP. - Apache: Hỗ trợ PHP. - Tomcat: Hỗ trợ JPS (Java Servlet Page). 7
  • 8.
    Phân loại Website: -Webite tĩnh Website tĩnh là những trang web chỉ bao gồm các văn bản HTML đơn giản mà không có cơ sở dữ liệu hỗ trợ. Nội dung của các trang này thường không thay đổi thường xuyên và được hiển thị trực tiếp từ mã HTML sau khi tải xuống từ máy chủ. Người dùng thường chọn website tĩnh khi nhu cầu cập nhật nội dung ít và nhằm tiết kiệm chi phí. Hoạt động của trang web tĩnh được thể hiện như sau: Ưu điểm: - CSDL nhỏ nên việc phân phát dữ liệu có hiệu quả rõ ràng, Server có thể đáp ứng nhu cầu Client một cách nhanh chóng. Ta nên sử dụng Web tĩnh khi không thay đổi thông tin trên đó [3]. Nhược điểm: - Không đáp ứng được yêu cầu phức tạp của người sử dụng, không linh hoạt [3]. - Webite động Website động là tập hợp của những trang web mà có nội dung có khả năng thay đổi. Sự thay đổi có thể là tùy theo thời gian, tùy theo người dùng, tùy theo ngữ cảnh. Nội dung của website động được lấy từ cơ sở dữ liệu hoặc hệ thống quản lý nội dung (CMS). Do đó, khi bạn cập nhật nội dung của cơ sở dữ liệu thì nội dung của trang web cũng được cập nhật theo [3]. Để tạo được website động, chúng ta thường sử dụng đến các ngôn ngữ phía server (server-side), chẳng hạn như Servlet, JSP, PHP, Python, C#...[3] Một website động thường được đặt trên một máy chủ dịch vụ web (Web Server). Website động sử dụng kịch bản lập trình phía máy khách (Client) hoặc máy chủ (Server) hoặc cả hai để tạo ra nội dung động [3]. Khi người dùng sử dụng máy tính của mình thao tác trên trang web sẽ tạo ra một yêu cầu (request) tới máy chủ. Phía máy chủ nhận và xử lý yêu cầu máy khách dựa vào kịch bản trên máy chủ để tạo ra một trang đơn giản và gửi lại tới người dùng. Trình duyệt 8
  • 9.
    trên máy kháchtải xuống và xử lý mã trong trang để hiển thị thông tin cho người dùng [3]. Hoạt động của Web động được thể hiện như sau: 2. Công nghệ sử dụng 2.1 Ngôn ngữ sử dụng: 2.1.1 PHP là gì? PHP (viết tắt đệ quy của PHP: Hypertext Preprocessor) là tập hợp con của các ngôn ngữ script như JavaScript và Python. Sự khác biệt là ngôn ngữ PHP chủ yếu được sử dụng để giao tiếp phía server trong khi JavaScript có thể được sử dụng cho cả frontend cũng như backend và Python – chỉ dành cho phía client (backend). PHP là một ngôn ngữ lập trình đơn giản và dễ học cho người mới bắt đầu với những cú pháp khá giống với cách viết Java và C, đây cũng là ngôn ngữ lập trình phỗ biến nhất thế giới trong thiết kế website hiện nay với khả năng tương thích cao với mọi trình duyệt. Ưu điểm: Đầu tiên phải kể đến đó là PHP chính là một mã nguồn mở. Vậy nên việc cài đặt và sử dụng ngôn ngữ PHP rất là dễ dàng và cài đặt phổ biến nhất là trên các WebSever thông dụng như Nginx, Apache. Đặc biệt PHP là một mã nguồn miễn phí và được chia sẻ nhiều trên các diễn đàn, cộng đồng và bạn có thể dễ dàng sao chép và cài đặt sử dụng các website hay các ngữ cảnh có sẵn. PHP là ngôn ngữ dễ học và dễ sử dụng, nó có tính linh hoạt cao để giải quyết các vấn đề, các ngữ cảnh và kịch bản với các phương pháp tùy biến khác nhau theo yêu cầu của bạn. 9
  • 10.
    Đây là mộtngôn ngữ có tính công đồng lớn nhất hiện nay vì đây là một mã nguồn mở và cũng rất dễ sử dụng cho nên PHP luôn được ưa chuộng và tạo nên một cộng đồng lớn và chất lượng với các chuyên gia trên toàn thế giới. Khả năng bảo mật cao cho dù đây là mã nguồn mở, PHP được cộng đồng phát triển rất mạnh mẻ vì vậy PHP được coi là an toàn khi sử dụng với sự chia sẻ cách bảo mật. Ngoài ra khi bạn sử dụng ngôn ngữ lập trình PHP sẻ kết hợp các kỹ thuật bảo mật với từng tầng khác nhau giúp khả năng hoạt động cho website ổn định và an toàn hơn. Tương lai của những bạn học ngôn ngữ PHP thì những cơ hội việc làm rất lớn với thu nhập cao có thể lên đến hàng chục triệu một tháng. Hiện nay thì nhu cầu thiết kế và lập trình Website rất cao giúp bạn càng có nhiều cơ hội làm việc và kiếm thêm thu nhập hơn. Nhược điểm: Nhược điểm phải nói đến đầu tiên khi dùng PHP chính là cấu trúc ngôn ngữ của nó nhìn không được gọn gàng cho lắm. Mọi câu lệnh được viết trong cặp câu lệnh <?php … ? >. Không giống như Java và C# khi bạn học thì có thể làm website, các ứng dụng điện thoại, chương trình hay phần mềm… . tuy nhiên đối với PHP chỉ có thể sử dụng làm website và các ứng dụng website mở rộng mà thôi. Nhược điểm lớn nhất đáng nói đến là khả năng bị sao chép và hack mã code dễ hơn và độ an toàn không cao như các ngôn ngữ lập trình khác. Nhưng từ khi lên phiên bản PHP 7 chấm trở lên đã khác phục được rất nhiều vấn đề này. 2.1.2 HTML là gì? HTML là viết tắt cho cụm từ Hypertext Markup Language, tạm dịch là ngôn ngữ đánh dấu siêu văn bản. HTML được sử dụng để tạo và cấu trúc các thành phần trong trang web hoặc ứng dụng, phân chia các đoạn văn, heading, links, blockquotes,… HTML không phải là ngôn ngữ lập trình. Điều này có nghĩa là nó không thể tạo ra các chức năng "động". Hiểu một cách đơn giản hơn, HTML cũng tương tự như phần mềm Microsoft Word, nó chỉ có tác dụng bố cục và định dạng trang web. Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được quy định bằng các cặp thẻ (tag và attributes). Các cặp thẻ này được bao bọc bởi một dấu ngoặc nhọn (ví dụ ) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở và thẻ đóng. Ví dụ, chúng ta có thể tạo một đoạn văn bằng cách đặt văn bản vào trong cặp tag mở đóng văn bản <p> và </p> Ưu điểm: 10
  • 11.
    - Ngôn ngữnày được sử dụng rộng rãi với rất nhiều nguồn tài nguyên hỗ trợ cùng một cộng đồng sử dụng vô cùng lớn đằng sau nó. - Có thể hoạt động mượt mà trên hầu hết mọi trình duyệt hiện hành. - Quá trình học HTML khá đơn giản. - Mã nguồn mở và hoàn toàn miễn phí. - Các Markup sử dụng trong HTML thường ngắn gọn và đồng nhất. - Chuẩn chính của web được vận hành bởi World Wide Web Consortium (W3C). - Dễ dàng tích hợp với các ngôn ngữ backend như PHP, Node.js,... Nhược điểm: - Ngôn ngữ này chỉ được áp dụng chủ yếu cho trang web tĩnh. Đối với các tính năng động, bạn cần sử dụng JavaScript hoặc ngôn ngữ backend bên thứ 3 ví dụ như PHP. - Người dùng phải tạo các trang web riêng lẻ cho HTML, ngay cả khi các phần tử giống nhau. - Một số trình duyệt chấp nhận các tính năng mới một cách chậm chạp. Đôi khi các trình duyệt cũ hơn không phải lúc nào cũng hiển thị các thẻ mới hơn. 2.1.3 CSS là gì? CSS là tên viết tắt của Cascading Style Sheet. Đây là một trong những ngôn ngữ lập trình đã được thiết kế vô cùng đơn giản, thuận tiện trong việc sử dụng. Với CSS hướng tới mục tiêu chính đó là có khả năng giúp đơn giản hóa quá trình tạo ra các trang web. Nhiệm vụ chính của CSS lúc này chính là thực hiện việc xử lý các giao diện đối với một trang web cụ thể. Đó được biết đến là yếu tố màu sắc văn bản, khoảng cách giữa các đoạn, font chữ, bố cục, hình ảnh, màu nền,…. Tất cả những yếu tố này đều có thể thay đổi cũng như chỉnh sửa theo ý muốn hỗ trợ của CSS. Sử dụng CSS lúc này cũng chính là sử dụng công cụ có khả năng cao trong việc hỗ trợ hữu ích, cần thiết đối với quá trình phát triển và thiết kế trang web. Những công việc mà HTML sẽ không xử lý được sẽ được giải quyết tốt nhất với CSS. Nhờ đó, CSS sẽ mang lại khả năng kiểm soát một cách mạnh mẽ, hiệu quả đối với các quá trình trình bày tài liệu HTML cụ thể. Chính vì vậy mà đây còn được biết đến là công cụ thường được kết hợp với đa dạng các ngôn ngữ như HTML hoặc XHTML. Thành Phần Của Cấu Trúc Một Đoạn Nhỏ CSS Selector – Bộ Chọn - Bộ chọn được biết đến là phần mẫu được lựa chọn để có thể lấy những phần tử 11
  • 12.
    HTML mà ngườisử dụng lúc này mong muốn dùng để có thể định nghĩa được các phong cách. Bộ chọn sẽ được áp dụng vào các trường hợp như sau: - Toàn bộ phần tử lúc này sẽ theo một dạng cụ thể nào đó, điển hình như phần tử của tiêu đề H1. - Thuộc tính id cùng với class của những phần từ này. - Các phần tử sẽ dựa vào sự liên quan đến các phần tử khác trong cây phân cấp toàn bộ tài liệu. Declaration – Khai Báo - Đây là dạng khối khai báo bao gồm một hoặc nhiều khai báo khác nhau. Lúc này chúng sẽ được phân tách với nhau bằng ký hiệu chính là dấu chấm phẩy. Trong mỗi một khai báo sẽ bao gồm những giá trị đặc tính và tên của CSS. Chúng sẽ cách nhau bằng dấu phẩy. Khai báo của CSS lúc này luôn được kết thúc bằng dấu chấm phẩy, khối khai báo sẽ nằm tròn các dấu ngoặc móc. Properties – Thuộc Tính - Các cách để có thể tạo kiểu cho các phần tử HTML. Đối với những CSS thì chúng ta chỉ cần lựa chọn thuộc tính mà chính chúng ta mong muốn tác động vào các quy tắc của chính mình. Giá Trị Thuộc Tính - Đây chính là thứ mà ta đã có được cũng như sở hữu trong việc lựa chọn có thể xuất hiện rất nhiều lần để đem đến một thuộc tính cụ thể cho người dùng. Ưu điểm - Tiết Kiệm Thời Gian - CSS Có Khả Năng Tải Nhanh Chóng - Dễ Dàng Thực Hiện Bảo Trì - Thuộc Tính Của CSS Rộng Rãi - Tương Thích Hoàn Hảo Nhược điểm - Hoạt Động Khác Biệt Cho Mỗi Trình Duyệt - Người Mới Dùng Gặp Nhiều Khó Khăn - Có Thể Gặp Rủi Ro Cho Định Dạng Web 2.1.4 My SQL là gì? 12
  • 13.
    - MySQL chínhlà một hệ thống mã nguồn mở quản lý cơ sở dữ liệu. Cũng như tất cả các cơ sở dữ liệu quan hệ khác, MySQL cũng sẽ lưu trữ dữ liệu ở bên trong các bảng được tạo thành từ các cột và các hàng của nó. - SQL là một tập hợp các dữ liệu có cấu trúc. Đó có thể là tất cả mọi thứ từ danh sách mua sắm đơn giản đến nơi chứa lượng thông tin khổng lồ trong mạng công ty hay thư viện ảnh của bạn. - Bên cạnh đó, nó là một phần vô cùng quan trọng trong nhiều phần mềm phổ biến nhất để xây dựng và duy trì mọi thứ, từ các ứng dụng web dành cho khách hàng đến các dịch vụ B2B mạnh mẽ, dựa trên dữ liệu. - Với bản chất là nguồn mở, bộ tính năng phong phú của nó, kết hợp cùng với sự phát triển vượt bậc ngày càng tăng và hỗ trợ liên tục từ Oracle, có nghĩa là các tổ chức quan trọng trên internet như Facebook, Flickr, Twitter, Wikipedia và YouTube đều sử dụng các phần phụ trợ của MySQL. Cách thức hoạt động: - Giống như hầu hết các hệ thống quản lý cơ sở dữ liệu hiện có, MySQL có kiến trúc máy khách-máy chủ và có thể được sử dụng trong môi trường nối mạng. Chương trình máy chủ nằm trên cùng một hệ thống vật lý hoặc ảo nơi các tệp cơ sở dữ liệu được lưu trữ và nó chịu trách nhiệm cho tất cả các tương tác với cơ sở dữ liệu. - Các chương trình máy khách khác nhau như công cụ MySQL để quản trị cơ sở dữ liệu hoặc bất kỳ ứng dụng nào được viết bằng ngôn ngữ lập trình khác, có thể kết nối với máy chủ và thực hiện các yêu cầu cơ sở dữ liệu. - Một máy khách có thể cư trú trên cùng một hệ thống với máy chủ hoặc trên một máy chủ từ xa và gửi các yêu cầu cơ sở dữ liệu qua mạng hoặc kết nối internet đến máy chủ. Điều quan trọng là máy chủ MySQL phải đang chạy để máy khách kết nối với nó. Ưu điểm: - Dễ dàng sử dụng: là hệ thống khá dễ sử dụng, khiến nó trở thành sự chọn lựa khá phổ biến dành cho các nhà phát triển ở tất cả cấp độ kỹ năng. Sử dụng ngôn ngữ truy vấn đơn giản sẽ giúp dễ dàng truy xuất và thao tác dữ liệu. 13
  • 14.
    - Khả năngtương thích rộng – MySQL tương thích với nhiều nền tảng, bao gồm Windows, Linux và macOS. Điều này có nghĩa là nó có thể được sử dụng trên nhiều loại thiết bị, từ máy tính để bàn đến thiết bị di động. - Hiệu suất cao – được thiết kế cho hiệu suất cao, có nghĩa là nó có thể xử lý lượng lớn dữ liệu và lưu lượng truy cập mà không bị chậm. Nó sử dụng các kỹ thuật lập chỉ mục nâng cao và cơ chế lưu vào bộ nhớ đệm để tối ưu hóa hiệu suất - Các tính năng bảo mật mạnh mẽ – cung cấp các tính năng bảo mật mạnh mẽ, bao gồm xác thực người dùng, mã hóa và kiểm soát truy cập. Điều này có nghĩa là dữ liệu nhạy cảm có thể được bảo vệ khỏi truy cập trái phép, giúp ngăn chặn vi phạm dữ liệu và các sự cố bảo mật khác. - Hỗ trợ từ cộng đồng – có một cộng đồng lớn và tích cực bao gồm các nhà phát triển và người dùng, những người đóng góp cho sự phát triển của nó và cung cấp hỗ trợ cho những người khác sử dụng nó. Nhược điểm: - Khả năng mở rộng – đặc biệt khi xử lý một lượng lớn dữ liệu. Điều này là do nó sử dụng một kiến trúc tập trung, có thể dẫn đến các vấn đề về hiệu suất khi cơ sở dữ liệu tăng kích thước. - Độ phức tạp – để thiết lập và bảo trì, đòi hỏi kiến thức và kỹ năng chuyên môn. Điều này có thể gây khó khăn cho các tổ chức hoặc cá nhân nhỏ hơn trong việc sử dụng hiệu quả. - Bảo mật – có thể dễ bị vi phạm bảo mật, đặc biệt nếu nó không được cấu hình đúng cách hoặc nếu các bản cập nhật không được áp dụng kịp thời. - Chức năng hạn chế – có chức năng hạn chế so với một số hệ thống quản lý cơ sở dữ liệu khác, đặc biệt khi xử lý các cấu trúc dữ liệu hoặc kiểu dữ liệu phức tạp. - Chi phí – Mặc dù MySQL là nguồn mở và miễn phí, nhưng có thể có chi phí liên quan đến việc sử dụng nó một cách hiệu quả. Ví dụ: các tổ chức có thể cần thuê nhân viên chuyên trách hoặc mua phần mềm hoặc phần cứng bổ sung để hỗ trợ việc sử dụng MySQL. 14
  • 15.
    CHƯƠNG 2. Phâncông công việc Nguyễn Văn Hải: Phân tích, thiết kế - Tìm hiểu về cách thiết kế web - Tìm hiểu về các ngôn ngữ và chọn các ngôn ngữ phù hợp, đơn giản cho người mới bắt đầu - Lên kịch bản, time line - Code - Xây dựng - Thực tế - Fix bug. CHƯƠNG 3. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 1. Phân tích yêu cầu đề tài 1.1 Phát biểu bài toán : Tên bài toán: “QUẢN LÝ VÀ CHIA SẺ PROJECT IOT,CÁC BÀI VIẾT HỌC TẬP CHO SINH VIÊN” Đây là một loại hình kinh doanh ảo qua mạng bằng cách xây dựng một trang web chia sẻ các bài tập, bài tập lớn, đồ án về thiết kế mạch, phần mềm và phần cứng để mọi người có thể vào đó xem, lựa chọn đọc, tham khảo các project, đặt yêu cầu thiết kế. Ngoài ra còn cứ thể tạo các topic để có thể hỏi, giải đáp thắc mắc từ những người khác hoặc từ chính admin. Sinh viên đăng nhập vào website theo email và mật khẩu của mình. Khi đó, sinh viên sẽ có quyền đặt hàng, bình luận,... Bên cạnh đó, đối tượng sinh viên còn có thể tìm kiếm các bài viết, sản phẩm có sẵn đang bán hoặc được chia sẻ miễn phí. 1.2 Yêu cầu bài toán : Hệ thống có chức năng ủy quyền người dùng, do đó: Đối với người dùng là khách hàng sinh viên:  Được đăng ký tài khoản, đăng nhập.  Được đăng các bài viết, bình luận 15
  • 16.
     Được xemsản phẩm, đặt mua, đặt yêu cầu.  Được thêm thông tin các bài viết của chính mình.  Được tìm kiếm sản phẩm, nội dung liên quan đến ngành  Được quản lí tài khoản của mình Đối với người dùng là quản lý:  Được thêm thông tin các sản phẩm, bài viết mới  Được chỉnh sửa thông tin các sản phẩm, bài viết  Được xóa sản phẩm, bài viết  Được xóa thông tin các thành viên: Khi sinh viên vi phạm các điều luật của trang web hoặc vì một lí do nào đó yêu cầu xóa tài khoản, người quản lí có thể xóa toàn bộ thông tin liên quan đến tài khoản đó.  Được viết bài giới thiệu về sản phẩm. Khi ra mắt sản phẩm mới thì người quản lí có thể viết bài mô tả cho sản phẩm đó, điều này giúp thu hút khách hàng hơn. Từ đó nâng cao chất lượng website hơn 1.3 Đặc tả hệ thống: Vai trò Mô tả Người quản lí Là người có vai trò cao nhất trong hệ thống, người quản lí có thể thêm, sửa, xóa mọi thông tin của hệ thống Sinh viên, khách hàng Không phải thành viên Thao tác trực tiếp trên hệ thống người dùng, với các chức năng: xem bài viết, xem danh sách sản phẩm, xem thông tin sản phẩm, tìm kiếm sản phẩm, đăng ký tài khoản, đăng nhập Thành viên Vận hành các chức năng của khách hàng - không phải thành viên, ngoài ra khách hàng thành viên có thể đặt hàng, xem thông tin đơn hàng, đăng bài, bình luận. 1.4 Sơ đồ chức năng: 16
  • 17.
    1.5 Sơ đồuse case 17
  • 18.
    2. Thiết kếcơ sở dữ liệu: Bảng Product: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Name String 3 Price number 4 salePrice number 5 Amount Number 6 Image string 7 Comments Array 8 Rate Number 9 TypeID String X X 10 Review Array 11 CloundinaryID String 12 CreatedAt Datetime 13 UpdatedAt Datetime 18
  • 19.
    Bảng user STT Tênthuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Name String 3 Email String 4 Password string 5 Address String 6 isAdmin Boolean 7 Phone String 8 CreatedAt Datetime 9 UpdatedAt Datetime Bảng order: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Province String 3 District String 4 Ward String 5 Phone String 6 UserID String X X 7 Price String 8 paymentMethod String 19
  • 20.
    9 Status Status 10 NameString 11 CancelOrder Boolean 12 OrderCode String 13 CreatedAt Datetime 14 UpdatedAt Datetime Bảng SelectLists: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Options String 3 Name String 4 Property String Bảng Message: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Name String 3 Message String 4 ConversationID String X X 5 CreatedAt Datetime 6 UpdateAt Datetime Bảng ListProduct: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 20
  • 21.
    1 Id String XX 2 Name String 3 Image String 4 CloundinaryID String 5 CreatedAt Datetime 6 UpdateAt Datetime Bảng Conversations: STT Tên thuộc tính Kiểu dữ liệu Khóa chính Not Null Khóa ngoại 1 Id String X X 2 Seen Boolean 3 UserID String X X 4 Name String 5 CreatedAt Datetime 6 UpdatedAt Datetime 7 LastMessage CHƯƠNG 4. CÀI ĐẶT CHƯƠNG TRÌNH VÀ KẾT QUẢ 1. Cài đặt chương trình: 21
  • 22.
  • 23.
    CHƯƠNG 5. KẾTLUẬN VÀ HƯỚNG PHÁT TRIỂN 1. Kết quả đạt được: 2. Hạn chế - Hệ thống dành cho khách hàng và cả người quản lí thật sự là một hệ thống lớn, cần đầu tư thời gian, công sức và cả sự nỗ lực để hoàn thiện. Song, do thời gian nghiên cứu có hạn, hệ thống mà em phân tích và thiết kế vẫn còn nhiều hạn chế - Chưa hoàn thiện sản phẩm. - Chưa thực hiện được chức năng thống kê doanh thu - Chưa đầy đủ các chức năng điều khiển đối với vai trò người quản lí. 23
  • 24.
    - Chưa thựchiện được các chức năng sửa đổi thông tin cá nhân. - Tính bảo bảo mật cho hệ thống chưa hoàn chỉnh. - Kiến thức thực tế và kiến thức lập trình còn hạn chế, nên tính chuyên nghiệp của chương trình chưa cao, bắt lỗi chưa kĩ ở một số chổ và một số tính năng chưa tối ưu. 3. Hướng phát triển: Để phát triển được một hệ thống hoàn chỉnh, trước hết cần phải khắc phục các hạn chế của đề tài và bổ sung nhiều tính năng, công nghệ để sản phẩm đến tay người tiêu dùng một cách tuyệt vời nhất có thể. TÀI LIỆU THAM KHẢO 1) PHP là gì? Các ưu và nhược điểm PHP (Có thể bạn chưa biết) (damme.io) 2) HTML là gì? Ưu nhược điểm và cấu trúc của HTML (bizflycloud.vn) 3) Tim Hiểu CSS Là Gì? Đánh Giá Ưu Và Nhược Điểm Của CSS (vtcc.vn) 24
  • 25.
    4) MySQL làgì? Ưu điểm và nhược điểm của MySQL nổi bật (tenten.vn) 5) 04 Báo cáo cuối kỳ_Slide_Word (Tham khảo) - OneDrive (sharepoint.com) 25