CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1. Tính cấp bách của đề tài Việt Nam của chúng ta đang trên đà phát triển. Các thành phố phát triển nhanh chóng, đặc biệt là thành phố trọng điểm Thành phố Hồ Chí Minh. Với sự phát triển nhanh chóng của thương mại điện tử, cùng với đó là nhu cầu mua hàng online từ xa ngày càng cao.
Chính vì vậy, đề tài của chúng em là thiết kế một website thương mại điện tử bán giầy giúp mọi người có thể mua sắm từ xa, đặc biệt là đại bộ phận giới trẻ khi nhu cầu mua giầy ngày càng tăng. Mục đích của đề tài Đề tài Xây dựng website thương mại điện tử bán giày đặt ra những vấn đề chính về mục tiêu mà sinh viên nghiên cứu cần hoàn thành, bao gồm: Bài toán đầu tiên được đưa ra là về yếu tố lý thuyết, sinh viên cần nghiên cứu chuyên môn, tìm hiểu tổng quan và khả năng ứng dụng của công nghệ mà nhóm đã lựa chọn (Spring Boot, Spring Security, Data JPA, bootstrap 4, MySQL). Cùng với công nghệ được lựa chọn sử dụng, nhóm sinh viên cần tìm hiểu thêm các thư viện, module mã nguồn, các mẫu sẽ giúp ích cho quá trình xây dựng website và có tác dụng tốt đến trải nghiệm người dùng. Bên cạnh đó, nhóm sinh viên cần tìm hiểu quy trình lưu trữ để triển khai sản phẩm của mình trên internet Vấn đề thứ hai mà đề tài đặt ra là việc vận dụng những kiến thức đã học để xây dựng một sản phẩm cụ thể, ở đây là Website bán giày, thành phẩm phải là ứng dụng web, đáp ứng các yêu cầu cơ bản, mua bán sản phẩm, bên cạnh đó, sản phẩm có khả năng nâng cấp để tiếp tục phát triển thêm nhiều tính năng trong tương lai 1.
Phạm vi nghiên cứu Trang web hướng đến người dùng (phần lớn là giới trẻ) muốn mua giày trực tuyến tại nhà. Phương pháp nghiên cứu - Tìm hiểu và học hỏi về lý thuyết và công nghệ của Spring Boot, Spring Security, Data JPA, bootstrap 4, MySQL thông qua các tài liệu trực tuyến, các khóa học trên internet - Tham khảo kỹ năng việc làm tại các trang tuyển dụng như kingshoes, trivela,… 1. Website kingshoes Kingshoes là trang thương mại điện tử bán giày cho phép người dùng tìm kiếm, mua hàng .Ngoài việc chỉ bán giày, kingshoes còn có các sản phẩm phụ kiện khác liên quan như là dây giày, bộ kit để tự vệ sinh giày, hoặc đối với những ai không có thời gian để vệ sinh giầy, kingshoes còn có thêm dịch vụ “SPA GIÀY” Link website: https://kingshoes.vn Thế mạnh - Phân loại giày rõ ràng - Cập nhật - Dễ dàng sử dụng - Giao diện thân thiện 2 1.vn Trivela là website bán giày tương tự như kingshoes, nhưng lại đa dạng hơn về mặt hàng hóa, sản phẩm bán ra như là quần áo, kính mắt, balo, phụ kiện. Tuy là đa dạng về sản phẩm nhưng chỉ tập trung về các sản phẩm thể thao.
Link website: https://trivela.vn Thế mạnh - Phân loại giày rõ ràng - Cập nhật - Dễ dàng sử dụng - Giao diện thân thiện 1. Kết quả mong đợi đạt được Xây dựng trang web kết nối việc làm giữa người mua và ứng viên trong ngành công nghệ thông tin sử dụng công nghệ Spring Boot, Data JPA, bootstrap, các sản phẩm Frontend được đánh giá cao với Vercel và các sản phẩm Backend được gắn với heroku 1. Phía khách chưa có tài khoản - Tìm kiếm sản phẩm 3 1. Phía khách đã có tài khoản - Tìm kiếm sản phẩm - Quản lý tài khoản - Mua sản phẩm - Kiểm tra lịch sử mua hàng 1.
System administrator side - Quản lý người dùng Xem danh sách người dùng Xóa người dùng - Quản lý tài khoản - Xem thống kê, số liệu 4 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Tổng quan về công nghệ 2. Tổng quan về ngôn ngữ lập trình Java Java là một trong những ngôn ngữ lập trình hướng đối tượng. Nó được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.
Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystem năm 1991. Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sản phẩm gia dụng, và có tên là Oak. Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ Sun MicroSystem. Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once, Run Anywhere – WORA).
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 đó. Tổng quan về hệ quản trị cơ sở dữ liệu mysql MYSQL là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System (RDBMS)) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy Client và máy cài SQL Server. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. MYSQL được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user.
SQL Server có thể kết hợp “ăn ý” với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server…. Các thư viện – Framework hỗ trợ 2. Apache Tomcat Apache Tomcat là một Java Servlet được phát triển bởi Apache Software Foundation (ASF). Tomcat thi hành các ứng dụng Java Servlet và JavaServer Pages (JSP) từ Sun 6 Microsystems, và cung cấp một máy chủ HTTP cho ngôn ngữ Java thuần túy để thực thi các chương trình lệnh viết bằng ngôn ngữ Java.
Spring Boot [1] Spring Boot là một trong những thành viên của hệ sinh thái Spring framework. Nó giúp cho chúng ta đơn giản hóa công đoạn khởi tạo một dự án với Spring, thay vào đó các bạn chỉ tập trung vào việc phát triển business cho ứng dụng mà thôi. Dưới đây là một số ưu điểm của Spring Boot: Tạo ứng dụng Spring độc lập, đóng gói dưới dạng một file JAR (standalone application). - Tối ưu công đoạn cấu hình cho ứng dụng Spring, không yêu cầu XML, config… - Nhúng trực tiếp các ứng dụng server (Tomcat, Jetty…) do đó không cần phải triển khai file WAR - Cung cấp nhiều plugin 2.
Spring Data JPA [2] Spring Data là một module của Srinng Framework. Mục đích của Spring Data là giảm thiểu việc thực hiện quá nhiều bước để có thể implement được JPA. Spring Data JPA là một phần của Spirng Data và nó hỗ trợ Hibernate 5, OpenJPA 2. Spring Data JPA không phải là một JPA provider điều này khác với Hibernate.
Hiberate là JPA provider hay nói cách khác Hibernate implement JPA. Spring Data Commonds là một phần của Spring data nó cung cấp nền tảng chia sẻ. Nó bao gồm các repository interfaces cũng như các metadata model cho persit java class. Java Database Connectivity (JDBC) Java Database Connectivity (JDBC) là một API được thiết kế dành cho ngôn ngữ lập trình Java hỗ trợ Java trong việc truy cập Cơ Sở Dữ Liệu (CSDL).
Nó gồm có những phương thức thực hiện truy vấn và cập nhật CSDL gián tiếp qua Java. Nền tảng Java 2, Standard Edition, version 1.4 (J2SE) bao gồm JDBC 3.0 API mở rộng khả năng truy cập CSDL trong môi trường máy ảo Java. Apache Maven Apache maven là một chương trình quản lý dự án cho phép các developers có thể quản lý về version, các dependencies ( các thư viện sử dụng trong dự án ) , quản lý build, tự động download javadoc & source, … Mục tiêu chính của Maven là cung cấp cho nhà phát triển những điều sau: - Cung cấp một mô hình toàn diện cho các dự án, giúp nó có thể tái sử dụng, bảo trì và dễ hiểu hơn. - Cung cấp các plugins hoặc công cụ tương tác với mô hình khai báo này.
- Maven cấu trúc dự án và nội dung được tuyên bố trong một tập tin pom.xml, gọi là mô hình đối tượng dự án (POM), là đơn vị cơ bản của toàn bộ hệ thống Maven. Bootstrap 4 [3] Bootstrap là một front-end framework miễn phí giúp quá trình phát triển web được nhanh và dễ dàng hơn. Bootstrap bao gồm các mẫu thiết kế dựa trên HTML và CSS như typography, forms, buttons, tables, navigation, modals, image carousels… cũng như các plugin JavaScript tùy chọn. Bootstrap cũng cung cấp cho bạn khả năng tạo ra các responsive designs một cách dễ dàng.
Apache Tiles Apache Tiles: là một mã nguồn mở phát triển bởi apache, được xây dựng để đơn giản hóa việc phát triển các ứng dụng web, đặc biệt là với mô hình MVC. Apache titles lấy lí tưởng từ việc xếp các viên ngói lại với nhau để tạo nên mái nhà. Một trang web của bạn được coi là một mái nhà, nó được ghép lại từ các viên ngói, một viên ngói ở đây là một file jsp (jsp fragment). Apache Titles giúp bạn định nghĩa ra một khuôn mẫu (Template) để ghép các thành phần (các mảnh jsp) lại với nhau để thành một trang web.
JavaServer Pages Standard Tag Library (JSTL) JavaServer Pages Standard Tag Library (JSTL) là một tập hợp các thẻ JSP hữu ích, mà gói các tính năng lõi phổ biến tới các ứng dụng JSP. 8 JSTL hỗ trợ tới các tác vụ phổ biến và có tính cấu trúc, ví dụ như các tính lặp và điều kiện, các thẻ để thao tác tài liệu XML, các thẻ đa ngôn ngữ, và các thẻ SQL. Nó cũng cung cấp Framework để tích hợp các Custom Tags với các thẻ JSTL. API của Giao Hàng Nhanh [5] Công ty giao nhận đầu tiên tại Việt Nam được thành lập năm 2012, với sứ mệnh phục vụ nhu cầu vận chuyển chuyên nghiệp của các đối tác Thương mại điện tử trên toàn quốc.
Ngoài ra giao hàng nhanh còn cung cấp các dịch vụ khác cho các nhà phát triển thuận lợi phát triển và tích hợp dịch vụ của giao hàng nhanh vào các trang thương mại điện tử. Các nhà phát triển có thể sử dụng API mà giao hành nhanh cung cấp để tạo sự thuận tiện như: tạo hóa đơn, tính phí giao hàng, tính toán thời gian hàng sẽ đến tay người dùng,… 2. API của VNPay [6] VNPAY ứng dụng công nghệ hiện đại, đột phá trong lĩnh vực thanh toán điện tử nhằm xây dựng hệ sinh thái dịch vụ đa dạng về sản phẩm, tiện ích, mang tới những trải nghiệm dịch vụ ưu việt phục vụ khách hàng và đối tác. VNPay là giải pháp thanh toán mà bất kỳ trang thương mại điện tử nào ngày nay cũng cần nhằm cung cấp thêm về phương thức thanh toán, tạo thêm sự lựa chọn cho người dùng khi mua hàng.