Tải bản đầy đủ (.pdf) (22 trang)

báo cáo môn project 1 ngành công nghệ thông tin website bán linh kiện máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.75 MB, 22 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

ĐẠI HỌC BÁCH KHOA HÀ NỘIVIỆN ĐÀO TẠO LIÊN TỤC

──────── * ───────

BÁO CÁO

<b>MÔN PROJECT 1</b>

NGÀNH CƠNG NGHỆ THƠNG TIN

<b>WEBSITE BÁN LINH KIỆN MÁY TÍNH</b>

<b>Nhóm sinh viên thực hiện : Trần Thanh Sơn</b>

Lớp CNTTVB2 - K67

Giáo viên hướng dẫn: Ths Trần Thị Dung

HÀ NỘI 5-2023

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b> Mục Lục</b>

Mục Lục...2

Mở đầu: Mục tiêu và nội dung của project...3

Phần 1: Cơ sở lý thuyết chọn đề tài...3

1.1. Các cơ sở lý thuyết liên quan đến nội dung mà đồ án cần giải quyết...3

1.1.1. Cơ sở dữ liệu...3

1.1.2 Lập trình hướng đối tượng...4

1.2. Phân tích các hướng tiếp cận khác nhau...5

<i>1.2.1.Mơ hình MVC...5</i>

<i>1.2.2.Mơ hình MVP...5</i>

<i>1.2.3.Mơ hình MVVM...6</i>

1.3. Phương pháp sử dụng trong dự án...6

1.4. Mơ tả u cầu...7

Phần 2: Cơng nghệ và thuật tốn sử dụng...8

2.1. Cơng cụ:...8

2.2. Cơng nghệ...8

Phần 3: Phân tích thiết kế bài tốn...8

3.1. Thiết kế cơ sở dữ liệu:...8

<i>3.1.1Mơ tả nghiệp vụ...8</i>

<i>3.1.2.Biểu đồ Use-Case...10</i>

a. Biểu đồ Use-case tổng quát...10

b. Biểu đồ Use-case phân rã mức 2...10

<i>3.1.3.Mơ hình thực thể liên kết – ER...14</i>

<i>a.Phân tích mơ hình...15</i>

<i>b.Vẽ mơ hình thực thể liên kết (ER)...16</i>

3.2. Biểu đồ trình tự...17

<i>3.2.1.Biểu đồ trình tự chức năng login...17</i>

<i>3.2.2.Biểu đồ trình tự chức năng thêm sản phẩm...17</i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>Mở đầu: Mục tiêu và nội dung của project</b>

<b>1. Mục tiêu:</b>

Xây dựng website bán linh kiện máy tính trực tuyến có tên là “SG-Shop” đểcung cấp cho người dùng lựa chọn và mua sắm các sản phẩm các linh kiện máytính hoặc có thể mua ln những bộ máy tính mà cửa hàng đã lắp đặt sẵn vớichất lượng và giá cả phù hợp.

<b>2. Nội dung:</b>

Chức năng của website:

Cho phép người dùng đăng nhập, đăng ký tài khoản để thực hiện cácthao tác thêm đồ vào giỏ hàng, thanh toán.

Hiển thị danh sách các sản phẩm các thành phần của máy tính (nhưCPU, Mainboard, Ram, SSD, …), cho phép tìm kiếm và lọc sản phẩmtheo các tiêu chí khác nhau như giá, thương hiệu, tên,..

Cho phép người dùng đặt hàng và thanh toán khi nhận hàng. Chức năng xây dựng cấu hình PC cho phép người dùng tự tạo một bộPC và xem trước giá của nó

Tính năng của website:

<b>Phần 1: Cơ sở lý thuyết chọn đề tài</b>

1.1. Các cơ sở lý thuyết liên quan đến nội dung mà đồ án cần giải quyết1.1.1. Cơ sở dữ liệu

Cơ sở dữ liệu (database) là một hệ thống các thơng tin có cấu trúc được lưu trữ trên bộ nhớ ngoài, nhằm thoả mãn yêu cầu khai thác thông tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau. CSDL bao gồm các loại dữ liệu: âm thanh, văn bản, hình ảnh,… được mã hóa và lưu trữ dưới dạng file cụ thể

<b>Phân Loại:</b>

Cơ sở dữ liệu dạng file: dữ liệu được lưu trữ dưới dạng các file có thể

<i>là text, ascii, .dbf. Tiêu biểu cho cơ sở dữ liệu dạng file là.mdb Foxpro</i>

Cơ sở dữ liệu hướng đối tượng: dữ liệu cũng được lưu trữ trong các bảng dữ liệu nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đốitượng.

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

Cơ sở dữ liệu bán cấu trúc: dữ liệu được lưu dưới dạng XML.

<b>Hiệu quả của CSDL:</b>

Phản ánh trung thực thực tế.Tính an tồn - bảo mật.Tính khơng dư thừa.Hiệu suất sử dụng cao.

1.1.2 Lập trình hướng đối tượng

Lập trình hướng đối tượng (Object-oriented programming - OOP) làmột phương pháp lập trình phổ biến trong việc phát triển phần mềm,trong đó chương trình được thiết kế và triển khai dựa trên các đốitượng. Mỗi đối tượng có thể bao gồm các thuộc tính (properties) vàphương thức (methods), và có thể tương tác với các đối tượng khácthông qua việc gọi phương thức của chúng.

Các đối tượng được tạo ra bằng cách định nghĩa các lớp (classes),trong đó mỗi lớp đại diện cho một loại đối tượng cụ thể. Mỗi lớp cóthể định nghĩa các thuộc tính và phương thức của đối tượng tươngứng, và các đối tượng được tạo ra bằng cách khởi tạo các lớp.

Lập trình hướng đối tượng giúp giảm độ phức tạp của các chươngtrình lớn bằng cách phân chia chúng thành các đối tượng nhỏ hơn vàdễ quản lý hơn. Nó cũng giúp tăng tính tái sử dụng của mã nguồn, vìcác đối tượng có thể được sử dụng lại trong nhiều chương trình khácnhau.

Các ngơn ngữ lập trình phổ biến sử dụng lập trình hướng đối tượngbao gồm Java, C++, Python, C#, Ruby, và Swift.

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

1.2. Phân tích các hướng tiếp cận khác nhau

<i>1.2.1. Mơ hình MVC</i>

MVC là viết tắt của Model-View-Controller, là một mơ hình phát triểnphần mềm được sử dụng rộng rãi trong việc phát triển các ứng dụngweb. Mô hình này chia ứng dụng thành 3 phần chính:

Model: Đây là phần dữ liệu của ứng dụng. Nó chịu trách nhiệmcho việc lấy và lưu trữ dữ liệu, và cung cấp các phương thức đểtruy xuất và cập nhật dữ liệu.

View: Đây là phần giao diện người dùng của ứng dụng. Nóhiển thị dữ liệu cho người dùng dưới dạng các trang web, biểumẫu và các thành phần giao diện khác.

Controller: Đây là phần xử lý logic của ứng dụng. Nó nhậnthơng tin từ người dùng qua giao diện View, sau đó điều chỉnhdữ liệu trong Model và cập nhật lại View để hiển thị kết quảcho người dùng.

Mơ hình MVC cho phép phát triển ứng dụng web một cách dễ dàngvà đơn giản hơn, vì nó chia ứng dụng thành các phần độc lập và dễdàng quản lý. Nó cũng cho phép tái sử dụng các thành phần của ứngdụng và dễ dàng thay đổi giao diện người dùng mà không ảnh hưởngđến phần xử lý logic của ứng dụng.

<i>1.2.2. Mơ hình MVP</i>

MVP (Model-View-Presenter) là một trong những mơ hình phát triểnphần mềm được sử dụng trong lập trình ứng dụng. Mơ hình này tươngtự như mơ hình MVC (Model-View-Controller) với việc chia ứngdụng thành 3 phần chính: Model (mơ hình), View (giao diện) vàPresenter (bộ trình chiếu).

Model: Là phần dữ liệu và logic của ứng dụng.

View: Là phần hiển thị dữ liệu, tương tác với người dùng. Presenter: Là bộ điều khiển, xử lý logic, nhận các sự kiện từView và tương tác với Model.

Tuy nhiên, trong MVP, Presenter có nhiệm vụ trung gian giữa View vàModel. Presenter nhận các tương tác từ người dùng thông qua View,xử lý các yêu cầu, truy xuất dữ liệu từ Model và cập nhật lại View.

Điểm khác biệt lớn nhất giữa MVP và MVC là quan hệ giữa View vàModel. Trong MVC, View và Model giao tiếp trực tiếp, trong khi đótrong MVP, Presenter làm trung gian giữa hai phần này. Presenter

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

giúp cho View không cần biết Model và làm cho việc kiểm thử, bảo trìvà mở rộng ứng dụng trở nên dễ dàng hơn.

MVP được sử dụng rộng rãi trong các dự án phần mềm địi hỏi tínhtương tác cao với người dùng, ví dụ như các ứng dụng di động, ứngdụng web, và các dự án về game.

<i>1.2.3. Mô hình MVVM</i>

MVVM (Model-View-ViewModel) là một mơ hình kiến trúcphần mềm được sử dụng trong lập trình ứng dụng. Mơ hìnhnày tương tự như mơ hình MVC và MVP với việc chia ứngdụng thành 3 phần chính: Model (mơ hình), View (giao diện)và ViewModel.

Model: Là phần dữ liệu và logic của ứng dụng.

View: Là phần hiển thị dữ liệu, tương tác với người dùng. ViewModel: Là phần trung gian giữa View và Model, chịutrách nhiệm xử lý dữ liệu, thực hiện các nghiệp vụ, truyền dữliệu giữa View và Model.

Điểm khác biệt lớn nhất của MVVM so với MVC và MVP làViewModel được thiết kế để làm cho việc liên kết dữ liệu giữa Viewvà Model trở nên dễ dàng hơn. ViewModel có thể kết hợp nhiềuModel để cung cấp dữ liệu cho View và đồng thời xử lý các yêu cầutừ View, chuyển đổi dữ liệu để hiển thị trên View.

MVVM được sử dụng rộng rãi trong các dự án phần mềm yêu cầutính tương tác cao với người dùng, ví dụ như các ứng dụng di động,ứng dụng web, và các dự án về game. MVVM giúp cho việc phát triểnứng dụng trở nên dễ dàng, dễ quản lý hơn và giúp cho quá trình kiểmthử, bảo trì và mở rộng ứng dụng trở nên đơn giản hơn.

Business Layer: Tầng xử lý logic kinh doanh, nơi xử lý các nghiệp vụ,quy định logic, xử lý dữ liệu. Tầng này là nơi thực hiện các tính tốn,kiểm tra dữ liệu và xác thực người dùng trước khi truy cập vào dữ liệu.

Data Layer: Tầng dữ liệu, nơi lưu trữ dữ liệu của ứng dụng. Tầng nàychứa cơ sở dữ liệu, các truy vấn và thao tác trên dữ liệu. Tầng này cũngcó thể bao gồm các thư viện dữ liệu để truy xuất dữ liệu từ cơ sở dữ liệu.

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

1.4. Mô tả yêu cầu

Tạo một website bán linh kiện máy tính có các tính năng:

Danh mục sản phẩm: Hiển thị tất cả các sản phẩm linh kiện máy tínhđang được bán trên website, bao gồm tên sản phẩm, hình ảnh, giá cảvà mơ tả sản phẩm.

Tìm kiếm sản phẩm: Cho phép khách hàng tìm kiếm sản phẩm mộtcách nhanh chóng và dễ dàng bằng cách nhập từ khóa hoặc chọn cáctiêu chí như loại sản phẩm, hãng sản xuất, giá cả,....

Giỏ hàng: Cho phép khách hàng thêm sản phẩm vào giỏ hàng và xemthông tin chi tiết của giỏ hàng, bao gồm tên sản phẩm, số lượng, giácả và tổng số tiền.

Thanh toán: Cung cấp nhiều phương thức thanh toán cho khách hàng,bao gồm thanh toán qua thẻ tín dụng, chuyển khoản ngân hàng, thanhtốn khi nhận hàng.

Đăng ký tài khoản: Cho phép khách hàng đăng ký tài khoản để có thểđặt hàng, quản lý thơng tin cá nhân, đăng ký nhận thông tin khuyếnmãi và các chương trình ưu đãi khác.

Chính sách giao hàng: Cung cấp thơng tin chi tiết về các chính sáchgiao hàng, bao gồm địa chỉ giao hàng, thời gian giao hàng, phí vậnchuyển,...

Đánh giá sản phẩm: Cho phép khách hàng đánh giá và nhận xét về sảnphẩm đã mua, giúp người dùng khác có thêm thơng tin để quyết địnhmua sản phẩm.

Hỗ trợ khách hàng: Cung cấp kênh hỗ trợ khách hàng để giải đáp cácthắc mắc và hỗ trợ khi gặp sự cố khi mua hàng.

Thông tin liên hệ: Cung cấp thông tin liên hệ của cửa hàng, bao gồmđịa chỉ, số điện thoại, email,... để khách hàng có thể liên hệ khi cần.

Quản lý đơn hàng: Cho phép chủ sở hữu website quản lý các đơnhàng, theo dõi trạng thái đơn hàng và xử lý các yêu cầu của kháchhàng.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>Phần 2: Công nghệ và thuật tốn sử dụng</b>

2.1. Cơng cụ:IntelliJ IDEA

Apache Tomcat

2.2. Công nghệ

<b>- Frontend</b>

ReactJSRedux toolkitHTMLTailwindCSS

<b>- Backend</b>

Java Spring bootMavenSpring Data JPA

<b>- Database</b>

MySQL

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

<b>Phần 3: Phân tích thiết kế bài tốn</b>

3.1. Thiết kế cơ sở dữ liệu:

+ Khách hàng có thể thực hiện tìm kiếm một sản phẩm thơngqua tên món hàng, tìm kiếm nhà sản xuất . . .

+ Khách hàng có thể chọn xem chi tiết một sản phẩm :Tên đầy đủ, loại, nhà sản xuất, thơng số kỹ thuật,giá, số lượng cịn, số sao đánh giá và bình luận sản phẩm đó .

+ Khi đã muốn mua một sản phẩm, khách hàng có thể chọn sản phẩm kèm với số lượng cần lấy vào “giỏ hàng”. Giỏ hàng là một bản chi tiết hóa đơn tạm thời lưu thơng tin về các sản phẩm khác hàng đã chọn cùng với số lượng và tổng tiền cho mỗi chi tiết ấy, giỏ hàng có thể được thêm, bớt, chỉnh sửa như : thêm một sản phẩm (bằng cách quay lại trang chính chọn món hàng và “thêm vào giỏ hàng”),loại đi một món hàng (khi khách xem giỏ hàng và khơng cịn muốn mua món hàng đó nữa),chỉnh sửa tăng,giảm số lượng của một sản phẩm (khi khác hàng muốn mua thêm hoặc không một lượng sản phẩm đó ).

+ Khi đã muốn hồn thành q trình mua hàng khách hàng có thể kiểm tra lại giỏ hàng, xem lại các thông tin về giá cả,số lượng, khi đã ưng ý, khác hàng có thể chốt lại hóa đơn và thực hiện mua hàng.

+ Lúc này khách hàng được yêu cầu đăng nhập vào tài khoản giao dịch để thực hiện xác nhận thanh toán .Ở đây ta giả sử cửa hàng của ta có cho thanh toán COD ( nhận hàng rồi mới thanh toán tiền).

+ Tài khoản của khánh hàng bao gồm tên tài khoản, mật khẩu đăng nhập tài khoản, tên chủ tài khoản, thời điểm tạo tài khoản,thời điểm thực hiện giao dịch cuối cùng, email, số điện thoại chủ tài khoản.

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

+ Tiếp tục,khách hàng đăng nhập thành công sẽ được kiểm tra đơn hàng,nếu đã được khách hàng sẽ phải điền địa điểm thực hiện vận chuyển hàng,nếu không khách hàng khách hàng có thể chỉnh lại giỏ hàng hoặc hủy giao dịch.Khách hàng đồng ý thực hiện giao dịch, hóa đơn sẽ được lưu lại.

+Khách hàng có thể xem trạng thái đơn hàng của mình. Cuối cùng khi nhận được hàng, khách hàng sẽ xác nhận việc đã nhận đầy đủ hàng và thanh toán cho shipper.

- Thứ hai là tài khoản của admin:

+ Admin có một trang riêng để quản lý tất cả khách hàng và cácsản phẩm ở trên webite.

+ Admin có quyền thêm, sửa, xóa, cập nhật các sản phẩm trênwebsite,

+ Admin có thể xem thống kế lượng hàng bán ra, mặt hàng đượcbán nhiều nhất, tổng doanh thu, …

<i>3.1.2. Biểu đồ Use-Case</i>

a. Biểu đồ Use-case tổng quát

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

b. Biểu đồ Use-case phân rã mức 2Use-case đăng ký tài khoản

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Use-case đăng nhập

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

Use-case tìm kiếm sản phẩm

Use-case quản lý sản phẩm

c. Đặc tả Use-case

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Use-case đăng ký tài khoảnTên của Use-case Đăng ký tài khoản

Mơ tả Khách hàng chưa có tài khoản có thể đăngký trở thành user để hưởng một số ưu đãiLuồng sự kiện Use-case bắt đầu khi tác nhân click

vào nút đăng ký tại trang chủTác nhân sẽ phải điền tất cả thôngtin vào các form như (email, mậtkhẩu, tên, số điện thoại, …)

Hệ thống sẽ trả về người dùng cóđăng ký thành công hay khôngLuồng thay thế và

Điều kiện bắt buộc Khơng có

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

Điều kiện mở rộng Khơng cóUse-case thêm sản phẩmTên của Use-case Thêm sản phẩm

Admin điền các thông tin sản phẩmvà bấm lưu

Hệ thống sẽ trả về thơng báo cóthêm sản phẩm thành công haykhông

Luồng thay thế vàcác ngoại lệ

Điều kiện bắt buộc Khơng cóĐiều kiện mở rộng Khơng có

<i>3.1.3. Mơ hình thực thể liên kết – ERa. Phân tích mơ hình.</i>

- Các thực thể gồm có:

+) Thực thể 1: LoaiSP ( Loại sản phẩm )

Thuộc tính :maLoaiSPtenLoaiSP

+) Thực thể 2: BinhLuan ( Bình Luận )

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Thuộc tính :maBinhLuanbinhLuan

+) Thực thể 3: SanPham ( Sản Phẩm )

Thuộc tính :maSanPhamtenSanPhamgiasoLuongsaomoTabinhLuan

+) Thực thể 4: TaiKhoan ( Tài Khoản )

Thuộc tính :maTaiKhoantenTaiKhoanemailsoDienThoaidiaChimatKhau

+) Thực thể 5: ChiTietDonHang ( Chi Tiết Đơn Hàng )

Thuộc tính :maCTDHgiasoLuongtongTien

+) Thực thể 6: DonHang ( Đơn Hàng )

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Thuộc tính :maDonHangghiChungayTaoDontrangThaitongTien

+) Thực thể 7: NhaSanXuat ( Nhà Sản Xuất )

Thuộc tính :maNSXtenNSXdiaChiNSXemailNSXwebsiteNSX

<i>b. Vẽ mơ hình thực thể liên kết (ER)</i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

3.2. Biểu đồ trình tự

<i>3.2.1. Biểu đồ trình tự chức năng login</i>

<i>3.2.2. Biểu đồ trình tự chức năng thêm sản phẩm</i>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>3.2.3. Biểu đồ trình tự chức năng đặt hàng</i>

3.3. Biểu đồ lớp

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

3.4. Thiết kế chi tiết một số lớp

<i>3.4.1. Lớp SanPham</i>

Bảng sản phẩm

Tên thuộc tính Kiểu dữ liệu Mô tả

maLoaiSanPham int Mã loại sản phẩm

tenSanPham VARCHAR(100) Tên sản phẩm

moTa VARCHAR(100), Mô tả

soLuong INT Số lượng

maNhaSanxuat INT Mã nhà sản xuất

CREATE TABLE SanPham (

maSanPham INT PRIMARY KEY AUTO_INCREMENT, maLoaiSanPham INT ,

tenSanPham VARCHAR(100), moTa VARCHAR(100), gia DECIMAL(15,2) , sao DOUBLE , soLuong INT, maNhaSanxuat INT ,

FOREIGN KEY (maLoaiSanPham) REFERENCESLoaiSanPham(maLoaiSanPham),

FOREIGN KEY (maNhaSanxuat) REFERENCES NhaSanXuat(maNhaSanXuat));

<i>3.4.2. Lớp LoaiSanPham</i>

Tên thuộc tính Kiểu dữ liệu Mơ tả

maLoaiSanPham INT Mã loại sản phẩm

tenLoaiSanPham VARCHAR(20) Tên loại sản phẩm

CREATE TABLE LoaiSanPham(

maLoaiSanPham INT PRIMARY KEY AUTO_INCREMENT,tenLoaiSanPham VARCHAR(20)

) ;

<i>3.4.3. Lớp NhaSanXuat</i>

Tên thuộc tính Kiểu dữ liệu Mơ tả

maNhaSanxuat INT Mã nhà sản xuất

tenNhaSanXuat VARCHAR(100) Mã nhà sản xuất

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

diaChi VARCHAR(200) Địa chỉ

email VARCHAR(100), Email

CREATE TABLE NhaSanXuat(

maNhaSanXuat INT PRIMARY KEY AUTO_INCREMENT,tenNhaSanXuat VARCHAR(100) ,

diaChi VARCHAR(200) , email VARCHAR(100) );

<b>TÀI LIỆU THAM KHẢO</b>

</div>

×