TỔNG QUAN VỀ MÔ HÌNH BÀI TOÁN
JAVA
- Java là một ngôn ngữ lập trình hướng đối tượng Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi chạy.
- Java là một công nghệ được hãng Sun Microsystems xây dựng từ cuối năm
1990 với cái tên Oak và hiện nay đang phát triển vượt bậc với sự đóng góp của hàng vạn lập trình viên trên thế giới Ban đầu, Oak được kỹ sư James Gosling và các cộng sự xây dựng với mục đích lập trình cho các mặt hàng điện dân dụng với mục tiêu nhỏ gọn và tương thích được với nhiều loại thiết bị phần cứng khác nhau Sau đó Oak được sử dụng trong nhiều dự án như dự án Xanh (Blue Project), dự án Phim theo yêu cầu (Video on demand Project) Sau một chuyến du lịch tới đảo Java của Indonesia, nhóm phát triển Oak đã đổi tên Oak thành Java.
- Java được tạo ra với tiêu chí “Viết một lần, thực thi khắp nơi” Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó Môi trường thực thi của Java hiện hỗ trợ Sun Solaris, Linux, Mac OS, Windows Ngoài ra, một số công ty, tổ chức cũng như cá nhân khác nhau cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP Trong đó đáng nói nhất là IBM Java Platform hỗ trợ Windows, Linux.
+ Độc lập nền tảng: Mã nguồn Java được biên dịch thành bytecode, có thể chạy trên bất kỳ máy ảo Java (JVM) nào, không phụ thuộc vào nền tảng cụ thể Điều này giúp Java trở nên di động và linh hoạt, cho phép các ứng dụng
+ Hướng đối tượng: Java là một ngôn ngữ lập trình hướng đối tượng (OOP), có các đặc tính như kế thừa, đóng gói, đa hình và trừu tượng hóa Điều này giúp trong việc phát triển và quản lý ứng dụng lớn và phức tạp.
+ Bảo mật: Java có môi trường bảo mật mạnh mẽ, bao gồm kiểm tra kiểu dữ liệu tại thời gian biên dịch và thời gian chạy, kiểm soát truy cập vào tài nguyên hệ thống và quản lý bộ nhớ tự động Điều này làm giảm nguy cơ các lỗ hổng bảo mật trong ứng dụng.
+ Quản lý bộ nhớ tự động: Java sử dụng garbage collector để tự động thu gom bộ nhớ không sử dụng, giúp giảm thiểu nguy cơ rò rỉ bộ nhớ và lỗi quản lý bộ nhớ, làm cho việc lập trình trở nên dễ dàng và an toàn hơn.
+ Cộng đồng lớn và hệ sinh thái phong phú: Java có một cộng đồng lập trình viên rộng lớn và tích cực, cung cấp nhiều tài liệu, hỗ trợ và nguồn tài nguyên cho người dùng
+ Hệ sinh thái phong phú của Java bao gồm các framework, thư viện và công cụ phát triển mạnh mẽ, giúp tăng hiệu suất và giảm thời gian phát triển.
- Hướng đối tượng: Java là một ngôn ngữ lập trình hướng đối tượng, không có nhiều hằng số độc lập, các biến hoặc các hàm: mỗi một thứ được mô tả có thể chỉ được truy nhập thông qua các lớp và các đối tượng.
- Mạnh mẽ: Java là một ngôn ngữ mạnh vì nó yêu cầu tất cả dữ liệu phải được khai báo một cách tường minh Nó kiểm tra mã nguồn tại thời điểm của sự biên dịch và sự thông dịch, và loại ra các lỗi của chương trình.
- Độc lập nền: là khả năng của một chương trình có thể chạy trên bất kỳ máy tính nào mà không cần quan tâm đến nền bên dưới.
- Bảo mật: Java cung cấp môi trường bảo mật cho các chương trình thực thi và cung cấp một vài lớp điều khiển bảo mật.
- Phân tán: Java được sử dụng để phát triển các ứng dụng mà có khả năng linh hoạt qua nhiều nền khác nhau, các hệ điều hành, và các giao diện đồ họa người dùng Nó hỗ trợ các ứng dụng mạng.
- Đa luồng: Java cung cấp sự hỗ trợ cho đa luồng để thực thi nhiều tác vụ đồng thời.
- Do Java biên dịch mã nguồn thành bytecode, bytecode sau đó được môi trường thực thi chạy nền Java thường chạy chậm hơn những ngôn ngữ lập trình thông dịch khác như Python, Perl, PHP.
- Gặp khó khăn trong việc debug chương trình.
- Các tool hỗ trợ trong java không mạnh và đơn giản Do java là phần mềm mã nguồn mở bởi vậy việc yêu cầu xây dựng một tool hỗ trợ chuyển nghiệp, đầu tư quy mô trở lên khó khăn.
1.1.4 Những hỗ trợ của Java
Java được xây dựng chủ yếu dựa trên bộ công cụ phát triển ( Java Development Kit - JDK) như là bộ thư viện chuẩn trong đó chứa trình biên dịch, trình thông dịch, trình đóng gói, tài liệu,…Đây chính là nền tảng cho việc phát triển các ứng dụng Java Hiện nay, cộng đồng Java trên thế giới mà đi đầu là hãng Sun Microsystems đã xây dựng nhiều nhánh mới cho Java như: JavaMail (thư điện tử), Java TAPI (viễn thông), Java3D (đồ họa 3 chiều), J2ME (ứng dụng cho thiết bị di động)
Hiện nay Java có các phiên bản hỗ trợ sau:
- J2SETM (Java 2 Platform, Standart Edition): Phiên bản chuẩn gồm bộ công cụ thông dụng dùng để chạy trên các máy PC hoặc các mạng máy tính nhỏ
SQL
- SQL (Structured Query Language) là một ngôn ngữ lập trình dùng để quản lý và truy xuất cơ sở dữ liệu quan hệ (Relational Database Management System - RDBMS).
- Dữ liệu quan hệ: SQL được thiết kế để làm việc với cơ sở dữ liệu quan hệ, trong đó dữ liệu được tổ chức dưới dạng bảng (table) Mỗi bảng chứa các hàng (rows) và các cột (columns), mỗi hàng biểu diễn một bản ghi (record), và mỗi cột biểu diễn một thuộc tính (attribute).
- Ngôn ngữ chung: SQL là ngôn ngữ chung được sử dụng trong nhiều hệ thống quản lý cơ sở dữ liệu (Database Management Systems - DBMS), bao gồm các hệ thống phổ biến như MySQL, PostgreSQL, Microsoft SQL Server, Oracle, và SQLite.
- Cú pháp đơn giản: SQL có cú pháp đơn giản và dễ hiểu, giúp người lập trình dễ dàng tạo ra các truy vấn (queries) và câu lệnh (statements) để thao tác với cơ sở dữ liệu.
- Truy vấn dữ liệu: SQL cung cấp các câu lệnh SELECT để truy vấn dữ liệu từ cơ sở dữ liệu Người dùng có thể sử dụng các điều kiện (conditions) và phép toán (operators) để lọc và sắp xếp dữ liệu theo yêu cầu của mình.
- Thao tác dữ liệu: SQL hỗ trợ các câu lệnh INSERT, UPDATE và DELETE để thêm, cập nhật và xóa dữ liệu từ cơ sở dữ liệu.
- Quản lý cơ sở dữ liệu: SQL cung cấp các câu lệnh CREATE, ALTER và DROP để quản lý cấu trúc của cơ sở dữ liệu, bao gồm các bảng, chỉ mục (indexes), ràng buộc (constraints) và các đối tượng khác.
- Giao dịch và xử lý lỗi: SQL hỗ trợ các giao dịch (transactions) để đảm bảo tính nhất quán của dữ liệu trong các thao tác đa bước Nó cũng cung cấp cơ chế xử lý lỗi (error handling) để xử lý các tình huống ngoại lệ trong quá trình thao tác dữ liệu.
- Bảo mật: SQL cung cấp các cơ chế bảo mật như quyền truy cập(permissions) và ràng buộc (constraints) để bảo vệ dữ liệu khỏi các mối đe dọa bên ngoài.
Nội Dung
1.3.1 Lý do chọn đề tài:
Con người đang ở trong thời đại công nghệ 4.0 cùng với sự phát triển mạnh mẽ của nghành thương mại điện tử, mua bán trực tuyến Ta có thể thấy được các ưu điểm vượt trội của việc bán hàng trực tuyến như:
- Thao tác dễ dàng, tiện lợi khi chỉ cần một chiếc điện thoại có kết nối wifi
- Việc đặt hàng và thanh toán trở trên nhanh chóng khi đã có nhiều công nghệ hỗ trợ
- Có thể tìm kiếm và tiếp cận nhanh chóng với đa dạng mặt hàng.
- Giá cả cạnh tranh khi có nhiều người tham gia vào nghành này
- Nhận thấy tiềm năng của việc mua sắm online nên em quyết định tạo một website bán hàng.
- Xây dựng được một website bán hàng đáp ứng được một số nhu cầu cơ bản như: + Giao diện thân thiện, dễ sử dụng
+ Có các chức năng cơ bản và cần thiết cho một website bán hàng
+ Tích hợp chatbot tư vấn, liên lạc.
+ Triển khai sản phẩm trên môi trường web
+ Xem và tìm kiếm sản phẩm
+ Quản lý giỏ hàng và thanh toán
+ Quản lý tài khoản, thông tin khách hàng
+ Tích hợp chatbot tư vấn và trao đổi
- Những người có nhu cầu mua sắm trực tuyến
Làm việc thông qua cả 2 phương thức online và offline dưới sự hướng dẫn của giảng viên hướng dẫn.
+ Tìm hiểu và phân tích các website hiện nay
+ Thiết kế hệ thống và xây dựng website
+ Kiểm thử, phát hiện và sửa lỗi nếu có.
- Sử dụng các công nghệ để triển khai như:
+ Font-End : Html, Css, JavaScript
+ Và một số framework hỗ trợ như : Bootstrap và Jquery
- Xây dựng được một website có giao diện thân thiện, dễ dàng thao tác và sử dụng.
- Áp dụng được các kiến thức đã học vào đề tài
- Hoàn thiện website bàn hàng với các chức năng cơ bản.
Kế hoạch thực hiện
- Tìm hiểu đề tài và khảo sát các website khác
- Xác định các chức năng cần thực hiện
- Nghiên cứu và tìm hiểu các công nghệ sử dụng trong đề tài : Html, Css, JavaScrips
- Nghiên các thư viện và framework hỗ trợ phát triển giao diện webiste như Bootstrap và Jquery
- Phân tích và thiết kế hệ thống website
- Thiết kế cơ sở dữ liệu
- Xây dựng khung giao diện cơ bản cho webiste người dùng.
- Hoàn thiện website quản lý bao gồm các chức năng như : quản lí người dùng, đơn hàng, sản phẩm, phản hồi, danh mục.
- Tìm hiểu và xử lí ngôn ngữ tự nhiên.
- Xây dựng và hoàn thiện giao diện website người dùng
- Hoàn thiện các chức năng đăng ký, đăng nhập, hiện thị sản phẩm, giỏ hàng, thanh toán, tìm kiếm, lọc sản phẩm.
Buổi 14 - 15 - Kiểm thử, đánh giá và sửa lỗi
- Hoàn thiện tài liệu và tiến hành báo cáo.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG BÀI TOÁN
Mô hình bài toán
Hình 2.1 Xây dựng và phân tích bài toán
- Có 2 đối tượng User và admin
+ Về phần amin sẽ phụ trách quản lý thêm, sửa, xóa sản phẩm vào danh sách sản phẩm của admin
+ Về phần user, user sẽ có thể xem danh sách sản phẩm đã chọn và xem chi tiết sản phẩm.
+ Cả hai đối tượng admin và user đều phải đăng nhập thì mới có thể truy cập vào phân quyền.
VD : chỉ user khi đăng nhập thì sẽ vào trang của user đó còn đối với admin thì khi đăng nhập thì sẽ vào trang của chính admin đó Cả hai đối tượng đều được phân quyền và chỉ khi nào admin hoặc user nhập đúng username và password thì mới có thể truy cập.
Xây dựng Database của bài toán
- Database quản lý bán hàng thì có ra thành nhiều phần chính: Người dùng, sản phẩm, loại sản phẩm, hóa đơn…
Hình 2.2 Database hiển thị thông tin đăng nhập
Hình 2.3 Database hiển thị thị sản phẩm
Hình 2.4 Database hiển thị orders
XÂY DỰNG PHẦN MỀM QUẢN LÝ BÁN HÀNG
Môi trường làm việc
- Cơ sở dữ liệu được xây dựng và lưu trữ trong phần mềm Microsoft SQL Server Management Studio.
- Sản phẩm được thiết kế trên phần mềm Apache NetBeans IDE 20.
Thiết kế giao diện phần mềm
3.2.1 Kết nối với cơ sở dữ liệu MySQL
- Dùng để liên kết tới dữ liệu được tạo trên SQL: ecommerce
Hình3.5 Code kết nối CSDL trên SQL
- Sau khi khách hàng đã truy cập vào trang web ngay lúc đó sẽ hiển thị trang chủ để mua hàng
Hình 3.6 Trang chủ bán hang
Hình 3.7 Giao diện trang chủ
- Form đăng nhập Khi khách hàng đã có tài khoản trên web lúc đó phải đăng nhập mới mua hàng được trên hệ thống.
Khi khách hàng là thành viên mới chưa có tài khoản để đăng nhập lúc đó khách hàng có thể tạo 1 tài khoản mới để mua hàng.
Hình 3.10 Màn hình đăng ký
- Khi người dùng chọn sản phẩm ngay lúc đó sẽ chuyển sang chi tiết sản phẩm.
Hình 3.11 Code chi tiết sản phẩm
Hình 3.12 Giao diện sản phẩm
Khi khách hàng muốn mua sản phẩm thì phải thêm sản phẩm vào giỏ hàng.
Hình 3.13 Code Thêm sản phẩm
- Khi khách hàng muốn đổi sản phẩm khác thì có thể sửa lại sản phẩm đã chọn và sửa lại số lượng cần mua.
KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN
Kết quả đạt được
Trong quá trình phát triển phần mềm quản lý bán hàng, nhóm đã đạt:
- Hoàn Thiện Chức Năng Cơ Bản:
Nhóm đã thành công trong việc xây dựng và triển khai các chức năng quản lý sản phẩm, đăng nhập, đăng ký, xem chi tiết sản phẩm và quản lý giỏ hàng Hệ thống của nhóm em giúp người dùng thực hiện các thao tác cơ bản của một trang web bán hàng một cách hiệu quả và linh hoạt.
- Giao Diện Thân Thiện Người Dùng:
Với thiết kế giao diện đẹp mắt, dễ sử dụng và thân thiện với người dùng, nhóm em đã nhận được phản hồi tích cực từ các người dùng về trải nghiệm mua sắm trực tuyến của họ Sự tập trung vào việc tối ưu hóa trải nghiệm người dùng đã giúp tăng cường tính tương tác và thu hút người dùng.
- Kết Nối và Lưu Trữ Dữ Liệu:
Nhóm đã sử dụng thành công Microsoft SQL Server Management Studio làm cơ sở dữ liệu chính, đảm bảo tính bảo mật và ổn định của hệ thống Việc quản lý dữ liệu một cách hiệu quả là yếu tố quan trọng đối với việc duy trì và phát triển hệ thống một cách bền vững.
Nhược điểm
Mặc dù đã đạt được những kết quả, nhưng vẫn còn một số điểm yếu cần được cải thiện:
- Chưa thể cập nhật đầy đủ thông tin của các sản phẩm đang có trên thị trường.
- Website chưa được thử nghiệm trên mạng internet.
Mặc dù đã triển khai các biện pháp bảo mật cơ bản, nhưng nhóm em nhận thấy còn nhiều việc cần làm để đảm bảo tính an toàn của hệ thống Nhóm sẽ tăng cường các biện pháp bảo mật để ngăn chặn các mối đe dọa tiềm ẩn, đặc biệt là trong việc xác thực người dùng và bảo vệ dữ liệu cá nhân.
Hiệu suất của hệ thống có thể gặp vấn đề khi số lượng người dùng đồng thời tăng lên Chúng em cần tiếp tục tối ưu hóa và mở rộng hệ thống để đảm bảo rằng nó có thể đáp ứng được nhu cầu của người dùng trong tương lai một cách linh hoạt và hiệu quả.
Hướng phát triển
Nhóm sẽ nghiên cứu và triển khai các biện pháp bảo mật nâng cao như mã hóa dữ liệu, xác thực hai yếu tố và kiểm tra dữ liệu đầu vào để đảm bảo tính an toàn của hệ thống trước các mối đe dọa tiềm ẩn.
Chúng em sẽ tiếp tục tối ưu hóa cơ sở dữ liệu, tăng cường khả năng xử lý của máy chủ và triển khai các giải pháp cache để cải thiện hiệu suất của hệ thống, đặc biệt là trong điều kiện tải lớn.
Nhóm sẽ phát triển thêm các tính năng như tích hợp thanh toán trực tuyến, hỗ trợ đa ngôn ngữ và tạo ra giao diện dành cho các thiết bị di động để mở rộng phạm vi sử dụng và tăng cường trải nghiệm của người dùng.
Nhóm em sẽ tiếp tục lắng nghe và phản hồi vào phản hồi của người dùng để cải thiện liên tục trải nghiệm của họ và đáp ứng được nhu cầu thị trường một cách linh hoạt và đáng tin cậy.
CHƯƠNG 5 TÀI LIỆU THAM KHẢO
- Chat GPT của OpenAI: https://chat.openai.com/
- Java Programming and Software Engineering Fundamentals (Khóa học trên Coursera): https://www.coursera.org/specializations/java- programming
- Java Documentation trên trang chủ của Oracle: https://docs.oracle.com/en/java/
- Java Code Examples (Tài liệu tham khảo từ Oracle): https://www.oracle.com/java/technologies/javase/codeconvention s-contents.html
- Java GUI Programming (Tài liệu hướng dẫn từ TutorialsPoint): https://www.tutorialspoint.com/java/java_gui_programming.htm
- Java Design Patterns (Bài viết từ Baeldung): https://www.baeldung.com/java-design-patterns
- Java Multithreading (Bài viết từ JournalDev): https://www.journaldev.com/1079/java-thread-tutorial