- Học cách trao đổi, báo cáo, làm việc Nguyễn ThịHải Yến Hoàn thành 2 - Tìm hiểu HTML, CSS - Tìm hiểu về Bootstrap, PUG Nguyễn ThịHải Yến Hoàn thành 3 - Tìm hiểu về ngôn ngữ Javascript -
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO THỰC TẬP NGHỀ NGHIỆP
XÂY DỰNG WEBSITE BÁN HÀNG CHO FOOTBALL
SHOP
Sinh viên thực hiện: Nguyễn Đình Thảo
Người hướng dẫn: Nguyễn Thị Hải Yến
Giảng viên quản lý: ThS Nguyễn Thị Dung
Thái Nguyên - 2024
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN -
Đề tài:
XÂY DỰNG WEBSITE BÁN HÀNG CHO FOOTBALL SHOP
Sinh viên thực hiện: Nguyễn Đình Thảo Lớp: KTPM K19A
Người hướng dẫn tại Doanh Nghiệp
Trang 3LỜI CẢM ƠN
Em xin chân thành cám ơn sự giúp đỡ nhiệt tình của cán bộ hướng dẫn tại cơ sởthực tập, cùng toàn bộ các anh(chị) nhân viên của cơ sở đã giúp đỡ em trong suốt quátrình thực hiện đề tài để em có thể hoàn thành tốt đề tài thực tập tốt nghiệp của mình
Em cũng xin gửi lời cảm ơn đến Ban Giám hiệu và các thầy cô của Khoa Côngnghệ thông tin, Trường Đại học Công nghệ thông tin & Truyền thông Thái Nguyên, đãtrang bị cho em nền tảng kiến thức vững chắc và hỗ trợ em trong quá trình thực tập Đặcbiệt, em xin gửi lời cảm ơn sâu sắc đến cô Nguyễn Thị Dung, người đã luôn hướng dẫn
và chỉ bảo tận tình, đồng hành cùng em từ lúc nhận đề tài cho đến khi hoàn thành
Kỹ năng chuyên môn của em còn nhiều hạn chế nên gặp lỗi và những thiếu sót làđiều không thể tránh khỏi Kính mong sự đóng góp ý kiến của quý thầy cô, để đề tài thựctập được hoàn thiện hơn và giúp em củng cố thêm kiến thức và kĩ năng
Một lần nữa em xin chân thành cảm ơn!
Thái Nguyên, ngày 04, tháng 11, năm 2024
Người viết báo cáo
Nguyễn Đình Thảo
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
CHƯƠNG 1 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP 3
CHƯƠNG 2 LÝ THUYẾT CÔNG CỤ ÁP DỤNG 6
2.1 Tìm hiểu về HTML, CSS, PHP, JS 6
2.1.1 Kiến thức lý thuyết 6
2.1.1.1 HTML là gì? 6
2.1.1.2 CSS (Cascading Style Sheets) 7
2.1.1.3 Javascript là gì? 7
2.1.1.4 Node JS là gì? 9
2.1.1.5 Mô hình MVC 10
2.2 Khảo sát, phân tích thiết kế hệ thống 11
2.2.1 Mô tả bài toán 11
2.2.2 Quy trình nghiệp vụ 12
2.2.3 Yêu cầu hệ thống 12
2.2.4 Biểu đồ 14
2.3 Phân tích thiết kế cơ sở dữ liệu 15
2.3.1 Nội dung công việc 15
2.3.2 CSDL 15
2.3.3 Hoạt động chuyên môn 18
2.3.4 Kỹ năng 18
2.3.5 Kinh nghiệm 19
2.3.6 Tự đánh giá kết quả thực hiện công việc 19
CHƯƠNG 3 XÂY DỰNG DEMO VÀ KẾT QUẢ ĐẠT ĐƯỢC 20
3.1 Vào việc demo 20
3.2 Một số hình ảnh demo 21
3.3 Kết luận 23
3.3.1 Kỹ năng mềm 23
3.3.2 Áp dụng thực tiễn 24
3.3.3 Hạn chế 24
Trang 53.4 Hướng phát triển 25 TÀI LIỆU THAM KHẢO 26
Trang 6CHƯƠNG 1 LỊCH LÀM VIỆC TẠI NƠI THỰC TẬP
Tuầ
Cán bộ hướng dẫn
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công ty, nội quy, quy
định của công ty
- Làm quen với môi trường làm việc
của công ty
- Học cách trao đổi, báo cáo, làm việc
Nguyễn ThịHải Yến
Hoàn thành
2 - Tìm hiểu HTML, CSS
- Tìm hiểu về Bootstrap, PUG
Nguyễn ThịHải Yến
Hoàn thành
3 - Tìm hiểu về ngôn ngữ Javascript
- Tìm hiểu về NodeJs, Express
Nguyễn ThịHải Yến
Hoàn thành
4
- Tìm hiểu về Github
- Mô hình MVC
- Tìm hiểu MongoDB, Mongoose
- Lên kế hoạch xây dựng website
Nguyễn ThịHải Yến
Hoàn thành
5
Giai đoạn font-end:
- Cài đặt các thư viện cần thiết - Xây
dựng giao diện người dùng
- Xử lý các tương tác trên giao diện
Nguyễn ThịHải Yến
Hoàn thành
6 Giai đoạn back-end: Phan Thị Hà Hoàn
Trang 7- Cài đặt các thư viện cần thiết
- Xây dựng các chức năng phía admin
- Cấu hình Database
thành
7 - Xử lý yêu cầu CRUD
- Tối ưu hoá code
Nguyễn ThịHải Yến
Hoàn thành
Gầnhoànthành
Giới thiệu công ty
Tên công ty: Công ty cổ Phần TLT Thái Nguyên
Địa chỉ: Tổ dân phố Mãn Chiêm, phường Hồng Tiến, thành phố Phổ Yên, Thái Nguyên
Giám đốc: Lương Duy Tùng
Điện thoại: 0985 996 567
Lĩnh vực hoạt động của công ty: Là công ty chuyên duy trì kết nối dữ liệu, các dịch vụmạng bao gồm mạng không dây Cung cấp cơ sở hạ tầng, đảm bảo hiệu suất tối đa chongười dùng Phát triển công nghệ phần mềm
Trang 8CHƯƠNG 2 LÝ THUYẾT CÔNG CỤ ÁP DỤNG 2.1 Tìm hiểu về HTML, CSS, PHP, JS.
2.1.1 Kiến thức lý thuyết
2.1.1.1 HTML là gì?
HTML (HyperText Markup Language) là ngôn ngữ đánh dấu tiêu chuẩn được sửdụng để tạo ra các trang web Nó cung cấp cấu trúc cơ bản cho một trang web, xác địnhcác phần tử và nội dung trên trình duyệt web Dưới đây là một số điểm tổng quan vềHTML:
Cấu trúc cơ bản: HTML sử dụng các thẻ để đánh dấu và xác định các phần tử trêntrang web Mỗi thẻ có thể chứa nội dung và thuộc tính để mô tả thông tin về phần tử
Phần tử HTML: Gồm các phần tử như <head>, <title>, <body> để định nghĩa tiêu
đề, phần thân của trang web và nhiều thẻ khác nhau để hiển thị nội dung như văn bản,hình ảnh, video, liên kết, biểu mẫu và nhiều thứ khác
Cấu trúc hình thức: HTML cung cấp cách để xác định cấu trúc hình thức của trangweb, bao gồm việc sắp xếp các phần tử, tạo định dạng văn bản, và thiết lập bố cục
Phiên bản: HTML5 là phiên bản mới nhất và mạnh mẽ nhất của HTML Nó cungcấp nhiều tính năng mới và cải tiến như hỗ trợ video/audio tích hợp, đồ họa vector, hỗ trợ
di động tốt hơn và nhiều khả năng tương tác hơn
Tương tác và tích hợp: HTML thường được kết hợp với CSS (Cascading StyleSheets) để định dạng và trang trí giao diện người dùng Ngoài ra, JavaScript thường được
sử dụng để thêm tính năng tương tác động và cải thiện trải nghiệm người dùng
Trang 92.1.1.2 CSS (Cascading Style Sheets)
CSS là ngôn ngữ định dạng kiểu (cascading style sheets) được sử dụng để địnhdạng và trình bày các nội dung trong một trang web Nó được phát triển bởi W3C vàonăm 1996 và hiện tại đã trở thành một trong những công cụ quan trọng trong việc thiết kếgiao diện cho các trang web
Tương tự như HTML, CSS cũng đã trải qua nhiều phiên bản khác nhau Dưới đây
là một bảng so sánh các phiên bản của CSS:
Phiên
CSS1 1996 Phiên bản đầu tiên của CSS
CSS2 1998 Bổ sung các tính năng mới như tạo danh sách, bảng,
form,
CSS3 2001 Cải tiến về cú pháp và tính năng của CSS
CSS4 Đang phát triển Dự kiến sẽ bổ sung thêm nhiều tính năng mới
CSS có nhiều tính năng quan trọng giúp cho việc định dạng và trình bày các nộidung trong một trang web Dưới đây là một số tính năng chính của CSS:
● Cho phép tạo ra các kiểu định dạng khác nhau cho các phần tử trong trang web
● Tách biệt giữa nội dung và kiểu định dạng, giúp cho việc chỉnh sửa giao diện trởnên dễ dàng hơn
● Cung cấp các thuộc tính để điều khiển kích thước, màu sắc, khoảng cách, củacác phần tử
● Hỗ trợ các tính năng mới như animation, transition,
2.1.1.3 Javascript là gì?
Javascript chính là một ngôn ngữ lập trình web rất phổ biến ngày nay Javascript được
tích hợp đồng thời nhúng vào HTML để hỗ trợ cho website trở nên sống động hơn.Chúng cũng đóng vai trò tương tự như một phần của website, cho phép Client-side Script
từ người dùng tương tự máy chủ (Nodejs) để tạo ra những website động
Javascript dùng để làm gì?
Trang 10Bên cạnh việc tìm hiểu javascript là ngôn ngữ gì thì chúng được sử dụng để làm gìcũng rất quan trọng Việc nắm bắt được mục đích của ngôn ngữ đặc biệt này sẽ giúp bạn
dễ dàng sử dụng chúng hơn trong công việc Cụ thể như sau:
Thay đổi nội dung HTML: Một trong số nhiều phương thức HTML JavaScript chính
là getElementById () Chúng được sử dụng để tìm một phần tử của HTML với id
=”demo” và dùng để thay đổi nội dung của phần từ (Internal HTML) sang thành “HelloJavaScript”
Thay đổi giá trị thuộc tính HTML: Tổng quan về javascript còn có thể sử dụng đểthay đổi các giá trị của thuộc tính Ví dụ: thay đổi thuộc tính src (source) của tag<img>
Ưu nhược điểm của ngôn ngữ lập trình Javascript
+ JS còn có thể được gắn trên một số các element hoặc những events của các trangweb
+ Những website có sử dụng JS thì chúng sẽ giúp cho trang web đó có sự tương táccũng như tăng thêm nhiều trải nghiệm mới cho người dùng
+ Người dùng cũng có thể tận dụng JS với mục đích là để kiểm tra những input thay
vì cách kiểm tra thủ công thông qua hoạt động truy xuất database
+ Giao diện của ứng dụng phong phú với nhiều thành phần như Drag and Drop,Slider để cung cấp đến cho người dùng một Rich Interface (giao diện giàu tính năng).+ Giúp thao tác với người dùng phía Client và tách biệt giữa các Client với nhau.Nhược điểm
+ JS Code Snippet khá lớn
+ JS dễ bị các hacker và scammer khai thác hơn
Trang 11+ JS cũng không có khả năng đa luồng hoặc đa dạng xử lý.
+ Có thể được dùng để thực thi những mã độc ở trên máy tính của người sử dụng.+ Những thiết bị khác nhau có thể sẽ thực hiện JS khác nhau, từ đó dẫn đến sự khôngđồng nhất
+ Vì tính bảo mật và an toàn nên các Client-Side Javascript sẽ không cho phép đọchoặc ghi các file
+ JS không được hỗ trợ khi bạn sử dụng ở trong tình trạng thiết bị được kết nối mạng
2.1.1.4 Node JS là gì?
NodeJS, hay còn viết là Node.js, là một yếu tố then chốt trong lập trình web hiện đại, thay đổi cách chúng ta xây dựng các ứng dụng phía máy chủ bằng JavaScript Cho dù bạn là lập trình viên dày dặn kinh nghiệm hay người mới bước vào lập trình, những kiến thức nền tảng về NodeJS sẽ luôn là những điều cần thiết để
có thể tối ưu hiệu quả khi làm việc.
NodeJS là môi trường thời gian chạy mã JavaScript
Khi bạn viết code JavaScript trong trình soạn thảo văn bản, code đó không thểthực hiện bất kỳ tác vụ nào trừ khi bạn thực thi (hoặc chạy) nó Và để chạy code, bạncần có môi trường thời gian chạy
Các trình duyệt như Chrome và Firefox có môi trường thời gian chạy Đó là lý
do tại sao họ có thể chạy code JavaScript Trước khi NodeJS được tạo, JavaScript chỉ
có thể chạy trên trình duyệt và chỉ được sử dụng để xây dựng các ứng dụng front-end
NodeJS cung cấp môi trường thời gian chạy bên ngoài trình duyệt Nó cũngđược xây dựng trên công cụ JavaScript của Chrome (V8 Engine) Điều này giúp bạn
có thể xây dựng các ứng dụng back-end bằng cách sử dụng cùng ngôn ngữ lập trìnhJavaScript mà bạn quen thuộc
Trang 122.1.1.5 Mô hình MVC
MVC là gì?
MVC là viết tắt của Model-View-Controller Cấu trúc Model-View-Controller(MVC) là một mẫu kiến trúc/mẫu thiết kế (design pattern) tách ứng dụng thành bathành phần logic chính: Model, View và Controller Mỗi thành phần kiến trúc đượcxây dựng để xử lý các khía cạnh phát triển cụ thể của một ứng dụng
Trang 13Nếu trạng thái của dữ liệu này thay đổi thì Model thường sẽ thông báo choView (để màn hình có thể thay đổi khi cần) và đôi khi là Controller (nếu cần logickhác để cập nhật View).
Thông thường, các đối tượng Model có thể truy xuất từ cơ sở dữ liệu, thao tác và lưutrữ trạng thái Model trong cơ sở dữ liệu
Trong ứng dụng MVC, Controller xử lý các giá trị chuỗi truy vấn và chuyểncác giá trị này cho Model, từ đó Model sẽ truy vấn cơ sở dữ liệu bằng cách sử dụngcác giá trị đó View hiển thị thông tin do Controller xử lý và phản hồi đầu vào từtương tác của người dùng
2.2 Khảo sát, phân tích thiết kế hệ thống
2.2.1 Mô tả bài toán
Một cửa hàng bán dụng cụ và bộ quần áo bóng đá áp dụng quản lý bán hàng thôngqua website Đây là trang web giới thiệu về các sản phẩm thể thao liên quan đến bóng đá,
từ áo đấu, giày bóng đá đến phụ kiện như găng tay và bóng Trọng tâm của website làgiới thiệu và cung cấp thông tin chi tiết về từng sản phẩm Tại đây người dùng có thể xemthông tin về các loại sản phẩm, cho phép tìm kiếm sản phẩm phù hợp Tìm kiếm bằngcách nhập tên: cho phép người dùng tìm kiếm bất kỳ thông tin về sản phẩm trong websitethông qua thao tác đơn giản là nhập từ khóa cần tìm và nhấn tìm kiếm để ra kết quả, từkhóa có thể không phải là tên đầy đủ của mà chỉ cần chứa kí tự liên quan thì hệ thốngcũng trả về kết quả
- Đối với admin: Admin sẽ quản lý về danh mục, sản phẩm, phân quyền, đơn hàng,
người dùng
Trang 14+ Quản lý sản phẩm : thêm, sửa, xóa.
+ Quản lý danh mục: thêm, sửa, xóa
+ Quản lý đơn hàng: cập nhật, xóa
+ Quản lý phân quyền: thêm, sửa, xóa
+ Quản lý tài khoản: Xóa
- Đối với người dùng: Người dùng có thể xem, quản lí giỏ hàng, quản lí tài khoản, đặt
hàng,thanh toán đơn hàng, đăng nhập, đăng kí, đăng xuất, tìm kiếm sản phẩm liên quan
+ Quản lí tài khoản: cập nhật thông tin, đổi mật khẩu
+Quản lí giỏ hàng: thêm sản phẩm vào giỏ hàng, xóa sp ra khỏi giỏ hàng, cập nhật sốlượng mua
2.2.2 Quy trình nghiệp vụ
Cửa hàng sẽ nhập các thiết bị theo thương hiệu và phân loại Sau đó, bộ phận quảnlý(admin) có nhiệm vụ cập nhật thông tin lên website với đầy đủ thông tin về tên sảnphẩm, tên, giá, mô tả, ảnh, phân loại Ngoài ra, admin còn cập nhật thông tin về sản phẩmmới khi có thêm một mặt hàng mới và có thể điều chỉnh trạng thái hoạt động của sảnphẩm Khách hàng truy cập vào website để xem thông tin chi tiết của từng loại hoặc tìmkiếm
2.2.3 Yêu cầu hệ thống
a Yêu cầu chức năng
Người truy cập vào website có thể xem, đặt hàng, mua hàng, thanh toán,tạo tàikhoản, đăng nhập, đăng xuất, quản lí tài khoản, quản lí giỏ hàng, tìm kiếm thông tin vềsản phẩm
Về tổ chức lưu trữ, thực hiện các yêu cầu:
- Thêm, xóa, sửa thông tin, hình ảnh về sản phẩm
- Thêm, xóa, sửa thông tin về danh mục
- Xóa thông tin về bình luận
- Thêm, xóa, sửa thông tin về người dùng
- Cập nhật trạng thái đơn hàng, xóa đơn hàng
b Yêu cầu phi chức năng
- Giao diện trực quan dễ sử dụng
Trang 15- Thao tác đơn giản, đầy đủ chức năng
- Dung lượng không quá lớn, tốc độ xử lý nhanh
- Nâng cấp và bảo trì dễ dàng
- Đảm bảo an toàn dữ liệu khi chạy website trực tuyến
Trang 162.2.4 Biểu đồ
2.2.4.1 Biểu đồ Use case
Hình 3 1: Biểu đồ usecase tổng quát
Trang 172.3 Phân tích thiết kế cơ sở dữ liệu
2.3.1 Nội dung công việc
a) Tìm hiểu về hệ quản trị cơ sở dữ liệu MongoDB
- Cấu hình database
b) Phân tích, thiết kế cơ sở dữ liệu
- Tiến hành phân tích cơ sở dữ liệu
- Tiến hành thiết kế, tạo các object dữ liệu
- Mô hình hoá dữ liệu cho MongoDB
- Kết nối ứng dụng nodejs với database
2.3.2 CSDL
2.3.2.1 Tầm quan trọng của cơ sở dữ liệu.
- Hầu hết ứng dụng hay các website đều cần phải có cơ sở dữ liệu, để lưu trữ dữliệu, xử lý thông tin và đưa ra các báo cáo, hỗ trợ tìm kiếm, …
- Khi dữ liệu trở thành trung tâm của ứng dụng thì cung cấp các chức năng tớingười dùng phụ thuộc vào khả năng thao tác dữ liệu, vấn đề mà người thiết kế vàngười xây dựng ứng dụng quan tâm khi sử dụng dữ liệu là:
+ Lưu dữ liệu tập trung
+ Đảm bảo toàn vẹn dữ liệu
+ Đảm bảo khả năng truy xuất đồng thời của nhiều người dùng trên dữ liệu.+ Đảm bảo thời gian hồi đáp ngắn cho mỗi người dung
+ Bảo mật dữ liệu
+ Trao đổi dữ liệu giữa các hệ thống khác nhau
2.3.2.2 MongoDB là gì? Mongoose?
MongoDB là cơ sở dữ liệu được thiết kế theo hướng đối tượng
Mongoose là một thư viện Object Data Modeling (ODM)
- Thư viện mô hoá dữ liệu đối tượng cho MongoDB
- Mongoose cho phép định nghĩa các object với một schema được định nghĩa rõràng, được anh xạ tới một MongoDB document
2.3.2.3 Thao tác với MongGoDB
Tạo và CSDL online
Trang 18Để tạo datatabase bằng MongoDB thì các anh iem cần https://cloud.mongodb.com vàlàm như sau:
+ Tiếp đó sẽ hiện lên một trang cho phép bạn điền tên database và collation và ấn Create
để tạo lập
Trang 19Tạo bảng
- Bước 1: Chọn CSDL cần tạo bảng
- Bước 2: Viết một object thông tin cần tạo
Trang 202.3.3 Hoạt động chuyên môn
2.3.3.1 Nghiên cứu các tài liệu.
- Chọn lọc các thông tin hợp lý
- Tích lũy các kiến thức có sẵn, từ đó có cái nhìn tổng quát hơn trong quá trình quynạp thông tin phục vụ cho hướng đi tổng quát của mình
2.3.3.2 Thiết kế cơ sở dữ liệu.
- Xác định mô tả các cấu trúc Database
- Mô tả đặc tính riêng
2.3.4 Kỹ năng
- Kỹ năng đọc docs và google search
- Kỹ năng học hỏi liên tục, phân tích và nhìn nhận vẫn đề.
- Kỹ năng phân tích dữ liệu và thu thập những dữ liệu cần thiết
- Kỹ năng xác định các vấn đề và các hạn chế