1.3.2 Kết quả5 Kết quả về chức năng : Phân quyền hệ thống Nhà hảo tâm có thể xem danh sách đợt quyên góp và tìm kiếm Nhà hảo tâm đã đăng ký tài khoản có thể quyên góp trực tuyến
TỔNG QUAN
Mục đích
Thiết kế và xây dựng website cho phép nhà hảo tâm quyên góp từ thiện, sử dụng ngôn ngữ Java với công nghệ JSP/Servlet và cơ sở dữ liệu MySQL Website phục vụ hai nhóm đối tượng chính: quản trị viên và người dùng Các tính năng dành cho quản trị viên bao gồm quản lý danh mục, nhà tổ chức, lượt quyên góp và người dùng Đối với người dùng, website cung cấp các chức năng như đăng nhập, đăng ký, quyên góp và xem bài viết quyên góp.
Phạm vi
Xây dựng phần backend chương trình bằng ngôn ngữ Java và cơ sở dữ liệu MySQL
Tìm hiểu về các trang web liên quan tới quyên góp từ thiện
Xây dựng hệ thống cơ sở dữ liệu cần thiết
Tìm hiểu về tích hợp thanh toán qua vnpay
Xây dựng giao diện quản trị cho website
Xây dựng giao diện người dùng cho website
Tổng quan
1.3.1 Lý do chọn đề tài
Trong những năm gần đây, Việt Nam và nhiều quốc gia trên thế giới đã phải đối mặt với những hậu quả nghiêm trọng từ thiên tai và dịch bệnh, như cháy rừng ở Amazon năm 2019, cháy rừng tại Pháp và Tây Ban Nha năm 2022, lũ lụt ở miền Trung Việt Nam, và đặc biệt là đại dịch COVID-19 bùng phát tại Vũ Hán, đã khiến hàng triệu người thiệt mạng và gây ra tình trạng khan hiếm lương thực, thực phẩm và khẩu trang Hiện nay, việc quyên góp tiền bạc và sức lực từ cộng đồng là vô cùng cần thiết để ổn định tình hình, đồng thời phát huy tinh thần “lá lành đùm lá rách” của nhân dân Việt Nam.
Hiện nay, một vấn đề nghiêm trọng ở Việt Nam là một số cơ quan, tổ chức và cá nhân lợi dụng sự thiếu hiểu biết của người dân để lừa đảo, chiếm đoạt tiền của các mạnh thường quân Hành vi này không chỉ làm giảm lòng tốt mà còn khiến niềm tin của cộng đồng sụt giảm, dẫn đến việc quyên góp chính đáng không nhận được sự ủng hộ và số tiền đóng góp cũng giảm đi đáng kể.
Tôi muốn xây dựng một website nhằm truyền bá quyên góp từ thiện, đáp ứng nhu cầu hỗ trợ từ các hoàn cảnh khó khăn và nhu cầu của các nhà hảo tâm muốn quyên góp vào những nơi an toàn, đáng tin cậy Website này hy vọng sẽ giúp đỡ người già, trẻ em mồ côi, xây dựng cơ sở vật chất giáo dục và bảo vệ môi trường, góp phần cải thiện đời sống cho những người cần giúp đỡ.
5 Kết quả về chức năng :
Nhà hảo tâm có thể xem danh sách đợt quyên góp và tìm kiếm
Nhà hảo tâm đã đăng ký tài khoản có thể quyên góp trực tuyến
Quản trị viên có quyền sử dụng các chức năng quản lý của hệ thống
6 Kết quả về giao diện
Giao diện thân thiện dễ sử dụng
Giao diện có khả năng responsive, thích ứng với các loại màn hình khác nhau
Chức năng quản lý danh mục
1 Chức năng quản lý danh mục
2 Thêm/cập nhật danh mục
3 Chức năng quản lý nhà tổ chức
4 Thêm/cập nhật nhà tổ chức
5 Chức năng Quản lý quỹ quyên góp
6 Thêm/cập nhật quỹ quyên góp
7 Chức năng quản lý lượt quyên góp
8 Chức năng quản lý tài khoản
9 Thêm/cập nhật tài khoản
10 Chức năng đăng ký người dùng mới
11 Chức năng đăng nhập và kiểm soát truy cập
12 Chức năng xem thông tin cá nhân
13 Chức năng xem lịch sử quyên góp
14 Chức năng tìm kiếm quỹ quyên góp
15 Chức năng tìm kiếm quỹ quyên góp theo danh mục
16 Chức năng xem thông tin chi tiết quỹ quyên góp
18 Chức năng thay đổi mật khẩu
CHƯƠNG 2 CÁC CÔNG NGHỆ VÀ CƠ SỞ DỮ LIỆU
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến, được ứng dụng rộng rãi trong phát triển phần mềm, thiết kế trang web, tạo game và phát triển ứng dụng cho thiết bị di động.
Java được phát triển với tiêu chí “Viết một lần, thực thi khắp nơi” (WORA), cho phép các chương trình phần mềm viết bằng Java có thể chạy trên nhiều nền tảng khác nhau Điều này chỉ khả thi khi có môi trường thực thi phù hợp hỗ trợ nền tảng đó.
HTML là một ngôn ngữ đánh dấu quan trọng, xác định ý nghĩa, mục đích và cấu trúc của tài liệu Kết hợp với CSS và JavaScript, HTML tạo thành bộ ba nền tảng kỹ thuật thiết yếu cho hoạt động của website.
HTML cung cấp cấu trúc cơ bản của các trang web, được cải tiến và sửa đổi bởi các công nghệ khác như CSS và JavaScript.
CSS được sử dụng để kiểm soát trình bày, định dạng và bố cục
JavaScript được sử dụng để kiểm soát hành vi của các yếu tố khác nhau.
JSP, viết tắt của Java Server Pages, là công nghệ Java cho phép các nhà phát triển tạo ra nội dung HTML, XML và các định dạng khác, giúp làm cho trang web trở nên sinh động hơn.
JSP thường được sử dụng làm view trong ứng dụng theo mô hình MVC Mặc dù JSP có thể đáp ứng nhiều yêu cầu khác, nhưng việc sử dụng nó làm view giúp thuận tiện cho việc debug và tái sử dụng mã Trong khi đó, servlet thường đảm nhận vai trò controller.
- Servlet có thể được mô tả bằng nhiều cách, tùy thuộc vào ngữ cảnh:
Một công nghệ được sử dụng để tạo ra ứng dụng web.
Một API cung cấp các interface và lớp bao gồm các tài liệu.
Một thành phần web được triển khai trên máy chủ để tạo ra trang web động.
12 Có nhiều interface và các lớp trong API servlet như Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse, …
Java Servlet là một chương trình hoạt động trên Web hoặc máy chủ ứng dụng, đóng vai trò như lớp trung gian giữa yêu cầu từ trình duyệt Web hoặc khách hàng HTTP và cơ sở dữ liệu hoặc các ứng dụng trên máy chủ HTTP.
Mô hình MVC (Model-View-Controller) là một kiến trúc phần mềm quan trọng trong kỹ thuật phát triển giao diện người dùng MVC được chia thành ba thành phần chính, bao gồm Model, View và Controller, mỗi phần đảm nhận nhiệm vụ riêng biệt và hoạt động độc lập với nhau Mô hình này giúp tổ chức mã nguồn hiệu quả, nâng cao khả năng bảo trì và phát triển ứng dụng.
Model (dữ liệu): Quản lí xử lí các dữ liê –u.
View (giao diện): Nới hiển thị dữ liê –u cho người dùng.
Controller (bộ điều khiển): Điều khiển sự tương tác của hai thành phần Model và View.
Bootstrap là một framework front-end miễn phí và mã nguồn mở, được phát triển bởi nhóm Bootstrap Core và thiết kế bởi Mark Otto cùng Jacob Thornton Framework này chủ yếu dựa trên các mẫu thiết kế HTML và CSS, kết hợp với các biểu mẫu, phần mở rộng JavaScript và các thành phần khác để phát triển ứng dụng web hiệu quả.
JQuery là một thư viện mã nguồn mở miễn phí, được phát triển bởi nhóm The JQuery và thiết kế bởi John Resig, nhằm hỗ trợ thiết kế kịch bản lệnh phía máy khách cho HTML Ra mắt lần đầu vào năm 2006, JQuery được viết bằng JavaScript và thường được sử dụng để xây dựng các hệ thống giao diện người dùng hiệu quả.
HTML giúp tăng tốc độ phản ứng của các ứng dụng và trang web, đồng thời đảm bảo khả năng truy cập trên mọi thiết bị Jquery, một thư viện JavaScript dễ phát triển, thường được nhúng trong HTML để cải thiện tính năng và hiệu suất của trang web.
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới, được các nhà phát triển ưa chuộng nhờ tốc độ cao, tính ổn định và dễ sử dụng Hệ thống này hoạt động trên nhiều hệ điều hành và cung cấp nhiều hàm tiện ích mạnh mẽ, làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng có truy cập cơ sở dữ liệu trên internet Người dùng có thể tải MySQL miễn phí từ trang chủ, với nhiều phiên bản tương thích cho các hệ điều hành như Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris và SunOS.
2.2.1 Lược đồ cơ sở dữ liệu
2.2.2 Liệt kê danh sách các bảng dữ liệu
20 STT 21 Tên bảng 22 Nội dung
23 1 24 user 25 Danh sách tài khoản
26 2 27 category 28 Danh sách danh mục
29 3 30 foundation 31 Danh sách nhà tổ chức quỹ
32 4 33 fund 34 Danh sách quỹ quyên góp
35 5 36 donation 37 Danh sách lượt quyên góp
2.2.2 Đặc tả chi tiết từng bảng dữ liệu
41 Tên trường 42 Kiểu dữ liệu
49 2 50 Unique 51 username 52 Varchar(45) 53 Tên tài khoản
58 Mật khẩu đã được mã hóa
59 4 60 61 role 62 INT 63 Vai trò sử dụng
69 6 70 71 sdt 72 Varchar(20) 73 Số điện thoại
84 9 85 86 status 87 Varchar(45) 88 Trạng thái tài khoản 89
92 Tên trường 93 Kiểu dữ liệu
97 id 98 INT 99 Mã danh mục
110 111 112 status 113 Varchar(45) 114 Trạng thái danh mục
118Tên trường 119Kiểu dữ liệu
1211 122 Khóa 123id 124INT 125Mã tổ chức quỹ chính
135Mô tả tổ chức quỹ
136 4 137 Unique 138 email 139 Varchar(45) 140 Email liên hệ
141 142 143 status 144 Varchar(45) 145 Trạng thái nhà tổ chức 146
149Tên trường 150Kiểu dữ liệu
154id 155INT 156Mã quỹ quyên góp
180 BIGINT 181 Mục tiêu hoàn thành
182 7 183 184 status 185 Varchar(45) 186 Trạng thái quỹ
187 8 188 189 created_date 190 DATE 191 Ngày tạo quỹ
192 9 193 194 end_date 195 DATE 196 Ngày kết thúc quỹ
199 category_id 200 INT 201 Mã danh mục
205 INT 206 Mã tổ chức quỹ
210Tên trường 211Kiểu dữ liệu
215id 216INT 217Mã lượt quyên góp
221INT 222Số tiền quyên góp
228 4 229 230 created_date 231 DATE 232 Ngày tạo lượt quyên góp
235 user_id 236 INT 237 Mã người dùng
240 fund_id 241 INT 242 Mã quỹ quyên góp 243
CHƯƠNG 3 HƯỚNG DẪN SỬ DỤNG
3.1 Chức năng quản lý danh mục
Đối tượng sử dụng :Là chức năng dành cho quản trị viên
Lối vào :Từ menu quản trị chọn phần Danh mục
Quản trị viên có khả năng quản lý các danh mục trong hệ thống thông qua các chức năng như hiển thị danh sách danh mục, tìm kiếm theo tiêu chí lọc, thêm mới, sửa đổi nội dung và xóa danh mục.
Kết quả khi bấm nút Tìm kiếm : Tìm kiếm theo các tiêu chí lọc (id và name) , phân trang kết quả tìm kiếm
Kết quả khi bấm nút Thêm mới : Màn hình sẽ điều hướng sang trang Thêm/Cập nhật Danh Mục
Kết quả khi bấm nút Edit : Màn hình sẽ điều hướng sang trang Thêm/Cập nhật
Danh Mục, dữ liệu về danh mục sẽ được hiển thị trên form
Kết quả khi bấm nút Delete : Xác nhận trước khi xóa, hiển thị thông báo nếu thành công hoặc thất bại