1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo Đồ án lập trình web 1 tên Đề tài web blog

30 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 1,29 MB

Nội dung

---LỜI CẢM ƠNChúng em xin gửi lời cảm ơn chân thành tới cô Lý Quỳnh Trân đã là người đã trực tiếpgiúp đỡ, giảng dạy học phần Lập trình Web 2, tận tâm hướng dẫn em hoàn thành tốt cácgiai

Trang 1

TRƯỜNG ĐẠI HỌC ĐÔNG Á KHOA CÔNG NGHỆ THÔNG TIN

-2 Nguyễn Thành Đạt

Trang 2

-1, tháng 12 năm 2024

Trang 3

MỤC LỤC

MỞ ĐẦU 4

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 7

1.1 Ngôn ngữ lập trình Java 7

1.1.1 Java là gì? 7

1.1.2 Lịch sử phát triển 7

1.2 Spring Framework 8

1.2.1 Đôi nét về lịch sử 8

1.2.2 Tổng quan về Spring 9

1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL 12

1.3.1 Đặc điểm nổi bật của MySQL 13

1.4 Mô hình Spring MVC (Model – View – Controller) 14

1.4.1 Cách thức hoạt động của Spring MVC 15

1.4.2 Ưu điểm của mô hình Spring MVC 17

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH 18

2.1 Đối tượng sử dụng hệ thống 18

2.1.1 Người dùng (User) 18

2.1.2 Khách mời (Guest) 18

2.2 Các chức năng chính 18

2.2.1 Đăng kí 18

2.2.2 Đăng nhập 18

2.2.3 Hiện thị bài viết 18

2.2.4 Hiện thị chi tiết bài viết 19

2.2.5 Thêm bài viết 19

2.2.6 Sửa bài viết 19

2.2.7 Xóa bài viết 19

2.3 Biểu đồ use case 20

2.3.1 Biểu đồ use case tổng quát 20

Trang 4

-CHƯƠNG 3: DEMO -CHƯƠNG TRÌNH 22

3.1 Thiết kế giao diện 22

3.1.1 Trang chủ 22

3.1.2 Trang Đăng nhập 23

3.1.3 Trang Đăng kí 23

3.1.4 Trang quản lí bài viết cá nhân 24

3.1.5 Trang chi tiết bài viết 24

3.1.6 Trang tạo bài viết 25

KẾT LUẬN 26

1 Ưu điểm 26

2 Hướng phát triển 26

Trang 5

-LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn chân thành tới cô Lý Quỳnh Trân đã là người đã trực tiếpgiúp đỡ, giảng dạy học phần Lập trình Web 2, tận tâm hướng dẫn em hoàn thành tốt cácgiai đoạn học tập và phát triển các dự án trong học phần trên, tận tình hướng dẫn và truyềndạy những kiến thức quý báu trong chương trình học, chia sẻ kinh nghiệm và kỹ năng củabản thân cho bài báo cáo của nhóm chúng em được hoàn thành một cách tốt nhất

Với lòng biết ơn sâu sắc nhất, em xin gửi đến quý Thầy, Cô ở Khoa Công nghệ thông tinTrường Đại học Đông Á đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thờigian học tập tại trường

Qua quá trình được hướng dẫn và tự nghiên cứu chắc chắn sẽ còn tồn đọng nhiều hạnchế và không tránh khỏi những thiếu sót, một phần nữa vì thời gian có hạn, kiến thức và kỹnăng về làm việc với lập trình Web còn hạn chế nên bài báo cáo lần này còn nhiều thiếu sót

và chưa thật sự hoàn chỉnh Nhóm chúng em rất mong nhận được và lắng nghe những ýkiến đóng góp quý báu của quý Cô và mong cô sẽ thông cảm cho bài báo cáo này nếu chưađáp ứng được đầy đủ các yêu cầu

Đà Nẵng, ngày 12 tháng 08 năm 2024

Trang 6

-MỞ ĐẦU

1 Lý do chọn đề tài

Việc phát triển một blog về công nghệ, lập trình, chia sẻ mẹo và kỹ năng, cùng với cácbài review sách về công nghệ là một hướng đi hợp lý trong bối cảnh hiện nay Trong thờiđại công nghệ số, nhu cầu tìm hiểu và cập nhật thông tin về các chủ đề như lập trình, côngnghệ mới, kỹ năng làm việc trong ngành công nghệ ngày càng lớn Các chuyên gia, lậptrình viên và những người yêu thích công nghệ luôn tìm kiếm những nền tảng chia sẻ kiếnthức, những bài viết chia sẻ kinh nghiệm thực tế và các tài liệu hữu ích

Ví dụ thực tế, các blog như freeCodeCamp hay Medium đã thành công trong việc cung cấpcác bài viết chất lượng về lập trình và công nghệ cho cộng đồng lập trình viên Những nềntảng này không chỉ cung cấp kiến thức mà còn là nơi để các lập trình viên chia sẻ kinhnghiệm thực tế, cũng như học hỏi các kỹ năng mới

Việc xây dựng một blog với chủ đề này không chỉ đáp ứng nhu cầu học hỏi của cộng đồng

mà còn giúp người viết nâng cao khả năng viết lách, nghiên cứu, đồng thời chia sẻ kiếnthức với mọi người Việc sử dụng Node.js giúp dự án có thể vận hành mượt mà, dễ mởrộng và tích hợp các tính năng hiện đại Chẳng hạn, sử dụng Node.js và Express giúp xử lýcác yêu cầu web nhanh chóng và dễ dàng mở rộng hệ thống khi cần thiết

2 Mục tiêu của đề tài

Mục tiêu chính của đề tài là xây dựng một blog về công nghệ, lập trình, chia sẻ các mẹo,

kỹ năng, và review sách về công nghệ Cụ thể, mục tiêu bao gồm:

- Phát triển nền tảng blog: Tạo ra một website dễ sử dụng, thân thiện với người

dùng, giúp họ dễ dàng đọc và tìm kiếm các bài viết về các chủ đề công nghệ, lậptrình, mẹo vặt, và sách công nghệ Ví dụ, một nền tảng như Dev.to cho phép người

Trang 7

-dùng tìm kiếm và đọc các bài viết về lập trình, công nghệ với giao diện dễ sử dụng

và phân loại rõ ràng

- Cung cấp kiến thức và kinh nghiệm: Tạo ra các bài viết chất lượng, có giá trị học

hỏi cho cộng đồng, giúp họ nâng cao kỹ năng lập trình và hiểu biết về các công nghệmới Ví dụ, các bài viết về Node.js hoặc React sẽ hướng dẫn người đọc cách sử dụngcác công nghệ này trong phát triển web, giúp họ nắm bắt được xu hướng công nghệmới

- Chia sẻ tài liệu và sách: Cung cấp các bài đánh giá, giới thiệu sách hữu ích về lập

trình và công nghệ cho những ai muốn tìm hiểu thêm và phát triển bản thân trongngành này Ví dụ, các bài review về các cuốn sách như "Clean Code" của Robert C.Martin hoặc "You Don't Know JS" của Kyle Simpson sẽ cung cấp những hiểu biếtsâu sắc về lập trình và kỹ thuật phát triển phần mềm

- Tạo một cộng đồng: Khuyến khích người dùng tham gia đóng góp ý tưởng, chia sẻ

bài viết, thảo luận về các chủ đề công nghệ nhằm xây dựng một cộng đồng học hỏi

và phát triển cùng nhau Điều này có thể được thực hiện thông qua các tính năng nhưbình luận, chia sẻ bài viết, hoặc tổ chức các sự kiện trực tuyến (webinars,workshops)

3 Đối tượng và phạm vi nghiên cứu

- Đối tượng: Đối tượng chính của blog này là những người đam mê công nghệ, lập trìnhviên, sinh viên ngành CNTT, những người muốn học hỏi các kỹ năng lập trình, kiếnthức công nghệ mới, và những ai yêu thích đọc sách về công nghệ Chẳng hạn, sinhviên học ngành Công nghệ thông tin hoặc những người mới bắt đầu học lập trình sẽ tìmthấy những bài viết hướng dẫn cơ bản về lập trình web, hoặc những bài chia sẻ về cáccông cụ lập trình.Blog cũng sẽ hướng đến các chuyên gia trong ngành muốn chia sẻnhững kinh nghiệm và kiến thức của mình Ví dụ, những lập trình viên có kinh nghiệmlàm việc với các công nghệ như Vue.js, Django, hay Docker có thể đóng góp bài viết

về cách sử dụng và tối ưu hóa các công cụ này

Trang 8

- Phạm vi nghiên cứu: Phạm vi nghiên cứu của đề tài bao gồm việc phát triển và duytrì một nền tảng blog sử dụng SpringFrameWork, đồng thời cung cấp các bài viết về cácchủ đề công nghệ như lập trình, kỹ năng lập trình, các mẹo sử dụng công cụ lập trình, vàcác bài review sách công nghệ.

4 Phương pháp nghiên cứu

Trong quá trình phát triển ứng dụng web blog sử dụng Node.js, nhóm đã áp dụng cácphương pháp nghiên cứu sau để đảm bảo dự án được thực hiện một cách hiệu quả và đạtđược mục tiêu đề ra:

- Nghiên cứu tài liệu:

Tìm hiểu về ngôn ngữ java nền tảng và các thư viện, framework hỗ trợ, như SpringFramework để xây dựng ứng dụng web

Phân tích các tài liệu về hệ quản trị cơ sở dữ liệu MySQL, phù hợp với yêu cầu lưutrữ dữ liệu của ứng dụng

Tham khảo tài liệu về các công nghệ giao diện người dùng, chẳng hạn như HTML,

CSS, và JavaScript, để tạo giao diện web tương tác

Nghiên cứu các bài viết và hướng dẫn về thiết kế API RESTful và bảo mật ứng dụngweb

- Phân tích yêu cầu:

Thu thập và phân tích yêu cầu người dùng thông qua việc khảo sát hoặc tham khảocác ứng dụng blog hiện có

Đưa ra danh sách các tính năng cốt lõi cần thiết như quản lý bài viết, bình luận, tìmkiếm, và hệ thống phân quyền người dùng

Trang 9

-CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Ngôn ngữ lập trình Java

1.1.1 Java là gì?

Java là một ngôn ngữ lập trình hướng đối tượng (OOP) được thiết kế với mục tiêu đơngiản hóa quá trình lập trình và giảm thiểu lỗi Khác với nhiều ngôn ngữ lập trình khác, Javakhông biên dịch trực tiếp mã nguồn thành mã máy, cũng không chỉ thông dịch tại thời điểmchạy Thay vào đó, mã nguồn Java được biên dịch thành bytecode Bytecode này sẽ đượcthực thi bởi môi trường thực thi Java (Java Runtime Environment - JRE)

Cú pháp của Java có nhiều nét tương đồng với C và C++ nhưng được tối giản để dễ học, dễviết, và ít xử lý cấp thấp hơn Điều này giúp lập trình viên tiết kiệm thời gian và công sứctrong việc phát triển và sửa lỗi chương trình

1.1.2 Lịch sử phát triển

Java được James Gosling và các đồng nghiệp tại Sun Microsystems phát triển vào năm

1991 Ban đầu, ngôn ngữ này có tên là "Oak" (cây sồi), lấy cảm hứng từ những cây sồixung quanh văn phòng của Gosling Đến năm 1994, ngôn ngữ này chính thức được đổi tênthành "Java" và ra mắt công chúng

Sau khi Oracle mua lại Sun Microsystems vào giai đoạn 2009–2010, Oracle đã cam kết duytrì và phát triển công nghệ Java với tinh thần minh bạch và khuyến khích sự tham gia củacộng đồng

Dưới đây là các cột mốc quan trọng trong lịch sử phát hành của Java:

JDK 1.0: Phát hành ngày 23/01/1996

JDK 1.1: Phát hành ngày 19/02/1997

J2SE 1.2 (Playground): Phát hành ngày 08/12/1998

Trang 10

-J2SE 1.3 (Kestrel): Phát hành ngày 08/05/2000.

J2SE 1.4.0 (Merlin): Phát hành ngày 06/02/2002

J2SE 5 (Tiger): Phát hành ngày 30/09/2004

Java SE 6 (Mustang): Phát hành ngày 11/12/2006

Java SE 7 (Dolphin): Phát hành ngày 28/07/2011

Ngày nay, Spring Framework đã trở thành một trong những framework mã nguồn mởphổ biến nhất trong cộng đồng Java để xây dựng ứng dụng doanh nghiệp Các ý tưởng thựctiễn ban đầu của Rod Johnson đã được tiếp nối, mở rộng thành một hệ sinh thái toàn diện,

hỗ trợ tốt trong việc phát triển ứng dụng doanh nghiệp Theo thống kê, hơn 50% các ứngdụng web Java hiện nay đang sử dụng Spring Framework

Spring Framework được thiết kế nhằm giảm bớt sự phức tạp trong phát triển ứng dụng, dựa trên các nguyên lý sau:

Trang 11

- Sử dụng POJO (Plain Old Java Object): Các ứng dụng được xây dựng từ những đốitượng Java đơn giản, giúp giảm sự phụ thuộc vào các API phức tạp.

- Nới lỏng ràng buộc giữa các thành phần: Ứng dụng cơ chế Dependency Injection (DI)

để kết nối các thành phần, đồng thời khuyến khích việc thiết kế bằng cách sử dụnginterface

- Lập trình khai báo (Declarative Programming): Sử dụng quy tắc (convention) và cáckhía cạnh (aspect) để quản lý các hành vi chung, giảm nhu cầu viết mã thủ công phứctạp

- Giảm mã lặp và mã mẫu (Boilerplate Code): Cung cấp các template và tích hợp sẵncác khía cạnh phổ biến để loại bỏ mã thừa, nâng cao hiệu suất và trải nghiệm lập trình

Những nguyên tắc này giúp Spring Framework duy trì vị thế là công cụ đắc lực cho việcxây dựng các ứng dụng doanh nghiệp, đặc biệt trong môi trường phát triển Java

1.2.2 Tổng quan về Spring

Spring Framework là một nền tảng mạnh mẽ, phổ biến để phát triển các ứng dụng doanhnghiệp trong Java Nó cung cấp một hệ sinh thái phong phú với nhiều thành phần và dự áncon, giúp các nhà phát triển xây dựng ứng dụng một cách linh hoạt và hiệu quả

a Spring core

- Mô tả: Đây là trung tâm của Spring Framework, cung cấp các chức năng cơ bản đểxây dựng ứng dụng

- Vai trò: Là nền tảng cơ sở cho tất cả các thành phần và dự án khác của Spring

- Quản lý vòg đời của các bean

- Hỗ trợ Depenndency Injection (DI)

- Cung cấp tính năng AOP (Aspect-Oriented Programming)

b Spring Bean

- Mô tả: Bean là các đối tượng Java được quản lý bởi Spring Container

Trang 12

- Vai trò: Là trái tim của Spring Core, chịu trách nhiệm quản lý sự khởi tạo, vòng đời,

và các phụ thuộc của các đối tượng trong ứng dụng

- Định nghĩa bean thông qua file cấu hình XML, chú thích (annotation), hoặc Javaconfig

c Dependency Injection (DI)

- Mô tả: DI là một cơ chế cho phép tự động tiêm các phụ thuộc cần thiết vào đốitượng

- Giảm ràng buộc giữa các thành phần, làm cho ứng dụng dễ mở rộng và bảo trì hơn

- Tăng tính module hóa

d Spring Context

- Mô tả: Spring Context là lớp bao quát, tích hợp các tính năng của Spring Core

- Vai trò: Cung cấp môi trường thực thi cho ứng dụng Spring, giúp quản lý toàn bộ

các bean và phụ thuộc

e Spring Expression Language (SpEL)

- Mô tả: Một ngôn ngữ biểu thức mạnh mẽ trong Spring, hỗ trợ cấu hình động và truycập dữ liệu linh hoạt

- Đánh giá biểu thức trong cấu hình XML và annotation

- Tích hợp vào các thành phần như Spring Security và Spring Data

f Spring MVC

- Mục đích: Xây dựng ứng dụng web theo mô hình MVC (Model-View-Controller)

- Tách biệt rõ ràng giữa logic nghiệp vụ (business logic), dữ liệu, và giao diện

- Tích hợp dễ dàng với các view như JSP, Thymeleaf, hoặc FreeMarker

g Spring Data

- Cơ sở dữ liệu quan hệ**: MySQL, PostgreSQL, Oracle

- Cơ sở dữ liệu phi quan hệ**: MongoDB, Cassandra, Redis

Trang 13

- MapReduce: Hadoop, Spark.

- Tích hợp ORM (Object-Relational Mapping) với JPA, Hibernate

- Hỗ trợ repository, giúp giảm mã xử lý dữ liệu thủ công

h Spring Security

- Vai trò: Cung cấp cơ chế bảo mật cho ứng dụng

- Authentication: Xác thực danh tính người dùng

- Authorization: Quản lý quyền truy cập vào các tài nguyên

- Tích hợp: Hỗ trợ OAuth, JWT, và xác thực dựa trên session

i Spring Boot

- Mục tiêu: Đơn giản hóa và tăng tốc quá trình phát triển ứng dụng Spring

- Cung cấp cấu hình mặc định (auto-configuration)

- Tích hợp máy chủ nhúng như Tomcat hoặc Jetty, giúp chạy ứng dụng mà không cầncấu hình thủ công

- Công cụ Spring Initializr hỗ trợ khởi tạo dự án nhanh

l Spring XD (eXtreme Data)

- Vai trò: Kết nối ứng dụng với các API bên thứ ba như Facebook, Twitter, LinkedIn. -

Trang 14

- Thu thập, xử lý, và phân tích dữ liệu từ nhiều nguồn.

m Spring Social

- Vai trò: Kết nối ứng dụng với các API bên thứ ba như Facebook, Twitter, LinkedIn

- Hỗ trợ xác thực người dùng qua mạng xã hội

- Gửi và nhận dữ liệu từ các nền tảng mạng xã hội

- Linh hoạt: Hỗ trợ nhiều thành phần và module, phù hợp với nhiều loại ứng dụng

- Tối ưu hóa phát triển: Giảm mã lặp và cấu hình thủ công

- Bảo mật cao: Tích hợp sẵn các cơ chế bảo mật toàn diện

- Khả năng mở rộng: Dễ dàng tích hợp với các công nghệ mới như Cloud, Big Data

- Spring Framework không chỉ là một framework, mà còn là một hệ sinh thái đầy đủ,giúp các nhà phát triển hiện thực hóa các ý tưởng từ đơn giản đến phức tạp một cáchhiệu quả nhất

Hình 1.1 : Mô hình Spring Framework runtime 1.3 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL

MySQL là một trong những hệ quản trị cơ sở dữ liệu (Database Management System DBMS) nguồn mở phổ biến nhất trên thế giới Được đánh giá cao bởi các nhà phát triển, -

Trang 15

-MySQL trở thành lựa chọn hàng đầu trong việc phát triển ứng dụng, đặc biệt là các ứngdụng web.

1.3.1 Đặc điểm nổi bật của MySQL

a Hiệu suất cao

- MySQL nổi bật với tốc độ xử lý nhanh, giúp tăng hiệu quả khi truy cập và quản lý

dữ liệu

b Tính ổn định và dễ sử dụng

- Hệ thống được thiết kế đơn giản, dễ cài đặt và cấu hình, đồng thời đảm bảo hoạtđộng ổn định ngay cả với các ứng dụng lớn

c Khả năng tương thích cao

- MySQL hỗ trợ đa nền tảng, hoạt động trên nhiều hệ điều hành như Windows, Linux,MacOS, Unix, FreeBSD, Solaris, NetBSD, Novell NetWare và nhiều hệ điều hànhkhác

Trang 16

-g Hỗ trợ ngôn ngữ truy vấn SQL

- MySQL sử dụng Structured Query Language (SQL), là một trong những ngôn ngữtiêu chuẩn để quản lý và thao tác dữ liệu trong các cơ sở dữ liệu quan hệ

h Hệ điều hành hỗ trợ

- Windows (phiên bản Win32)

- Linux, Mac OS X, Unix

- FreeBSD, NetBSD

- SGI Irix, Solaris, SunOS, và nhiều hệ điều hành khác

Với khả năng xử lý mạnh mẽ, tính bảo mật cao và khả năng tương thích đa dạng, MySQLtrở thành một lựa chọn hàng đầu cho việc phát triển ứng dụng Là một hệ quản trị cơ sở dữliệu quan hệ (RDBMS), MySQL không chỉ đơn giản, linh hoạt mà còn miễn phí, giúp cácnhà phát triển dễ dàng tiếp cận và triển khai

1.4 Mô hình Spring MVC (Model – View – Controller)

Spring MVC là một module con trong Spring Framework, được thiết kế để hỗ trợ việcphát triển ứng dụng web theo kiến trúc Model-View-Controller (MVC) Nó cung cấp cácthành phần và cơ chế linh hoạt để tách biệt logic xử lý, giao diện người dùng, và dữ liệuứng dụng, giúp giảm sự phụ thuộc giữa các phần này

Ngày đăng: 20/12/2024, 15:18

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN