PH Ầ N 1 M Ở Đ Ầ U TRƯ Ờ NG Đ Ạ I H Ọ C QU Ả NG NAM KHOA TOÁN - TIN ----- ----- BÁO CÁO KHÓA LU Ậ N T Ố T NGHI Ệ P Tên đ ề tài: XÂY D Ự NG WEBSITE BÁN HÀNG DIGITAL CAMERA Sinh viên th ự c hi ệ n: Thipphasone KHATTIYAONG L ớ p : DT19CTT01 Ngành: Công ngh ệ thông tin Khóa h ọ c: 2019 - 2023 Giáo viên hư ớ ng d ẫ n: ThS Tr ầ n Th ị Di ệ u Hi ề n Qu ả ng Nam, tháng 03 năm 2022 L Ờ I C Ả M ƠN Để hoàn thành bài báo cáo này, trước hết, em xin cảm ơn các thầy cô giáo khoa toán – t in Trường Đại học Q uảng Nam , em đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý thầy cô cùng bạn bè Em xin chân thành cảm ơn cô Tr ầ n Th ị Di ệ u Hi ề n đã trang bị cho em những kiến thức chuyên môn trong thời gian vừa qua, và giúp em hiểu rỏ hơn cái lĩnh vực đã nghiên cứu để hoàn thành đề tại được giao Với điều kiện thời gian có hạn, kiến thức còn hạn chế, bài báo cáo này không thể tránh được những sai sót Em rất mong nhận được ý kiến đóng góp của các quý thầy cô và nhà trường để em có thêm kinh nghiệm và bổ sung kiến thức bản thân, và tiếp tục phát triển đồ án của mình Em xin chân thành cảm ơn! Sinh viên th ự c hi ệ n Thipphasone KHATTIYAVONG PH Ầ N 1 M Ở Đ Ầ U Ngày nay, công ngh ệ thông tin đã có nh ữ ng bư ớ c phát tri ể n m ạ nh m ẽ , theo c ả chi ề u r ộ ng và sâu Máy tính đi ệ n t ử không cogn là m ộ t th ứ phương ti ệ n quý hi ế m mà đang càng ngày tr ở thành m ộ t công c ụ làm vi ệ c và gi ả i trí thông d ụ ng c ủ a con ngư ờ i, không ch ỉ ở nơi công c ụ làm vi ệ c mà còn ngay c ả trong gia đình Đ ặ c bi ệ t, ứ ng d ụ ng công ngh ệ thông tin và vi ệ c tin h ọ c hóa đư ợ c xem là m ộ t trong nh ữ ng y ế u t ố mang tính quy ế t đ ị nh trong ho ạ t đ ộ ng c ủ a các chính ph ủ , t ổ ch ứ c, cũng như c ủ a các công ty, nó đóng vai trò h ế t s ứ c quan tr ọ ng, có th ể t ạ o ra nh ữ ng bư ớ c đ ộ t phá m ạ nh m ẽ Trong ho ạ t đ ộ ng s ả n xu ấ t, kinh doanh, gi ờ đây, thương m ạ i đi ệ n t ử đã kh ẳ ng đ ị nh đư ợ c vai trò xúc ti ế n và thúc đ ẩ y s ự phát tri ể n c ủ a doanh nghi ệ p Đ ố i v ớ i m ộ t c ử a hàng hay shop, vi ệ c qu ả ng bá và gi ớ i thi ệ u đ ế n khách hàng các s ả n ph ẩ m m ớ i đáp ứ ng đư ợ c nhu c ầ u c ủ a khách hàng đ ồ ng th ờ i cho khách hàng th ấ y đư ợ c s ự khác bi ệ t gi ữ a các s ả n ph ẩ m c ủ a nhà s ả n xu ấ t (thương hi ệ u) khác nhau s ẽ là c ầ n thi ế t V ậ y ph ả i qu ả ng bá th ế nào đó là xây d ự ng đư ợ c m ộ t website cho c ử a hàng qu ả ng bá t ấ t c ả các s ả n ph ẩ m c ủ a mình bán Vì v ậ y, em đã th ự c hi ệ n khóa lu ậ n đ ề tài “XÂY D Ự NG WEBSITE BÁN HÀNG DIGITAL CAMERA” Ngư ờ i ch ủ c ử a hàng đưa các s ả n ph ẩ m lên website và qu ả n lý website đó Khách hàng có th ể mua hàng trê n website mà không c ầ n đ ế n c ử a hàng V ớ i nh ữ ng tính năng cơ b ả n, website giúp g ắ n k ế t ngư ờ i mua và ch ủ c ử a hàng d ễ dàng và ti ế t ki ệ m th ờ i gian cho khách hàng hơn vi ệ c ph ả i đ ế n tr ự c ti ế p c ử a hàng đ ể mua s ả n ph ẩ m Nó còn giúp ngư ờ i ch ủ c ử a hàng d ễ dàng n ắ m b ắ t, qu ả n lí s ả n ph ẩ m c ủ a mình và truy ề n thông qu ả ng cáo đư ợ c r ộ ng hơn 1 Lý do ch ọ n đ ề tài S ự phát tri ể n c ủ a ngành Công Ngh ệ Thông Tin đã kéo theo m ộ t lo ạ t nh ữ ng l ợ i ích và thay đ ổ i trong phương th ứ c qu ả n lí, kinh doanh, thúc đ ẩ y các ho ạ t đ ộ ng kinh t ế xã h ộ i di ễ n phát tri ể n m ạ nh m ẽ Ngày nay, h ầ u h ế t các công ty trên th ế gi ớ i dù ho ạ t đ ộ ng ở b ấ t kì lĩnh v ự c nào cũng đ ề u ứ ng d ụ ng công ngh ệ thông tin vào ho ạ t đ ộ ng c ủ a mình v ớ i hình th ứ c và qui mô khác nhau R ấ t nhi ề u các ph ầ n m ề m, các h ệ th ố ng tin h ọ c hóa đã đư ợ c cho ra đ ờ i nh ằ m h ỗ tr ợ cho ho ạ t đ ộ ng kinh doanh m ộ t cách hi ệ u qu ả V ớ i xu th ế phát tri ể n c ủ a xã h ộ i hi ệ n đ ạ i, khi m ứ c s ố ng c ủ a ngư ờ i dân ngày càng đư ợ c nâng cao thì nhu c ầ u mua s ắ m c ủ a con ngư ờ i cũng đư ợ c nâng lên m ộ t b ậ c Cùng v ớ i s ự phát tri ể n m ạ nh m ẽ c ủ a m ạ ng Internet và các phương th ứ c thanh toán đi ệ n t ử , m ộ t xu hư ớ ng m ớ i ra đ ờ i trong kinh doanh hàng hóa, đó chính là Thương m ạ i đi ệ n t ử Vi ệ c mua s ắ m c ủ a khách hàng không ch ỉ còn bó h ẹ p trong các c ử a hàng, siêu th ị mà có th ể ch ỉ đơn gi ả n là k ế t n ố i vào m ộ t website bán hàng tr ự c tuy ế n Xu th ế này đem l ạ i s ự ti ệ n ích không nh ỏ cho khách hàng và ti ệ n ki ệ m l ớ n cho doanh nghi ệ p V ớ i nh ậ n đ ị nh như v ậ y, đư ợ c s ự hư ớ ng d ẫ n và giúp đ ỡ c ủ a cô giáo Tr ầ n Th ị Di ệ u Hi ề n em đã l ự a ch ọ n đ ề tài “ Xây d ự ng website bán hàng DIGITAL CAMERA ” đ ể th ự c hi ệ n làm khóa lu ậ n này 2 M ụ c tiêu c ủ a đ ề tài - Xây dựng một website cung cấp cho khách hàng tất cả những thông tin chi tiết về các sản phẩm trên trang web, thông tin liên hệ cũng như những sản phẩm mới nhất được cập nhật thường xuyên - Khách hàng có thể đặt hàng ngay những sản phẩm mà khách hàng yêu thích - Tạo ra sản phẩm thân thiện, đơn giản với giao diện tự nhiên, bắt mắt, dễ sử dụng cho tất cả mọi người - Xây dựng một website giúp người quản trị quản lý thông tin hệ thống một cách dễ dàng hơn, tiện lợi hơn - Củng cố và bổ sung kiến thức các môn đã học Qua đó, rèn luyện kỹ năng làm việc độc lập 3 Đ ố i tư ợ ng và ph ạ m vi nghiên c ứ u + V ề lý thuy ế t Tìm hi ể u quá trình xem s ả n ph ẩ m, đ ặ t và mua hàng c ủ a khách hàng Lưu ý nh ữ ng h ạ n ch ế k hi th ự c hi ệ n đ ặ t hàng tr ự c tuy ế n Th ố ng kê các lo ạ i s ả n ph ẩ m t ồ n kho, áp d ụ ng nh ữ ng phương pháp t ố t nh ấ t đ ể d ễ dàng qu ả n lý cũng như c ả i ti ế n + V ề ứ ng d ụ ng: Xây d ự ng các ch ứ c năng cơ b ả n c ầ n thi ế t cho m ộ t website bán hàng và d ự a theo nh ữ ng ch ứ c năng c ủ a c ác website qu ả n lý b ả n hàng khác hi ệ n nay còn đang thi ế u ho ặ c đã có nhưng chưa đư ợ c t ố i ưu 4 Phương pháp nghiên c ứ u - Tìm hi ể u các website ph ổ bi ế n đã có trên internet - Kh ả o sát và thu th ậ p thông tin v ề th ị trư ở ng máy ả nh k ỹ thu ậ t s ố - Tham kh ả o các mô hình kinh doanh tr ự c tuy ế n - Phân tích thi ế t k ế h ệ th ố ng thông tin, xây d ự ng n ộ i dung qu ả n tr ị Back - end và giao di ệ n Front - end website - Xây d ự ng m ộ t website thì vi ệ c l ự a ch ọ n ngôn ng ữ và ứ ng d ụ ng khi làm vi ệ c là đi ề u r ấ t quan tr ọ ng - Đ ề tài s ử d ụ ng ngôn ng ữ PHP l àm ngôn ng ữ l ậ p trình đ ể xây d ự ng website và m ộ t s ố thư vi ệ n h ỗ tr ợ trong vi ệ c xây d ự ng website 5 L ị ch s ử nghiên c ứ u Với vấn đề về PHP thì cũng đã được nhiều tác giả phân tích, nghiên cứu theo nhiều hướng khác nhau 6 Đóng góp c ủ a đ ề tài - T ạ o ra s ả n ph ẩ m có hàm lư ợ ng khoa ph ụ c v ụ cho vi ệ c kinh doanh tr ự c tuy ế n - Giúp ích trong vi ệ c truy ề n đ ạ t thông tin t ớ i ngư ờ i mua hàng, qu ả ng bá hình ả nh c ủ a c ử a hàng và giúp ích cho quá trình mua s ả n ph ẩ m c ủ a c ử a hàng thông qua internet - B ổ sung tích lu ỹ ki ế n th ứ c v ề thi ế t k ế website và k ỹ năng l ậ p trình 7 C ấ u trúc đ ề tài PH Ầ N 1 M Ở Đ Ầ U PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U Chương 1: Cơ s ở lý thuy ế t Chương 2: Phân tích và thi ế t k ế website Chương 3: Thi ế t k ế và cài đ ặ t h ệ th ố ng PH Ầ N 3 K Ế T LU Ậ N PH Ầ N 4 TÀI LI Ệ U THAM KH Ả O PH Ầ N 5 PH Ụ L Ụ C PH Ầ N 2 N Ộ I DUNG NGHIÊN C Ứ U CHƯƠNG 1: CƠ S Ở LÝ THUY Ế T 1 1 Tìm hi ể u v ề các ngôn ng ữ l ậ p trình 1 1 1 Ngôn ng ữ HTML Ngôn ng ữ HTML (HyperText Markup Language – ngôn ng ữ siêu văn b ả n) là m ộ t trong các lo ạ i ngôn ng ữ đư ợ c s ử d ụ ng trong l ậ p trình web Khi truy c ậ p m ộ t trang web c ụ th ể là click vào các đư ờ ng link, b ạ n s ẽ đư ợ c d ẫ n t ớ i nhi ề u trang các nhau và các trang này đư ợ c g ọ i là m ộ t tài li ệ u HTML (t ậ p tin HTML) M ộ t trang HTML như v ậ y đư ợ c c ấ u thành b ở i nhi ề u ph ầ n t ử HTML nh ỏ và đư ợ c quy đ ị nh b ằ ng các th ẻ tag B ạ n có th ể phân bi ệ t m ộ t trang web đư ợ c vi ế t b ằ ng ngôn ng ữ HTML hay PHP thông qua đư ờ ng link c ủ a nó Ở cu ố i các trang HTML thư ờ ng hay có đuôi là HTML ho ặ c HTM Hình 1 1: Mô hình c ủ a HTML M ộ t trang HTML đư ợ c c ấ u thành b ở i nhi ề u ph ầ n t ử HTML nh ỏ và đư ợ c quy đ ị nh b ằ ng các th ẻ tag HTML là ngôn ng ữ l ậ p trình web đư ợ c đánh giá là đơn gi ả n M ọ i trang web, m ọ i trình duy ệ t web đ ề u có th ể hi ể n th ị t ố t ngôn ng ữ HTML Hi ệ n nay, phiên b ả n m ớ i nh ấ t c ủ a HTML là HTML 5 v ớ i nhi ề u tính năng t ố t và ch ấ t lư ợ ng hơn so v ớ i các phiên b ả n HTML cũ V ậ y, đ ố i v ớ i các website, ngôn ng ữ HTML đóng vai trò như th ế nào? HTML, theo đúng nghĩa c ủ a nó, là m ộ t lo ạ i ngôn ng ữ đánh d ấ u siêu văn b ả n, th ế nên các ch ứ c năng c ủ a nó cũng xoay quanh y ế u t ố này C ụ th ể , HTML giúp c ấ u thành các c ấ u trúc cơ b ả n trên m ộ t website (chia khung sư ờ n, b ố c ụ c các thành ph ầ n trang web) và góp ph ầ n h ỗ tr ợ khai báo các t ậ p tin kĩ thu ậ t s ố như video, nh ạ c, hình ả nh Hình 1 2 : Mô hình ho ạ t đ ộ ng JavaScript, CSS, HTML Ưu đi ể m n ổ i tr ộ i nh ấ t và cũng là th ế m ạ nh c ủ a HTML là kh ả năng xây d ự ng c ấ u trúc và khi ế n trang web đi vào quy cũ m ộ t h ệ th ố ng hoàn ch ỉ nh N ế u b ạ n mong mu ố n s ở h ữ u m ộ t website có c ấ u trúc t ố t có m ụ c đích s ử d ụ ng nhi ề u lo ạ i y ế u t ố trong văn b ả n, hãy h ỏ i HTM L Nhi ề u ý ki ế n cho r ằ ng tùy theo m ụ c đích s ử d ụ ng mà l ậ p trình viên hay ngư ờ i dùng có th ể l ự a ch ọ n ngôn ng ữ l ậ p trình riêng cho website c ủ a b ạ n, tuy nhiên th ự c ch ấ t HTML ch ứ a nh ữ ng y ế u t ố c ầ n thi ế t mà dù website c ủ a b ạ n có thu ộ c th ể lo ạ i nào, giao ti ế p v ớ i ngôn ng ữ l ậ p trình nào đ ể x ử lý d ữ li ệ u thì nó v ẫ n ph ả i c ầ n đ ế n ngôn ng ữ HTML đ ể hi ể n th ị n ộ i dung cho ngư ờ i truy c ậ p Nói đúng hơn, dù website c ủ a b ạ n đư ợ c xây d ự ng như th ế nào, trên n ề n t ả ng nào thì nó cũng c ầ n đ ế n s ự h ỗ tr ợ c ủ a HTML, dù ít dù nhi ề u Đ ố i v ớ i các l ậ p trình viên hay nhà phát tri ể n web, h ọ đ ề u ph ả i h ọ c HTML như m ộ t lo ạ i ngôn ng ữ cơ b ả n trư ớ c khi b ắ t tay vào thi ế t k ế trang web nào C ấ u trúc cơ b ả n c ủ a m ộ t file HTML C ấ u trúc cơ b ả n c ủ a HTML C ấ u trúc cơ b ả n c ủ a trang HTML/XHTML có d ạ ng như sau, thư ờ ng g ồ m 3 ph ầ n: : Ph ầ n khai báo chu ẩ n c ủ a html hay xhtml : Ph ầ n khai báo ban đ ầ u, khai báo v ề meta, title, CSS, javascript : Ph ầ n ch ứ a n ộ i dung c ủ a trang web, nơi hi ể n th ị n ộ i dung C ấ u trúc cơ b ả n Tiêu đ ề trang web Ph ầ n thân vi ế t ở đây C ấ u trúc cơ b ả n c ủ a tran g web M ỗ i trang web đ ề u có cách th ể hi ệ n c ấ u trúc khác nhau, có trang 1 c ộ t, có trang 2 và cũng có trang ch ứ a nhi ề u c ộ t, bên dư ớ i đây chúng ta tham kh ả o m ộ t trang đơn gi ả n s ử d ụ ng 2 c ộ t đ ể layout Ph ầ n đ ầ u: header, có th ể ch ứ a logo, câu slogan, các liên k ế t, các banner liên k ế t, các button, đo ạ n flash, ho ặ c các form ng ắ n như form tìm ki ế m Ph ầ n liên k ế t toàn c ụ c: global navigation, dùng đ ể ch ứ a các liên k ế t đ ế n nh ữ ng trang quan tr ọ ng trong toàn b ộ trang, trong ph ầ n này có th ể ch ứ a thêm các liên k ế t con (S ub Navigation) Ph ầ n thân c ủ a trang: page body, ph ầ n này ch ứ a ph ầ n n ộ i dung chính (Content) và ph ầ n n ộ i dung ph ụ (Sidebar) Ph ầ n n ộ i dung chính: content, ph ầ n này ch ứ a n ộ i dung chính c ầ n th ể hi ệ n cho ngư ờ i dùng xem Ph ầ n n ộ i dung ph ụ : sidebar, ph ầ n này có th ể ch ứ a liên k ế t ph ụ c ủ a t ừ ng trang (Local Navigation), ho ặ c các banner ch ứ a liên k ế t liên quan, ho ặ c có th ể dùng đ ể ch ứ a các liên k ế t qu ả ng cáo Ph ầ n cu ố i trang web: footer, ph ầ n này thư ờ ng chưa phân liên h ệ như: tên công ty, đ ị a ch ỉ , s ố đi ệ n tho ạ i, mail liên h ệ , và đ ặ c bi ệ t là copyright, ho ặ c có th ể ch ứ a các liên k ế t toàn trang, các banner liên k ế t Hình 1 3 : Mô hình cấu trúc cơ bản của trang HTML 1 1 2 Ngôn ng ữ CSS 1 1 2 1 Gi ớ i thi ệ u Đ ị nh nghĩa CSS là vi ế t t ắ t c ủ a Cascading Style Sheets Đây là m ộ t ngôn ng ữ style sheet đư ợ c s ử d ụ ng đ ể mô t ả giao di ệ n và đ ị nh d ạ ng c ủ a m ộ t tài li ệ u vi ế t b ằ ng ngôn ng ữ đánh d ấ u (Markup) Nó cung c ấ p m ộ t tính năng b ổ sung cho HTML Nó thư ờ ng đư ợ c s ử d ụ ng v ớ i HTML đ ể thay đ ổ i phong cách c ủ a trang w eb và giao di ệ n ngư ờ i dùng Nó cũng có th ể đư ợ c s ử d ụ ng v ớ i b ấ t k ỳ lo ạ i tài li ệ u XML nào bao g ồ m c ả XML đơn gi ả n, SVG và XUL CSS đư ợ c s ử d ụ ng cùng v ớ i HTML và JavaScript trong h ầ u h ế t các trang web đ ể t ạ o giao di ệ n ngư ờ i dùng cho các ứ ng d ụ ng web và giao di ệ n ngư ờ i dùng cho nhi ề u ứ ng d ụ ng di đ ộ ng CSS làm đư ợ c nh ữ ng gì? Có th ể thêm giao di ệ n m ớ i vào các tài li ệ u HTML cũ Hoàn toàn có th ể thay đ ổ i giao di ệ n trang web ch ỉ v ớ i m ộ t vài thay đ ổ i trong mã CSS T ạ i sao s ử d ụ ng CSS Đây là ba l ợ i ích chính c ủ a CSS: 1) Gi ả i quy ế t m ộ t v ấ n đ ề l ớ n Trư ớ c khi có CSS, các th ẻ như phông ch ữ , màu s ắ c, ki ể u n ề n, các s ắ p x ế p ph ầ n t ử , đư ờ ng vi ề n và kích thư ớ c ph ả i đư ợ c l ặ p l ạ i trên m ọ i trang web Đây là m ộ t quá trình r ấ t dài t ố n th ờ i gian và công s ứ c Ví d ụ : N ế u b ạ n đang phát tri ể n m ộ t trang web l ớ n nơi phông ch ữ và thông tin màu đư ợ c thêm vào m ỗ i trang, nó s ẽ tr ở thành m ộ t quá trình dài và t ố n kém CSS đã đư ợ c t ạ o ra đ ể gi ả i quy ế t v ấ n đ ề này Đó là m ộ t khuy ế n cáo c ủ a W3C 2) Ti ế t ki ệ m r ấ t nhi ề u th ờ i g ian Đ ị nh nghĩa ki ể u CSS đư ợ c lưu trong các t ệ p CSS bên ngoài vì v ậ y có th ể thay đ ổ i toàn b ộ trang web b ằ ng cách thay đ ổ i ch ỉ m ộ t t ệ p 3) Cung c ấ p thêm các thu ộ c tính CSS cung c ấ p các thu ộ c tính chi ti ế t hơn HTML đ ể đ ị nh nghĩa giao di ệ n c ủ a trang web Các đi ể m chính c ủ a CSS đư ợ c đưa ra dư ớ i đây: CSS là vi ế t t ắ t c ủ a Cascading Style Sheet CSS đư ợ c s ử d ụ ng đ ể thi ế t k ế các th ẻ HTML CSS là m ộ t ngôn ng ữ đư ợ c s ử d ụ ng r ộ ng rãi trên web HTML, CSS và JavaScript đư ợ c s ử d ụ ng đ ể thi ế t k ế web Nó giúp các nhà thi ế t k ế web áp d ụ ng phong cách trên các th ẻ HTML Ví d ụ v ề CSS h1 { color:white; background - color:#00eeee; padding:5px; } p{ color:blue; } Write Your First CSS Example
This is Paragraph
1 1 2 2 Cú pháp c ủ a CSS B ộ quy t ắ c CSS ch ứ a selector và kh ố i khai báo Hình 1 4 : Mô hình cú pháp của CSS Selector: B ộ ch ọ n cho bi ế t ph ầ n t ử HTML b ạ n mu ố n t ạ o ki ể u cách Nó có th ể là b ấ t k ỳ th ẻ nào như , , Declaration Block: Kh ố i khai báo có th ể ch ứ a m ộ t ho ặ c nhi ề u khai báo đư ợ c phân cách b ở i d ấ u ch ấ m ph ẩ y (;) Đ ố i v ớ i ví d ụ trên, có hai khai báo: 1 color: yellow; 2 font - size: 11 px; M ỗ i khai báo ch ứ a m ộ t tên thu ộ c tính và giá tr ị , đư ợ c phân cách b ở i d ấ u hai ch ấ m Pr operty: M ộ t property là m ộ t ki ể u c ủ a thu ộ c tính c ủ a ph ầ n t ử HTML Nó có th ể là color, border, Value: Các giá tr ị đư ợ c gán cho thu ộ c tính CSS Trong ví d ụ trên, giá tr ị “yellow” đư ợ c gán cho thu ộ c tính color Selector{Propertyl: valuel; Property2: value2; ;} 1 1 3 Ngôn ng ữ l ậ p trình PHP PHP (viết tắt hồi quy “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web ph ổ biến nhất thế giới Như đã giới thiệu, PHP là ngôn ngữ máy chủ, mã lệnh PHP sẽ tập trung trên máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt Khi người dùng truy cập website viết bằng PHP, máy chủ đọc mã lệnh PHP và x ử lý chúng theo các hướng dẫn đã được mã hóa Khác với Website HTML tĩnh ở chỗ: khi có một yêu cầu, máy chủ chỉ đơn thuần gửi dữ liệu HTML đến trình duyệt Web và không xảy ra một sự biến dịch nào từ phía máy chủ Đối với người dùng cuối và trên trình duyệ t web, các trang home html và home php trong tương tự như nhau, nhưng thực chất nội dung của trang được tạo theo các cách khác nhau - Ưu điểm khi dùng PHP + Dùng mã nguồn mở (có thể chạy trên Apache hoặc IIS) + Phổ biến hơn ASP (có thể thấy dựa vào s ố website dùng PHP) + Dễ học khi đã biết HTML, C + Dựa vào XAMP (dễ cấu hình) + Nhiều hệ thống CMS miễn phí dùng + Đi cặp với MYSQL + Hoạt động trên Linux, có thể trên IIS – Windows - Nhược điểm : + Mã nguồn không đẹp + Chỉ chạy trên ứng dụng w eb 1 2 M ộ t s ố thư vi ệ n h ỗ tr ợ 1 2 1 Thư vi ệ n BOOSTRAP Bootstrap là m ộ t Framework có ch ứ a HTML, CSS, JAVASCRIPT, Framewor trong ti ế ng vi ệ t có nghĩa là “khuân kh ổ ” giúp ti ế t ki ệ m đư ợ c th ờ i gian, công s ứ c hơn n ữ a vi ệ c xây d ự ng 2 teamplate cho giao di ệ n Desktop và Mobile đã l ỗ i th ờ i thay vào đó là Responsive Responsive s ẽ giúp website hi ể n th ị tương thích v ớ i m ọ i kích thư ớ c màn hình, s ẽ tùy ch ỉ nh hi ệ n th ị đư ợ c nhi ề u hơn trên các lo ạ i màn hình khác nhau Ưu đi ể m khi s ử d ụ ng Bootstrap Ti ế t ki ệ m th ờ i gian: Boostrap giúp ngư ờ i thi ế t k ế giao di ệ n website ti ế t ki ệ m r ấ t nhi ề u th ờ i gian Các thư vi ệ n Bootstrap có nh ữ ng đo ạ n mã s ẵ n sàng cho b ạ n áp d ụ ng vào website Không t ố n nhi ề u th ờ i gian đ ể t ự vi ế t code cho giao di ệ n Tùy bi ế n cao: Có th ể d ự a vào Bootstrap và phát tri ể n n ề n t ả ng giao di ệ n c ủ a chính mình Bootstrap cung c ấ p cho b ạ n h ệ th ố ng Grid System m ặ c đ ị nh bao g ồ m 12 c ộ t và đ ộ r ộ ng 940px B ạ n có th ể thay đ ổ i, nâng c ấ p và phát tri ể n d ự a trên n ề n t ả ng này Responsive Web Design: V ớ i Bootstrap, vi ệ c phát tri ể n gia o di ệ n website đ ể phù h ợ p v ớ i đa thi ế t b ị tr ở nên d ễ dàng hơn bao gi ờ h ế t Đây là xu hư ớ ng phát tri ể n giao di ệ n website đang r ấ t đư ợ c ưu chu ộ ng trên th ế gi ớ i 1 2 2 Thư vi ệ n JAVA SCRIPT JavaScript là 1 ngôn ng ữ d ạ ng script thư ờ ng đư ợ c s ử d ụ ng cho vi ệ c l ậ p trình web ở phía client, nó tuân theo chu ẩ n ECMAScript Là 1 ngôn ng ữ linh đ ộ ng, cú pháp d ễ s ử d ụ ng như các ngôn ng ữ khác và d ễ dàng l ậ p trình JavaScript không h ề liên quan t ớ i ngôn ng ữ l ậ p trình java, đư ợ c h ầ u h ế t các trình duy ệ t ngày nay h ỗ tr ợ V ớ i javascri pt, ứ ng d ụ ng web c ủ a b ạ n s ẽ tr ở nên vô cùng sinh đ ộ ng, mang tính tr ự c quan và tương tác cao JavaScript theo phiên b ả n hi ệ n hành là m ộ t ngôn ng ữ l ậ p trình k ị ch b ả n d ự a trên đ ố i tư ợ ng đư ợ c phát tri ể n t ừ các ý ni ệ m nguyên m ẫ u Ngôn ng ữ này đư ợ c dùng r ộ ng rãi cho các trang web, nhưng cũng đư ợ c dùng đ ể t ạ o kh ả năng vi ế t script s ử d ụ ng các đ ố i tư ợ ng n ằ m s ẵ n trong các ứ ng d ụ ng Gi ố ng Java, JavaScript có cú pháp tương t ự C, nhưng nó g ầ n v ớ i Self hơn Java “ js” là ph ầ n m ở r ộ ng thư ờ ng đư ợ c dùng cho t ậ p tin mã ngu ồ n JavaScript 1 2 3 Thư vi ệ n AJAX AJAX (Asynchronous JavaScript and XML) là m ộ t k ỹ thu ậ t cho phép các trang web tương tác v ớ i máy ch ủ mà không c ầ n ph ả i t ả i l ạ i toàn b ộ trang Thay vì t ả i l ạ i trang hoàn toàn, các yêu c ầ u đ ế n máy ch ủ đư ợ c g ử i dư ớ i d ạ ng tín hi ệ u d ữ li ệ u (như XML, JSON ho ặ c HTML) và đư ợ c x ử lý b ở i JavaScript đ ể c ậ p nh ậ t ph ầ n n ộ i dung c ủ a trang mà không c ầ n ph ả i t ả i l ạ i Thư vi ệ n AJAX ph ổ bi ế n nh ấ t hi ệ n nay là jQuery AJAX, cung c ấ p các phương th ứ c đ ể th ự c hi ệ n các yêu c ầ u AJAX và x ử lý các k ế t qu ả tr ả v ề m ộ t cách đơn gi ả n Các thư vi ệ n khác như Axios, Fetch API và XMLHttpRequest cũng là các công c ụ đư ợ c s ử d ụ ng đ ể th ự c hi ệ n AJAX trong JavaScript 1 3 T ổ ng quan v ề MySQL 1 3 1 Gi ớ i thi ệ u v ề MySQL MySQL là hệ quản trị cơ sở dữ liệu mã ngu ồ n m ở miễn phí nằm trong nhóm LAMP (Apache - MySQL - PHP) Microsoft (Windows, IIS, SQL Server, ASP/ASP NET), vì MySQL được tích hợp sử dụng chung với apache, PHP nên nó p hổ biến nhất thế giới Vì MySQL ổn định và dễ sử dụng rất mạnh và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở Nhưng Mysql không bao quát toàn bộ những câu truy vấn cao cấp như SQL Server Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng có truy cập CSDL trên internet và có thể giải quyết hầu hết các bài toán trong PHP, P erl MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang ch ủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows , Linux , MacOSX , Unix , FreeBSD , NetBSD , Novell NetWare , SGI Ir ix , Solaris , SunOS MySQL là một trong những ví dụ rất cơ bản về Hệ Quả n trị Cơ sở dữ liệu quan hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) 1 3 2 Đ ặ c đi ể m MySQL là một phần mềm quản trị CSDL dạng server - based (gần tương đương với SQL Server của Microsoft) MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (User Name) và mật khẩu tương ứng để truy xuất đến CSDL MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL server hoạt động trong các hệ thống nhúng hoặc client/server 1 3 3 T ạ o cơ s ở d ữ li ệ u và ngư ờ i dùng Kết nối và tạo CSDL Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách: - Kết nối và tạo CSDL bằng Command line - Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL A dministrator hoặc phpmyadmin Quản lý người dùng - Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rỗng - Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau Cấp quyền cho người dùng - Với quyề n root ta có thể thực hiện mọi thao tác trên CSDL: select, update, insert, delete, - Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó 1 3 4 Các ki ể u d ữ li ệ u trong MySQL Kết nối và tạo CSDL Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách: - Kết nối và tạo CSDL bằng Command line - Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL Administrator hoặc phpmyadmin Quản lý người dùng - Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rông - Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau Cấp quyền cho người dùng - Với quyền root ta có thể thực hiện mọi thao tác trên CSDL : select, update, insert, delete, - Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó 1 3 5 Các câu l ệ nh SQL a Creat Table: Dùng đ ể t ạ o b ả ng trong CSDL Cú pháp: CREATE TABLE ten_bang(cot1 kieu_du_lieu,cot2 kieu_du_lieu,cot3 kieu_du_lieu, cotN kieu_du_lieu,PRIMARY KEY( mot hoac nhieu cot )); b Alter Table: S ử a đ ổ i c ấ u trúc 1 b ả ng chú ý có th ể gây xung đ ộ t gi ữ a thông tin đang có trong b ả ng và thu ộ c tính m ớ i s ử a l ạ i Cú pháp: ALTER TABLE ten_bang {ADD|DROP|MODIFY} ten_cot {kieu_du_lieu}; c Select: Dùng đ ể ch ọ n d ữ li ệ u t ừ cơ s ở d ữ li ệ u Cú pháp: o Cơ b ả n: `SELECT cot1, cot2 cotN FROM ten_bang;` o Lo ạ i b ỏ giá tr ị trùng l ặ p: `SELECT DISTINCT cot1, cot2 cotN FROM ten_bang;` o K ế t h ợ p m ệ nh đ ề đi ề u ki ệ n WHERE: `SELECT cot1, cot2 cotN FROM ten_bang WHERE DIEU_KIEN;` o K ế t h ợ p m ệ nh đ ề IN: `SELECT cot1, cot2 cotN FROM ten_bang WHERE ten_cot IN (gtri - 1, gtri - 2, gtri - N);` o K ế t h ợ p m ệ nh đ ề BETWEEN: `SELECT cot1, cot2 cotN FROM ten_bang WHERE ten_cot BETWEEN gtri - 1 AND gtri - 2;` o K ế t h ợ p m ệ nh đ ề LIKE: `SELECT cot1, cot2 cotN FROM ten_bang WHERE ten_cot LIKE { PATTERN };` o K ế t h ợ p m ệ nh đ ề ORDER BY: SELECT cot1, cot2 cotN FROM ten_bang WHERE DIEU_KIEN ORDER BY ten_cot {A SC|DESC};` o K ế t h ợ p m ệ nh đ ề GROUP BY: `SELECT SUM(ten_cot) FROM ten_bang WHERE DIEU_KIEN GROUP BY ten_cot;` o K ế t h ợ p m ệ nh đ ề COUNT: `SELECT COUNT(ten_cot) FROM ten_bang WHERE DIEU_KIEN;` o K ế t h ợ p m ệ nh đ ề Having: `SELECT SUM(ten_cot) FROM ten_bang WHERE DIEU_KIEN GROUP BY ten_cot HAVING (dieu kien la ham so hoc);` d Insert: Chèn thêm 1 b ả n ghi vào trong b ả ng Cú pháp: `INSERT INTO ten_bang( cot1, cot2 cotN) VALUES ( giatri1, giatri2 giatriN);` e Update: S ử a thông tin 1 b ả n ghi đã có trong b ả ng Cú pháp: `UPDATE ten_bang SET cot1 = giatri1, cot2 = giatri2 cotN=giatriN [ WHERE DIEU_KIEN ];` f Delete: Xóa 1 b ả n ghi đã có trong b ả ng: Cú pháp: DELETE FROM ten_bang WHERE {DIEU_KIEN}; g Drop Table: Xóa 1 b ả ng trong CSDL Cú pháp: ` DROP TABLE ten_bang` 1 3 6 Các hàm trong MySQL Dưới đây liệt kê tất cả các hàm MySQL quan trọng Mỗi hàm đều được giải thích chi tiết và có ví dụ phù hợp Hàm COUNT trong MySQL : Hàm tập hợp COUNT trong MySQL được sử dụng để đếm số hàng trong một bảng dữ liệu Hàm MAX trong MySQL : Hàm tập hợp MAX trong MySQL cho phép chúng ta lựa chọn giá trị lớn nhất (tối đa) trong một cột cụ thể Hàm MIN trong MySQL : Hàm tập hợp MIN trong MySQL cho phép chúng ta lựa chọn giá trị nhỏ nhất (tối thiểu) trong một cột cụ thể Hàm AVG trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể Hàm SUM trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể Hàm SQRT trong MySQL : Được sử dụng để tính căn bậc hai của một số đã cho Hàm RAND trong MySQL : Được sử dụng để tạo một số ngẫu nhiên bởi sử dụng lệnh trong MySQL Hàm CONCAT trong MySQL : Được sử dụng để nối bất kỳ chuỗi nào trong bất kỳ lệnh MySQL n ào Hàm x ử lý DATE và Time trong MySQL : Danh sách đầy đủ các hàm liên quan tới Date và Time trong MySQL Hàm x ử lý s ố trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với số trong MySQL Hàm x ử lý chu ỗ i trong MySQL : Danh sách đầy đủ các hàm cần thiết để thao tác với chuỗi trong MySQL 1 3 7 T ạ i sao s ử d ụ ng MySQL Server - Kh ả năng m ở r ộ ng và tính linh ho ạ t s Hình 1 1 : Mô hình khả năng MySQL MySQL cho phép ngư ờ i dùng m ở r ộ ng và có th ể tùy ch ỉ nh đ ể thay đ ổ i linh ho ạ t c ấ u trúc bên trong Máy chủ cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt, nó có sức chứa để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho dữ liệu khổng lồ lên đến hàng terabytes thông tin Đặc tính đáng chú ý của MySQL là sự linh hoạt về flatform với tất cả các phi ên bản của Windows, Unix đang được hỗ trợ Và đương nhiên, tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server - Hi ệ u năng cao Với kiến trúc storage - engine cho phép các chuyên gia cơ sở dữ liệu cấu h ình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt Dù ứng dụng là website dung lượng lớn phục vụ hàng triệu người/ngày hay hệ thống xử lý giao dịch tốc độ cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống Với nhữ ng tiện ích tải tốc độ cao, cơ chế xử lý nâng cao khác và đặc biệt bộ nhớ caches, MySQL đưa ra tất cả nhưng tính năng cần có cho hệ thống doanh nghiệp khó tính hiện nay - Tính s ẵ n sàng cao MySQL đảm bảo sự tin cậy và có thể sử dụng ngay MySQL đưa ra nhiều tùy chọn có thể sử dụng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 có thể đưa ra những điều hướng có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL - H ỗ tr ợ giao d ị ch m ạ nh m ẽ MySQL đưa ra một trong số những engine giao dịc h cơ sở dữ liệu tốt nhất trên thị trường Các đặc trưng bao gồm, khóa mức dòng không hạn chế, hỗ trợ giao d ị ch ACID hoàn thiện, khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng (multi - version) mà người đọc không bao giờ cản trở cho người viết và ngược lại Dữ liệu được đảm bảo trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, khi phát hiện có lỗi khóa chết ngay tức thì - Đi ể m m ạ nh c ủ a Web và Data Warehouse My SQL v ớ i đi ể m m ạ nh là cho phép x ử lý ở t ố c đ ộ cao, h ỗ tr ợ các tính năng chuyên d ụ ng cho website MySQL là nơi cho các website trao đổi thường xuyên bởi nó có engine xử lý tốc độ cao, khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh các chức năng chuyên dụng c ủa web Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Những tính năng khác như chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B đã được gói lại để giảm các yêu cầu lưu trữ tới 80% Vì thế, MySQL là sự chọn lựa tốt nhất cho cả ứng dụng web và các ứng dụng của doanh nghiệp - B ả o v ệ d ữ li ệ u m ạ nh m ẽ Việc quan trọng của các doanh nghiệp là bảo mật dữ liệu, MySQL tích hợp các tính năng bảo mật an toàn tuyệt đối Với việc xác nhận truy cập cơ sở dữ liệu, MySQL trang bị các kỹ thuật mạnh, chỉ có người sử dụng đã được xác nhận mới truy cập được vào cơ sở dữ liệu SSH và SSL cũng được hỗ trợ để đảm bảo kết nối an toàn và bảo mật Tiện ích backup và recovery cung cấp bởi MySQL và các hãng ph ần mềm thứ 3 cho phép backup logic và vật lý cũng như recovery toàn bộ hoặc tại một thời điểm - Phát tri ể n ứ ng d ụ ng toàn di ệ n MySQL trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay một phần là do cung cấp hỗ trợ hỗn hợp cho bất cứ sự phát triển ứn g dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các trigger, stored procedure, cursor, view, ANSI - standard SQL,… MySQL cũng cung cấp các bộ kết nối như: JDBC, ODBC ,… để tất cả các form của ứng dụng sử dụng MySQL như một erver quản lí dữ liệu được đề xuất hàng đầu - Qu ả n lý d ễ dàng Cài đặt MySQL khá nhanh và trung bình từ khi download phần mềm tới khi cài đặt thành công chỉ mất chưa đầy 15 phút Cho dù flatform là Linux, Microsoft Windows , Macintosh hoặc Unix thì quá trình cũng diễn ra nhanh chóng Khi đã cài đặt, tính năng quản lý như tự khởi động lại, tự động mở rộng không gian và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu bắt đầu làm việc MySQL cung cấp toàn bộ công cụ quả n lý đồ họa cho phép một DBA quản lý, sửa chữa và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn - Mã ngu ồ n m ở t ự do và h ỗ tr ợ 24/7 Nhiều doanh nghiệp còn băn khoăn trong việc giao toàn bộ cho phần mềm mã nguồn mở bởi khó có thể tìm được hỗ trợ hay bảo mật an toàn phục vụ chuyên nghiệp Với MySQL mọi sự cam kết đều rõ ràng, MySQL cam kết bồi thường khi gặp sự cố - Chi phí s ở h ữ u th ấ p nh ấ t Sử dụng MySQL cho các dự án, doanh nghiệp đều nhận thấy sự tiết kiệm chi phí đáng kể Người dùng MySQL cũ ng không mất nhiều thời gian để s ử a chữa hoặc vấn đề thời gian chết 1 4 Công c ụ s ử d ụ ng 1 4 1 Sublime Text Sublime Text là trình so ạ n th ả o và so ạ n th ả o code mi ễ n phí đư ợ c r ấ t nhi ề u l ậ p trình viên s ử d ụ ng hi ệ n nay Ph ầ n m ề m l ậ p trình Sublime Text cung c ấ p các plug - in mi ễ n phí và h ỗ tr ợ trên nhi ề u n ề n t ả ng khác nhau có th ể k ể đ ế n như Windows, Mac và Linux đ ể mang đ ế n cho ngư ờ i dùng s ự ti ệ n l ợ i, tho ả i mái khi s ử d ụ ng Nh ờ các tính năng ti ệ n l ợ i do Sublime Text cung c ấ p, các l ậ p trình viên có th ể s ử d ụ ng ph ầ n m ề m này đ ể d ễ dàng ch ỉ nh s ử a các local file ho ặ c m ộ t codebase Đ ặ c bi ệ t, công c ụ này không t ố n m ộ t kho ả n chi phí nào khi s ử d ụ ng nhưng cũng đ ầ y đ ủ các tính năng h ỗ tr ợ c ầ n thi ế t 1 4 2 Sublime text có ưu đi ể m gì? Kh ả năng tùy bi ế n Kh ả năng tùy bi ế n là m ộ t trong nh ữ ng ưu đi ể m n ổ i b ậ t đ ầ u tiên khi nh ắ c đ ế n trình so ạ n th ả o Sublime text khi l ậ p trình viên thi ế t k ế website có th ể hoàn toàn tùy ch ỉ nh như ý mu ố n thông qua các plugin L ậ p trình viên đư ợ c cho phép cài đ ặ t, nâng cao, ho ặ c g ỡ b ỏ các plugin tr ự c ti ế p t ừ bên trong trình ch ỉ nh s ử a mà không c ầ n ph ả i thao tác l ạ i t ừ đ ầ u (kh ở i đ ộ ng) Github, BitBucket và PackageControl io là c ộ ng đ ồ ng mà ngư ờ i dùng có th ể t ả i xu ố ng các gói c ủ a Sublime te xt r ồ i cho vào kho lưu tr ữ riêng Nh ữ ng c ộ ng đ ồ ng trên đ ề u s ử d ụ ng trình so ạ n th ả o này v ớ i vô s ố các plugin giúp tăng cư ờ ng kh ả năng c ủ a nó T ừ đó, có th ể bi ế n công c ụ này t ừ m ộ t trình so ạ n th ả o mã ngu ồ n đơn gi ả n thành m ộ t IDE hoàn ch ỉ nh và th ỏ a s ứ c xây d ự ng môi trư ờ ng ngư ờ i dùng mu ố n phát tri ể n trên đây Tìm ki ế m m ạ nh m ẽ Sublime text có ch ứ c năng Goto và Command Palette , nó có th ể tìm ki ế m các bi ể u th ứ c thông thư ờ ng, phân bi ệ t ch ữ thư ờ ng v ớ i ch ữ hoa ho ặ c tìm toàn b ộ t ừ khóa Không nh ữ ng th ế , nó còn cho phép ngư ờ i dùng các k ế t qu ả tìm ki ế m vào b ộ đ ệ m đ ể có th ể s ử d ụ ng l ạ i cho lư ợ t search ti ế p theo Nh ờ vào ch ứ c năng tìm ki ế m m ạ nh m ẽ trên, Sublime text giúp các l ậ p trình viên c ả m th ấ y đơn gi ả n và nhanh chóng hơn khi mu ố n tìm b ấ t c ứ th ứ gì Màn hình và b ả ng đi ề u khi ể n Sublime text còn có kh ả năng hi ể n th ị nhi ề u t ậ p tin văn b ả n trên các cách khác nhau Ngư ờ i dùng có th ể có m ộ t s ố t ậ p tin đang m ở s ẵ n đư ợ c s ắ p x ế p trong các tab Đ ấ y chính là cách mà l ậ p trình viên có th ể di chuy ể n và s ắ p x ế p l ạ i chúng theo ý mu ố n Cách này đư ợ c xem là khá tiêu chu ẩ n, tuy nhiên v ẫ n còn nhi ề u cách khác Ngoài ra, công c ụ này còn cho ngư ờ i dùng ch ỉ nh s ử a các b ố c ụ c khác như hàng và c ộ t, ch ỉ nh s ử a toàn màn hình (Distraction Free) N ế u b ạ n đã s ử d ụ ng ph ầ n m ề m WordPress thì Sublime te xt s ẽ t ạ o c ả m giác thân thu ộ c, tho ả i mái và d ễ hi ể u Nhanh, nh ẹ và ổ n đ ị nh Trình so ạ n th ả o mã ngu ồ n Sublime text đư ợ c xây d ự ng trên Python và C/C++ nên trình ch ỉ nh s ử a r ấ t nh ẹ Nó r ấ t nhanh, khi m ở Sublime text t ừ Menu Start c ủ a Windows ngay l ậ p t ứ c nó s ẽ t ả i xu ố ng và ch ỉ m ấ t vài giây đ ể nó xu ấ t hi ệ n trên màn hình Hơn n ữ a, công c ụ đư ợ c đánh giá là ổ n đ ị nh nh ấ t so v ớ i các trình so ạ n th ả o mã khác Tình tr ạ ng treo và crash r ấ t hi ế m khi x ả y ra Minimap Sublime text giúp b ạ n n ắ m b ắ t đư ợ c đ ộ l ớ n c ủ a file thông q ua ch ứ c năng minimap - m ộ t vùng nh ỏ hi ể n th ị t ổ ng quan v ề n ộ i dung ở ngay góc bên ph ả i màn hình Ph ầ n m ề m còn cho phép ngư ờ i dùng nh ấ p chu ộ t ph ả i vào minimap đ ể tr ự c ti ế p đi ề u hư ớ ng đ ế n m ộ t đ ị a đi ể m mà mình mu ố n Ch ứ c năng này tuy nh ỏ nhưng nó th ự c s ự h ữ u ích đ ố i v ớ i các file l ớ n T ự đ ộ ng hoàn thành, mã g ấ p và đánh d ấ u cú pháp Sublime text có kh ả năng t ự đ ộ ng hoàn thành mã, bao g ồ m các bi ế n do ngư ờ i dùng t ạ o ra và “mã g ấ p” (làm g ọ n các đo ạ n mã l ớ n) Ngoài ra, trình ch ỉ nh s ử a mã này còn có th ể c ả nh báo các l ỗ i phân tích cú pháp trong th ờ i gian th ự c, nó h ỗ tr ợ đ ế n vài ch ụ c ngôn ng ữ l ậ p trình khác nhau cũng như s ẽ tô màu cho các ph ầ n t ử mã m ộ t cách thích h ợ p 1 4 3 Các tính năng c ủ a sublime text đ ố i v ớ i l ậ p trình viên Dư ớ i đây là m ộ t s ố tính năng chính giúp các l ậ p trình viên l ự a ch ọ n Sublime text đ ể làm vi ệ c Đa n ề n t ả ng Trình so ạ n th ả o mã Sublime text đư ợ c cài s ẵ n trên các n ề n t ả ng Mac, Windows và Linux Vì th ế , ngư ờ i dùng d ễ dàng s ử d ụ ng trên m ọ i máy tính Nó có s ử d ụ ng b ộ công c ụ UI tùy ch ỉ nh nên giao di ệ n đư ợ c t ố i ưu hóa r ấ t t ố t c ả v ề m ặ t t ố c đ ộ l ẫ n th ẩ m m ỹ Không nh ữ ng th ế , nó còn t ậ n d ụ ng m ọ i ch ứ c năng g ố c trên m ỗ i n ề n t ả ng Hi ệ u su ấ t Sublime text luôn đ ặ t ưu tiên hi ệ u su ấ t làm vi ệ c lên đ ầ u d ự a trên công c ụ UI đa n ề n t ả ng m ạ nh m ẽ và d ễ dàng tùy ch ỉ nh và các công c ụ đ ộ c quy ề n mà ít ai sánh b ằ ng Nó xây d ự ng t ừ các thành ph ầ n tùy ch ỉ nh và có kh ả năng thích ứ ng r ấ t t ố t Chuy ể n đ ổ i nhanh chóng Các project c ủ a Sublime text ch ứ a đư ợ c toàn b ộ n ộ i dung c ủ a không gian làm vi ệ c, bao g ồ m c ả file đang ch ỉ nh s ử a và file c hưa đư ợ c lưu Ngư ờ i dùng có th ể chuy ể n đ ổ i các project này ngay l ậ p t ứ c, t ấ t c ả thay đ ổ i đ ề u s ẽ đư ợ c khôi ph ụ c l ạ i sau l ầ n m ở project ti ế p theo Split Editing Tính năng này s ẽ d ự a vào đ ộ r ộ ng c ủ a màn hình mà ngư ờ i dùng đang s ử d ụ ng B ạ n có th ể ch ỉ nh s ử a n hi ề u hàng, nhi ề u c ộ t như ý mu ố n hay ch ỉ nh s ử a các file c ạ nh nhau ho ặ c gi ữ a hai v ị trí trong cùng m ộ t file Tu ỳ ch ỉ nh m ọ i th ứ M ọ i th ứ trong Sublime text đ ề u có th ể tùy ch ỉ nh v ớ i các t ệ p JSON d ễ dàng S ử d ụ ng trình so ạ n th ả o này giúp ngư ờ i dùng linh ho ạ t tro ng vi ệ c cài đ ặ t có th ể ch ỉ đ ị nh trên t ừ ng lo ạ i t ệ p, t ừ ng project Các tính năng c ủ a sublime text đ ố i v ớ i l ậ p trình viên H ệ sinh thái gói và API m ạ nh m ẽ Tính năng thu hút ở Sublime text là s ở h ữ u API Python m ạ nh m ẽ , cho phép ngư ờ i dùng tích h ợ p tăng cư ờ ng các plugin Bên c ạ nh đó, ngư ờ i dùng có th ể truy c ậ p vào hàng ngàn gói đư ợ c xây d ự ng b ở i c ộ ng đ ồ ng m ộ t cách đơn gi ả n Command Palette Ch ỉ m ộ t vài nh ấ n phím, ngư ờ i dùng có th ể tìm ki ế m đư ợ c nh ữ ng gì mình mu ố n mà không ph ả i đi ề u hư ớ ng qua các menu hay g hi nh ớ các phím t ắ t ph ứ c t ạ p Multiple Selections V ớ i tính năng này cho phép ngư ờ i dùng thay đ ổ i nhi ề u dòng c ủ a m ộ t lúc, đ ổ i tên d ễ dàng cũng như thao tác các file nhanh chóng hơn bao gi ờ h ế t Goto Definition Ngư ờ i dùng s ử d ụ ng đ ị nh nghĩa cú pháp đ ể Sublime text t ự đ ộ ng t ạ o ra m ộ t m ụ c toàn d ự án c ủ a m ọ i hàm, phương th ứ c và m ọ i l ớ p Goto Anything Tính năng giúp đi ề u hư ớ ng nhanh g ọ n đ ế n các file, bi ể u tư ợ ng, dòng và t ừ 1 5 T ổ ng quan v ề Xampp Xampp là một công cụ tích hợp đầy đủ các thành bao gồm Apache, Mysql, PHP, Perl Giúp chúng ta tạo ra môi trường web server trên máy tính, để có thể chạy được kịch bản PHP 1 Apache: Là một chương trình máy chủ, dùng để giao tiếp với các giao thức HTTP Apache chạy tốt trên mọi hệ điều hành 2 Mysql: Là hệ quản trị cơ sở dữ liệu, được dùng để lưu trữ thông tin của một website Mỗi website có thể sử dụng một hoặc nhiều cơ sở dữ liệu 3 PHP: Là ngôn ngữ kịch bản trên phía Server, dùng để xử lý các thao tác của người dùng Và làm việc trực tiếp với cơ sở dữ liệu (Datab ase) 4 Perl: Là một tầng cao hơn, một ngôn ngữ lập trình năng động hơn Sử dụng rộng rãi trong lập trình mạng và quản trị hệ thống Ít phổ biến cho mục đích phát triển web, Perl thích hợp với rất nhiều ứng dụng Xampp có hỗ trợ hầu hết các hệ điều hành nh ư window, linux, mac Sau khi đã download được Xampp về máy, chúng ta tiến hành cài đặt như sau Màn hình mới vào cài đặt - Nhấn Next để tiếp tục việc cài đặt - Nhấn Next để tiếp tục cài đặt - Ở đây, nên chọn ổ đĩa mà không phải ổ C Để tránh việc cài win hoặc ghost máy bị mất dữ liệu Nhấn Next để tiếp tục - Nhấn Next để tiếp tục Quá trình cài đặt diễn ra như hình bên dưới - Tiếp theo ta được màn hình như bên dưới - Nhấn Finish để hoàn thành việc cài đặt CHƯƠNG 2: PHÂN TÍCH VÀ THI Ế T K Ế WEBSITE 2 1 Mô t ả bài toán Website bán hàng máy ả nh là m ộ t trang web cung c ấ p các lo ạ i máy ả nh k ỹ thu ậ t s ố , ố ng kính, ph ụ ki ệ n và thi ế t b ị khác liên quan đ ế n nhi ế p ả nh Trang web đư ợ c thi ế t k ế hi ệ n đ ạ i v ớ i tông màu tr ắ ng và đen B ố c ụ c trang web thân thi ệ n v ớ i ngư ờ i dùng đ ể các khách hàng có th ể tìm ki ế m và mua s ả n ph ẩ m m ộ t cách d ễ dàng Trang ch ủ hi ể n th ị các s ả n ph ẩ m máy ả nh m ớ i nh ấ t c ủ a các thương hi ệ u n ổ i ti ế ng, giúp ngư ờ i dùng có th ể ti ế p c ậ n v ớ i nh ữ ng s ả n ph ẩ m cao c ấ p nh ấ t Trên trang ch ủ , có th ể tim ki ế m s ả n ph ẩ m t ừ khóa ho ặ c theo danh m ụ c, và s ử d ụ ng b ộ l ọ c đ ể giúp ngư ờ i dùng tìm ki ế m s ả n ph ẩ m m ộ t cách d ễ dàng hơn Trang web cung c ấ p nhi ề u tính năng h ấ p d ẫ n như cho phép ngư ờ i dùng t ạ o tài kho ả n, lưu tr ữ thông tin s ả n ph ẩ m yêu thích, gi ỏ hàng, đ ặ t hàng và thanh toá n tr ự c tuy ế n Ngoài ra, trang web cũng có tính năng h ỗ tr ợ khách hàng qua các kênh liên l ạ c như email, đi ệ n tho ạ i, chat tr ự c tuy ế n đ ể gi ả i đáp các th ắ c m ắ c giúp khách hàng c ả m th ấ y hài lòng và tin tư ở ng v ớ i ch ấ t lư ợ ng d ị ch v ụ c ủ a website bán hàng máy ả nh 2 2 Các yêu c ầ u phi ch ứ c năng B ả ng 2 1 Các yêu c ầ u phi ch ứ c năng c ủ a ứ ng d ụ ng Mục Tên yêu cầu Mô tả yêu cầu 1 Giao diện Giao diện hệ thống phải dễ sử dụng, trực quan, thân thiện với mọi người dùng 2 Tốc độ xử lý Hệ thống phải xử lý nhanh chóng và chính xác 3 Bảo mật Tính bảo mật và độ an toàn cao 4 Tương thích Tương thích với đa phần các trình duyệt web hiện tại Tương thích hầu hết các thiết bị 2 3 Phân tích h ệ th ố ng 2 3 1 Xác đ ị nh Actor Admin: ngư ờ i th ự c hi ệ n các ch ứ c năng qu ả n tr ị h ệ th ố ng, tài kho ả n , khách hàng, qu ả n lý bài vi ế t , qu ả n lý giao di ệ n Đ ể th ự c hi ệ n các ch ứ c năng qu ả n tr ị trong h ệ th ố ng tác nhân này b ắ t bu ộ c ph ả i th ự c hi ệ n đăng nh ậ p K hách hàng : có th ể th ự c hi ệ n các ch ứ c năng như đăng ký tài kho ả n, tìm ki ế m s ả n ph ẩ m, xem tin t ứ c, đ ặ t hàn g, xem gi ỏ hàng, ý ki ế n bình lu ậ n 2 4 Các ch ứ c năng c ủ a h ệ th ố ng 2 4 1 Ch ứ c năng v ề phía ngư ờ i quarg tr ị Ch ứ c năng Admin B ả ng 2 2: B ả ng ch ứ c năng c ủ a Admin Mục Tên chức năng Mô tả 1 Đăng nhập Thực hiện đăng nhập vào hệ thống, nhập vào user và password Kiểm tra hợp lệ trùng với dữ liệu có sẵn thì hệ thống sẽ cho phép đăng nhập để thực hiện các chức năng trong hệ thống 2 Quản lý tin tức Quản lý tin tức đưa lên website giúp cho khách hàng có thêm kiến thức, thông tin liên quan đến lĩnh vực mỹ phẩm làm đẹp 3 Quản lý giao diện Quản lý giao diện là thêm, sửa, xóa bảo trì giao diện 4 Quản lý tài khoản Quản lý thông tin tài khoản đăng nhập của người dùng khi muốn đăng nhập để mua hàng 5 Quản trị hệ thống Quản lý toàn hộ hệ thống, có quyền thay đổi các thông tin trong hệ thống 6 Quản lý sản phẩm Quản lý, lưu trữ thông tin về sản phẩm như mã sản phẩm, tên sản phẩm… 7 Quản lý danh mục sản phẩm Quản lý thông tin về các danh mục sản phẩm Admin Khach hang 8 Quản lý đặt hàng Quản lý thông tin về các đơn đặt hàng như: tên đăng nhập, địa chỉ người nhận, số điện thoại, hình thức thanh toán, tổng tiền… 9 Quản lý chi tiết đặt hàng Quản lý thông tin về đặt hàng gồm: mã chi tiết đặt hàng, mã đặt hàng, mã sản phẩm, số lượng, thành tiền 10 Quản lý khách hàng Quản lý hoạt động mua bán của khachs hàng, lưu lại thông tin về khách hàng như tên khách hàng, địa chỉ, mã khách hàng, số điện thoại, email 11 Quản lý hóa đơn Quản lý hóa đơn khi khách hàng mua hàng có các thông tin như: Mã hóa đơn, mã khách hàng, địa chỉ người nhận, số diện thoại, tổng tiên, hình thức thanh toán 12 Quản lý chi tiết hóa đơn Quản lý chi tiết hóa đơn của khách hàng có những thông tin như: mã chi tiết hóa đơn, mã hóa đơn, mã sản phẩm, số lượng, thành tiền 13 Giỏ hàng Giỏ hàng là để lưu thông tin mà khách hàng đã chọn có những trường như: mã giỏ hàng, mã sản phẩm, mã giao dịch, ngày tạo 14 Xem thông tin các đơn hàng Kiểm tra các đơn hàng sản phẩm, các sản phẩm cần giao để tiến hành lập đơn và giao hàng 15 Xem thông tin liên hệ, các thắc mắc của khách hàng Quản lý kiểm tra cá liên hệ của khách hàng, hỗ trợ khách hàng khi cần thiết 16 Quản lý tin tức Tiến hành cập nhật tin tức, bài viết mới, giới thiệu sản phẩm mới cho website 2 4 2 Ch ứ c năng v ề phía ngư ờ i dùng Ch ứ c năng c ủ a khách hàng B ả ng 2 3 B ả ng ch ứ c năng c ủ a ngư ờ i dung Mục Tên chức năng Mô tả 1 Tạo một tài khoản mới /Đăng ký Khách hàng có thể thực hiện thao tác đăng ký để trở thành nhân viên thuận tiện cho việc mua sản phẩm và hưởng những khuyến mại của công ty 2 Đăng nhập Thực hiện đăng nhập vào hệ thông, bắt buộc phải nhập user và password Kiểm tra hợp lệ trùng với dữ liệu có sẵn thì hệ thống sẽ cho phép đăng nhập 3 Tìm kiếm thông tin Tìm kiếm, nhanh về thông tin sản phẩm, dựa vào các tiêu chí tìm kiếm của website như tìm theo tên của sản phẩm… 4 Đặt hàng Khách hàng có thể thực hiện chức năng này để đặt mau hàng, nhằm giảm thiểu thời gian và chi phí cho khách hàng 5 Giỏ hàng Sau khi đăng nhập và chọn mua sản phẩm, giỏ hàng là nơi chứa thông tin về sản phẩm mà khách hàng đã chọn mua như số lượng sản phẩm, tên sản phẩm và giá tiền sản phẩm đó 6 Thanh toán Sau khi chọn mua sản phẩm , người dùng tiến hành gửi thông tin, chọn hình thức thanh toán, hình thức vận chuyển tiến hành đặt hàng và lưu lại hóa đơn 7 Liên hệ Khi khách hàng có thắc mắc về giá sản phẩm, thời gian vận chuyển có thể liên hệ với người quản trị website qua phần liên hệ 8 Ý kiến bình luận Khách hàng có thể đăng những ý kiến bình luận của mình về sản phẩm 2 5 M ô hình t ổ ng quan c ủ a h ệ th ố ng 2 5 1 Mô hình h ệ th ố ng c ủ a admin Admin Đăng nh ậ p Qu ả ng lý s ả n ph ẩ m Xem đơn hàng Thêm s ả n ph ẩ m Duy ệ t đơn hàng Th ố ng kê s ả n ph ẩ m Xóa s ả n ph ẩ m S ử a s ả n ph ẩ m Thao tác đ ổ i v ớ i s ả n ph ẩ m Qu ả n lý đơn hàng Qu ả n lý tài kho ả n 2 5 2 Mô hình h ệ th ố ng c ủ a khách hàng 2 6 Thi ế t k ế h ệ th ố ng 2 6 1 Bi ể u đ ồ use case t ổ ng quát Admin Thanh toan Quan ly gio hang Dat hang / mua hang Dang ky Khach hang Quan ly san pham Dang nhap Quan ly danh muc Quan ly don hang Quan ly thanh vien Thong ke Tim kiem san pham Quan ly tin tuc Quan ly cac lien he Khách hàng Đăng ký, Đăng nh ậ p tài kho ả n nh ậ p Xem thong tin s ả n ph ẩ m Xác nh ậ n đ ặ t hàng Giá s ả n ph ẩ m Các thong tin khác Hàng hóa Ch ọ n hang và them vào gi ỏ hàng Thanh toán Hình 2 1: Bi ể u đ ồ Use case t ổ ng quát D ự a vào mô hình Use case t ổ ng quát , ta xác đ ị nh Use Case chính có trong h ệ th ố ng, g ồ m các Use Case sau: UC - Đăng nh ậ p UC – Đăng ký UC – Gi ỏ hàng UC – Tìm ki ế m s ả n ph ẩ m UC – Đ ặ t hàng UC - Thanh toán UC - Qu ả n lý danh m ụ c UC - Qu ả n lý s ả n ph ẩ m UC - Qu ả n lý đơn hàng UC - th ố ng kê UC - Qu ả n lý Thành viên UC - Qu ả n lý tin t ứ c UC - Qu ả n lý liên h ệ 2 6 2 Đ ặ c t ả các Use Case có trong h ệ th ố ng Use Case Đăng nh ậ p Tác nhân chính: Admin , khách hàng Đ ặ c t ả : use case cho đăng nh ậ p vào h ệ th ố ng Các bư ớ c th ự c hi ệ n: - B1: Chọn chức năng đăng nhập vào hệ thống - B2: Hệ thống hiển thị form đăng nhập và yêu cầu người dùng nhập Username và Password - B3: Người dùng nhập Usename và password sau đó nhấn đăng nhập - B4: Hệ thống kiểm tra thông tin nhân viên vừa nhập và xác nhận thông tin hợp lệ - B5 1: Hệ thống thông báo đăng nhập thành công - B5 2: Hệ thống sẽ báo lỗi nếu tài khoản không đúng và đăng nhập lại hoặc hủy đăng nhập - B6: Người dùng thoát khỏi chức năng đăng nhập Use case Đ ăng ký Tác nhân chính : khách hàng Đ ặ c t ả : Use case này cho phép ngư ờ i dùng đăng ký tài kho ả n m ớ i trên h ệ th ố ng Các bư ớ c th ự c hi ệ n: - B 1: Ngư ờ i dùng truy c ậ p trang đăng ký tài kho ả n trên giao di ệ n c ủ a h ệ th ố ng - B 2: Ngư ờ i dùng nh ậ p thông tin cá nhân c ủ a mình bao g ồ m tên đăng nh ậ p, m ậ t kh ẩ u, email và s ố đi ệ n tho ạ i - B 3: H ệ th ố ng ki ể m tra tính h ợ p l ệ c ủ a thông tin đăng ký c ủ a ngư ờ i dùng N ế u thông tin không đ ầ y đ ủ ho ặ c không đ ủ đi ề u ki ệ n, h ệ th ố ng s ẽ b ắ t ngư ờ i dùng nh ậ p l ạ i - B 4: Sau khi các thông tin đăng ký đư ợ c ki ể m tra và ch ấ p nh ậ n, h ệ th ố ng s ẽ lưu thông tin c ủ a ngư ờ i dùng vào cơ s ở d ữ li ệ u - B 5: Ngư ờ i dùng s ẽ nh ậ n đư ợ c thông báo đăng ký thành cô ng và đư ợ c đăng nh ậ p vào h ệ th ố ng - B 6: Use case k ế t thúc Use Case Thống kê Tác nhân chính: Admin Đặc tả: Báo cáo thống kê của tất cả các đơn hàng được đặt Các bư ớ c th ự c hi ệ n: - B1: Đăng nhập vào trang quản lý với quyền đã quy định - B2: Chọn ngày,tháng,năm bắt đầu và ngày,tháng,năm kết thúc để thống kê - B3: Hệ thống sẽ hiển thị đơn hàng trong khoảng thời gian được chọn nếu có và thông báo không có đơn hàng nếu trong khoảng thời gian đó không có đơn hàng nào được đặt Use Case Quản lý thành viên Tác nhân chí nh: Admin Đặc tả: Quản lý thành viên người dùng trong hệ thống, cũng như khách hàng đăng ký thành viên Các bư ớ c th ự c hi ệ n: - B1: Đăng nhập vào trang quản lý với quyền đã quy định - B2: Hiển thị danh sách tất cả người dùng - B3: Xem chi tiết thông tin người dùng - B4: Thêm mới người dùng: Thêm thông tin vào các trường yêu cầu, hệ thống kiểm tra thông tin dùng và kiểm tra thông tin như email, tên đăng nhập đã tồn tại hay chưa, nếu nhập đúng thì cho tạo tài khoản và ngược lại thì bao lõi Use Case Quản lý đơn hà ng Tác nhân chính: Admin Đ ặ c t ả : Use case này s ẽ mô t ả quá trình qu ả n lý các đơn hàng c ủ a khách hàng bao g ồ m xem đơn hàng, xác nh ậ n đơn hàng và xóa đơn hàng Đi ề u ki ệ n tiên quy ế t: Đã có tài kho ả n đăng nh ậ p vào h ệ th ố ng và quy ề n truy c ậ p qu ả n lý đơn hàng Các bước thực hiện: - B1: Nhân viên b ấ m vào ch ứ c năng qu ả n lý đơn hàng trên giao di ệ n - B2: Hệ thống hiển thị danh sách các đơn hàng đang được xử lý - B3: Nhân viên có th ể c ậ p nh ậ t thông tin đơn hàng như tình tr ạ ng đơn hàng, đ ị a ch ỉ giao hàng, s ả n ph ẩ m trong đ ơn hàng - B4: N ế u nhân viên mu ố n xóa đơn hàng, h ọ có th ể b ấ m nút xóa và xác nh ậ n xóa đơn hàng - B5: K ế t thúc k ị ch b ả n Use Case Quản lý sản phẩm Tác nhân chính: Admin Đặc tả : Use case này cho phép người dùng quản lý thông tin sản phẩm trong hệ thống Các bư ớ c th ự c hi ệ n: - B 1: Ngư ờ i dùng đăng nh ậ p vào h ệ th ố ng - B2: Ngư ờ i dùng ch ọ n ch ứ c năng qu ả n lý s ả n ph ẩ m trong giao di ệ n - B3: H ệ th ố ng hi ể n th ị danh sách s ả n ph ẩ m đã có trong h ệ th ố ng - B4: Ngư ờ i dùng có th ể thêm m ớ i, s ử a, xóa s ả n ph ẩ m - B5: N ế u ngư ờ i dùng ch ọ n thêm m ớ i s ả n ph ẩ m, h ệ th ố ng hi ể n th ị form nh ậ p thông tin s ả n ph ẩ m - B6: Ngư ờ i dùng nh ậ p thông tin s ả n ph ẩ m và b ấ m nút t ạ o m ớ i đ ể lưu thông tin s ả n ph ẩ m vào h ệ th ố ng - B7: N ế u ngư ờ i dùng ch ọ n s ử a s ả n ph ẩ m, h ệ th ố ng hi ể n th ị form ch ỉ nh s ử a thông tin s ả n ph ẩ m - B8: Ngư ờ i dùng s ử a thông tin s ả n ph ẩ m và b ấ m nút lưu đ ể c ậ p nh ậ t thông tin s ả n ph ẩ m vào h ệ th ố ng - B9: N ế u ngư ờ i dùng ch ọ n xóa s ả n ph ẩ m, h ệ th ố ng hi ể n th ị c ả nh báo xác nh ậ n xóa s ả n ph ẩ m - B10: Ngư ờ i dùng xác nh ậ n xóa s ả n ph ẩ m và h ệ th ố ng xóa s ả n ph ẩ m đó kh ỏ i h ệ th ố ng - B11: Ngư ờ i dùng có th ể tìm ki ế m s ả n ph ẩ m trong danh sách s ả n ph ẩ m - B12: Ngư ờ i dùng có th ể s ắ p x ế p danh sách s ả n ph ẩ m theo các tiêu chí như tên s ả n ph ẩ m, giá, ngày t ạ o - B13: Ngư ờ i dùng k ế t thúc qu ả n lý s ả n ph ẩ m và đăng xu ấ t kh ỏ i h ệ th ố ng Use c ase Quản lý danh mục sản phảm Tác nhân chính : Admin Đ ặ c t ả : Use case qu ả n lý danh m ụ c s ả n ph ẩ m cho phép ngư ờ i dùng thêm, s ử a và xóa danh m ụ c s ả n ph ẩ m Ngư ờ i dùng có th ể xem danh sách s ả n ph ẩ m thu ộ c m ộ t danh m ụ c c ụ th ể Các bư ớ c th ự c hi ệ n: - B 1 : Ngư ờ i dùng ch ọ n ch ứ c năng qu ả n lý danh m ụ c s ả n ph ẩ m trên giao di ệ n - B2: H ệ th ố ng hi ể n th ị danh sách các danh m ụ c s ả n ph ẩ m hi ệ n có, n ế u chưa có danh m ụ c nào thì h ệ th ố ng s ẽ hi ể n th ị m ộ t thông báo - B3: Ngư ờ i dùng có th ể thêm m ớ i ho ặ c ch ỉ nh s ử a các danh m ụ c s ả n ph ẩ m hi ệ n có b ằ ng cách click vào nút tương ứ ng và nh ậ p thông tin chi ti ế t cho m ỗ i danh m ụ c s ả n ph ẩ m (tên, mô t ả , hình ả nh ) - B4: Ngư ờ i dùng ch ọ n danh m ụ c s ả n ph ẩ m đ ể xem danh sách s ả n ph ẩ m thu ộ c danh m ụ c đó - B5: H ệ th ố ng hi ể n th ị danh sách s ả n ph ẩ m thu ộ c danh m ụ c đó, bao g ồ m các thông tin v ề s ả n ph ẩ m như tên, giá, m Trang 1PHẦN 1 MỞ ĐẦU
TRƯỜNG ĐẠI HỌC QUẢNG NAM
KHOA TOÁN - TIN
- -
BÁO CÁO KHÓA LUẬN TỐT NGHIỆP
Tên đề tài:
Sinh viên thực hiện: Thipphasone KHATTIYAONG
Lớp : DT19CTT01 Ngành: Công nghệ thông tin Khóa học: 2019 - 2023
Giáo viên hướng dẫn: ThS Trần Thị Diệu Hiền
Quảng Nam, tháng 03 năm 2022
Trang 2LỜI CẢM ƠN
Để hoàn thành bài báo cáo này, trước hết, em xin cảm ơn các thầy cô giáo khoa toán – tin Trường Đại học Quảng Nam, em đã nhận được rất nhiều sự quan tâm, giúp
đỡ của quý thầy cô cùng bạn bè
Em xin chân thành cảm ơn cô Trần Thị Diệu Hiền đã trang bị cho em những
kiến thức chuyên môn trong thời gian vừa qua, và giúp em hiểu rỏ hơn cái lĩnh vực đã nghiên cứu để hoàn thành đề tại được giao
Với điều kiện thời gian có hạn, kiến thức còn hạn chế, bài báo cáo này không thể tránh được những sai sót Em rất mong nhận được ý kiến đóng góp của các quý thầy cô
và nhà trường để em có thêm kinh nghiệm và bổ sung kiến thức bản thân, và tiếp tục phát triển đồ án của mình
Em xin chân thành cảm ơn!
Sinh viên thực hiện Thipphasone KHATTIYAVONG
Trang 3PHẦN 1 MỞ ĐẦU
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ, theo cả chiều rộng và sâu Máy tính điện tử không cogn là một thứ phương tiện quý hiếm mà đang càng ngày trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở nơi công cụ làm việc mà còn ngay cả trong gia đình
Đặc biệt, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các công ty, nó đóng vai trò hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ
Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mại điện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng đồng thời cho khách hàng thấy được sự khác biệt giữa các sản phẩm của nhà sản xuất (thương hiệu) khác nhau sẽ là cần thiết
Vậy phải quảng bá thế nào đó là xây dựng được một website cho cửa hàng quảng
bá tất cả các sản phẩm của mình bán Vì vậy, em đã thực hiện khóa luận đề tài “XÂY DỰNG WEBSITE BÁN HÀNG DIGITAL CAMERA” Người chủ cửa hàng đưa các sản phẩm lên website và quản lý website đó Khách hàng có thể mua hàng trên website
mà không cần đến cửa hàng
Với những tính năng cơ bản, website giúp gắn kết người mua và chủ cửa hàng dễ dàng và tiết kiệm thời gian cho khách hàng hơn việc phải đến trực tiếp cửa hàng để mua sản phẩm Nó còn giúp người chủ cửa hàng dễ dàng nắm bắt, quản lí sản phẩm của mình và truyền thông quảng cáo được rộng hơn
Với xu thế phát triển của xã hội hiện đại, khi mức sống của người dân ngày càng được nâng cao thì nhu cầu mua sắm của con người cũng được nâng lên một bậc
Trang 4Cùng với sự phát triển mạnh mẽ của mạng Internet và các phương thức thanh toán điện
tử, một xu hướng mới ra đời trong kinh doanh hàng hóa, đó chính là Thương mại điện
tử Việc mua sắm của khách hàng không chỉ còn bó hẹp trong các cửa hàng, siêu thị
mà có thể chỉ đơn giản là kết nối vào một website bán hàng trực tuyến Xu thế này đem lại sự tiện ích không nhỏ cho khách hàng và tiện kiệm lớn cho doanh nghiệp
Với nhận định như vậy, được sự hướng dẫn và giúp đỡ của cô giáo Trần Thị Diệu Hiền em đã lựa chọn đề tài “ Xây dựng website bán hàng DIGITAL CAMERA” để thực hiện làm khóa luận này
2 Mục tiêu của đề tài
- Xây dựng một website cung cấp cho khách hàng tất cả những thông tin chi tiết
về các sản phẩm trên trang web, thông tin liên hệ cũng như những sản phẩm mới nhất được cập nhật thường xuyên
- Khách hàng có thể đặt hàng ngay những sản phẩm mà khách hàng yêu thích
- Tạo ra sản phẩm thân thiện, đơn giản với giao diện tự nhiên, bắt mắt, dễ sử dụng cho tất cả mọi người
- Xây dựng một website giúp người quản trị quản lý thông tin hệ thống một cách
dễ dàng hơn, tiện lợi hơn
- Củng cố và bổ sung kiến thức các môn đã học Qua đó, rèn luyện kỹ năng làm việc độc lập
3 Đối tượng và phạm vi nghiên cứu
đã có nhưng chưa được tối ưu
4 Phương pháp nghiên cứu
- Tìm hiểu các website phổ biến đã có trên internet
- Khảo sát và thu thập thông tin về thị trưởng máy ảnh kỹ thuật số
- Tham khảo các mô hình kinh doanh trực tuyến
Trang 5- Phân tích thiết kế hệ thống thông tin, xây dựng nội dung quản trị Back-end và giao diện Front-end website
- Xây dựng một website thì việc lựa chọn ngôn ngữ và ứng dụng khi làm việc là điều rất quan trọng
- Đề tài sử dụng ngôn ngữ PHP làm ngôn ngữ lập trình để xây dựng website và một số thư viện hỗ trợ trong việc xây dựng website
5 Lịch sử nghiên cứu
Với vấn đề về PHP thì cũng đã được nhiều tác giả phân tích, nghiên cứu theo nhiều hướng khác nhau
6 Đóng góp của đề tài
- Tạo ra sản phẩm có hàm lượng khoa phục vụ cho việc kinh doanh trực tuyến
- Giúp ích trong việc truyền đạt thông tin tới người mua hàng, quảng bá hình ảnh của cửa hàng và giúp ích cho quá trình mua sản phẩm của cửa hàng thông qua internet
- Bổ sung tích luỹ kiến thức về thiết kế website và kỹ năng lập trình
7 Cấu trúc đề tài
PHẦN 1 MỞ ĐẦU
PHẦN 2 NỘI DUNG NGHIÊN CỨU
Chương 1: Cơ sở lý thuyết
Chương 2: Phân tích và thiết kế website
Chương 3: Thiết kế và cài đặt hệ thống
PHẦN 3 KẾT LUẬN
PHẦN 4 TÀI LIỆU THAM KHẢO
PHẦN 5 PHỤ LỤC
Trang 6PHẦN 2 NỘI DUNG NGHIÊN CỨU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Tìm hiểu về các ngôn ngữ lập trình
1.1.1 Ngôn ngữ HTML
Ngôn ngữ HTML (HyperText Markup Language – ngôn ngữ siêu văn bản) là một trong các loại ngôn ngữ được sử dụng trong lập trình web Khi truy cập một trang web cụ thể là click vào các đường link, bạn sẽ được dẫn tới nhiều trang các nhau và các trang này được gọi là một tài liệu HTML (tập tin HTML)
Một trang HTML như vậy được cấu thành bởi nhiều phần tử HTML nhỏ và được quy định bằng các thẻ tag Bạn có thể phân biệt một trang web được viết bằng ngôn ngữ HTML hay PHP thông qua đường link của nó Ở cuối các trang HTML thường hay có đuôi là HTML hoặc HTM
Vậy, đối với các website, ngôn ngữ HTML đóng vai trò như thế nào? HTML, theo đúng nghĩa của nó, là một loại ngôn ngữ đánh dấu siêu văn bản, thế nên các chức
Trang 7năng của nó cũng xoay quanh yếu tố này Cụ thể, HTML giúp cấu thành các cấu trúc
cơ bản trên một website (chia khung sườn, bố cục các thành phần trang web) và góp phần hỗ trợ khai báo các tập tin kĩ thuật số như video, nhạc, hình ảnh
Hình 1.2: Mô hình hoạt động JavaScript, CSS, HTML
Ưu điểm nổi trội nhất và cũng là thế mạnh của HTML là khả năng xây dựng cấu trúc và khiến trang web đi vào quy cũ một hệ thống hoàn chỉnh Nếu bạn mong muốn
sở hữu một website có cấu trúc tốt có mục đích sử dụng nhiều loại yếu tố trong văn bản, hãy hỏi HTML Nhiều ý kiến cho rằng tùy theo mục đích sử dụng mà lập trình viên hay người dùng có thể lựa chọn ngôn ngữ lập trình riêng cho website của bạn, tuy nhiên thực chất HTML chứa những yếu tố cần thiết mà dù website của bạn có thuộc thể loại nào, giao tiếp với ngôn ngữ lập trình nào để xử lý dữ liệu thì nó vẫn phải cần đến ngôn ngữ HTML để hiển thị nội dung cho người truy cập
Nói đúng hơn, dù website của bạn được xây dựng như thế nào, trên nền tảng nào thì nó cũng cần đến sự hỗ trợ của HTML, dù ít dù nhiều Đối với các lập trình viên hay nhà phát triển web, họ đều phải học HTML như một loại ngôn ngữ cơ bản trước khi bắt tay vào thiết kế trang web nào
Cấu trúc cơ bản của một file HTML
Cấu trúc cơ bản của HTML
Cấu trúc cơ bản của trang HTML/XHTML có dạng như sau, thường gồm 3 phần:
<!Doctype>: Phần khai báo chuẩn của html hay xhtml
<head></head>: Phần khai báo ban đầu, khai báo về meta, title, CSS, javascript
<body></body>: Phần chứa nội dung của trang web, nơi hiển thị nội dung
Cấu trúc cơ bản
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 3.2.4 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
Trang 8Cấu trúc cơ bản của trang web
Mỗi trang web đều có cách thể hiện cấu trúc khác nhau, có trang 1 cột, có trang 2
và cũng có trang chứa nhiều cột, bên dưới đây chúng ta tham khảo một trang đơn giản
sử dụng 2 cột để layout
Phần đầu: header, có thể chứa logo, câu slogan, các liên kết, các banner liên
kết, các button, đoạn flash, hoặc các form ngắn như form tìm kiếm
Phần liên kết toàn cục: global navigation, dùng để chứa các liên kết đến
những trang quan trọng trong toàn bộ trang, trong phần này có thể chứa thêm các liên kết con (Sub Navigation)
Phần thân của trang: page body, phần này chứa phần nội dung chính
(Content) và phần nội dung phụ (Sidebar)
Phần nội dung chính: content, phần này chứa nội dung chính cần thể hiện cho
người dùng xem
Phần nội dung phụ: sidebar, phần này có thể chứa liên kết phụ của từng trang
(Local Navigation), hoặc các banner chứa liên kết liên quan, hoặc có thể dùng để chứa các liên kết quảng cáo
Phần cuối trang web: footer, phần này thường chưa phân liên hệ như: tên công
ty, địa chỉ, số điện thoại, mail liên hệ, và đặc biệt là copyright, hoặc có thể chứa các liên kết toàn trang, các banner liên kết
Trang 9Hình 1.3: Mô hình cấu trúc cơ bản của trang HTML 1.1.2 Ngôn ngữ CSS
1.1.2.1 Giới thiệu
Định nghĩa
CSS là viết tắt của Cascading Style Sheets Đây là một ngôn ngữ style sheet được
sử dụng để mô tả giao diện và định dạng của một tài liệu viết bằng ngôn ngữ đánh dấu (Markup) Nó cung cấp một tính năng bổ sung cho HTML Nó thường được sử dụng với HTML để thay đổi phong cách của trang web và giao diện người dùng Nó cũng có thể được sử dụng với bất kỳ loại tài liệu XML nào bao gồm cả XML đơn giản, SVG và XUL
Trang 10CSS được sử dụng cùng với HTML và JavaScript trong hầu hết các trang web để tạo giao diện người dùng cho các ứng dụng web và giao diện người dùng cho nhiều ứng dụng di động
CSS làm được những gì?
Có thể thêm giao diện mới vào các tài liệu HTML cũ
Hoàn toàn có thể thay đổi giao diện trang web chỉ với một vài thay đổi trong mã CSS
2) Tiết kiệm rất nhiều thời gian
Định nghĩa kiểu CSS được lưu trong các tệp CSS bên ngoài vì vậy có thể thay đổi toàn
bộ trang web bằng cách thay đổi chỉ một tệp
3) Cung cấp thêm các thuộc tính
CSS cung cấp các thuộc tính chi tiết hơn HTML để định nghĩa giao diện của trang web
Các điểm chính của CSS được đưa ra dưới đây:
CSS là viết tắt của Cascading Style Sheet
CSS được sử dụng để thiết kế các thẻ HTML
CSS là một ngôn ngữ được sử dụng rộng rãi trên web
HTML, CSS và JavaScript được sử dụng để thiết kế web Nó giúp các nhà thiết kế web áp dụng phong cách trên các thẻ HTML
Trang 11Declaration Block: Khối khai báo có thể chứa một hoặc nhiều khai báo được
phân cách bởi dấu chấm phẩy (;) Đối với ví dụ trên, có hai khai báo:
1 color: yellow;
2 font-size: 11 px;
Mỗi khai báo chứa một tên thuộc tính và giá trị, được phân cách bởi dấu hai chấm
Property: Một property là một kiểu của thuộc tính của phần tử HTML Nó có
thể là color, border,
Trang 12Value: Các giá trị được gán cho thuộc tính CSS Trong ví dụ trên, giá trị
“yellow” được gán cho thuộc tính color
Selector{Propertyl: valuel; Property2: value2; ;}
1.1.3 Ngôn ngữ lập trình PHP
PHP (viết tắt hồi quy “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới
Như đã giới thiệu, PHP là ngôn ngữ máy chủ, mã lệnh PHP sẽ tập trung trên máy chủ để phục vụ các trang Web theo yêu cầu của người dùng thông qua trình duyệt Khi người dùng truy cập website viết bằng PHP, máy chủ đọc mã lệnh PHP và xử lý chúng theo các hướng dẫn đã được mã hóa
Khác với Website HTML tĩnh ở chỗ: khi có một yêu cầu, máy chủ chỉ đơn thuần gửi dữ liệu HTML đến trình duyệt Web và không xảy ra một sự biến dịch nào từ phía máy chủ Đối với người dùng cuối và trên trình duyệt web, các trang home html và home php trong tương tự như nhau, nhưng thực chất nội dung của trang được tạo theo các cách khác nhau
- Ưu điểm khi dùng PHP
+ Dùng mã nguồn mở (có thể chạy trên Apache hoặc IIS)
+ Phổ biến hơn ASP (có thể thấy dựa vào số website dùng PHP)
+ Dễ học khi đã biết HTML, C
+ Dựa vào XAMP (dễ cấu hình)
+ Nhiều hệ thống CMS miễn phí dùng
+ Đi cặp với MYSQL
+ Hoạt động trên Linux, có thể trên IIS – Windows
- Nhược điểm :
+ Mã nguồn không đẹp
+ Chỉ chạy trên ứng dụng web
Trang 131.2 Một số thư viện hỗ trợ
1.2.1 Thư viện BOOSTRAP
Bootstrap là một Framework có chứa HTML, CSS, JAVASCRIPT, Framewor trong tiếng việt có nghĩa là “khuân khổ” giúp tiết kiệm được thời gian, công sức hơn nữa việc xây dựng 2 teamplate cho giao diện Desktop và Mobile đã lỗi thời thay vào
đó là Responsive Responsive sẽ giúp website hiển thị tương thích với mọi kích thước màn hình, sẽ tùy chỉnh hiện thị được nhiều hơn trên các loại màn hình khác nhau
Ưu điểm khi sử dụng Bootstrap
Tiết kiệm thời gian: Boostrap giúp người thiết kế giao diện website tiết kiệm rất nhiều thời gian Các thư viện Bootstrap có những đoạn mã sẵn sàng cho bạn áp dụng vào website Không tốn nhiều thời gian để tự viết code cho giao diện
Tùy biến cao: Có thể dựa vào Bootstrap và phát triển nền tảng giao diện của chính mình Bootstrap cung cấp cho bạn hệ thống Grid System mặc định bao gồm 12 cột và độ rộng 940px Bạn có thể thay đổi, nâng cấp và phát triển dựa trên nền tảng này
Responsive Web Design: Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết Đây là xu hướng phát triển giao diện website đang rất được ưu chuộng trên thế giới
1.2.2 Thư viện JAVA SCRIPT
JavaScript là 1 ngôn ngữ dạng script thường được sử dụng cho việc lập trình web
ở phía client, nó tuân theo chuẩn ECMAScript Là 1 ngôn ngữ linh động, cú pháp dễ
sử dụng như các ngôn ngữ khác và dễ dàng lập trình JavaScript không hề liên quan tới ngôn ngữ lập trình java, được hầu hết các trình duyệt ngày nay hỗ trợ Với javascript, ứng dụng web của bạn sẽ trở nên vô cùng sinh động, mang tính trực quan và tương tác cao JavaScript theo phiên bản hiện hành là một ngôn ngữ lập trình kịch bản dựa trên đối tượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùng rộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng các đối tượng nằm sẵn trong các ứng dụng Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần với Self hơn Java “.js” là phần mở rộng thường được dùng cho tập tin
mã nguồn JavaScript
Trang 141.2.3 Thư viện AJAX
AJAX (Asynchronous JavaScript and XML) là một kỹ thuật cho phép các trang web tương tác với máy chủ mà không cần phải tải lại toàn bộ trang Thay vì tải lại trang hoàn toàn, các yêu cầu đến máy chủ được gửi dưới dạng tín hiệu dữ liệu (như XML, JSON hoặc HTML) và được xử lý bởi JavaScript để cập nhật phần nội dung của trang mà không cần phải tải lại
Thư viện AJAX phổ biến nhất hiện nay là jQuery AJAX, cung cấp các phương thức để thực hiện các yêu cầu AJAX và xử lý các kết quả trả về một cách đơn giản Các thư viện khác như Axios, Fetch API và XMLHttpRequest cũng là các công cụ được sử dụng để thực hiện AJAX trong JavaScript
1.3 Tổng quan về MySQL
1.3.1 Giới thiệu về MySQL
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở miễn phí nằm trong nhóm
LAMP (Apache-MySQL-PHP) Microsoft (Windows, IIS, SQL Server, ASP/ASP.NET), vì MySQL được tích hợp sử dụng chung với apache, PHP nên nó phổ biến nhất thế giới Vì MySQL ổn định và dễ sử dụng rất mạnh và Mysql cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữ SQL chính vì thế nên MySQL được sử dụng và hỗ trợ của những lập trình viên yêu thích mã nguồn mở Nhưng Mysql không bao quát toàn bộ những câu truy vấn cao cấp như SQL Server Vì vậy Mysql chỉ đáp ứng việc truy xuất đơn giản trong quá trình vận hành của website, thích hợp cho các ứng dụng có truy cập CSDL trên internet và có thể giải quyết hầu hết các bài toán trong PHP, Perl MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
Trang 15Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các
hệ điều hành dòng Windows, Linux, MacOSX, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan
hệ sử dụng ngôn ngữ truy vấn có cấu trúc (SQL)
1.3.2 Đặc điểm
MySQL là một phần mềm quản trị CSDL dạng server-based (gần tương đương với SQL Server của Microsoft) MySQL quản lý dữ liệu thông qua các CSDL, mỗi CSDL có thể có nhiều bảng quan hệ chứa dữ liệu MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, mỗi người dùng có một tên truy cập (User Name) và mật khẩu tương ứng để truy xuất đến CSDL
MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh
Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet
MySQL server hoạt động trong các hệ thống nhúng hoặc client/server
1.3.3 Tạo cơ sở dữ liệu và người dùng
Kết nối và tạo CSDL
Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách:
- Kết nối và tạo CSDL bằng Command line
- Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL Administrator hoặc phpmyadmin
Quản lý người dùng
- Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rỗng
- Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau
Cấp quyền cho người dùng
- Với quyền root ta có thể thực hiện mọi thao tác trên CSDL: select, update, insert, delete,
Trang 16- Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó
1.3.4 Các kiểu dữ liệu trong MySQL
Kết nối và tạo CSDL
Để kết nối cơ sở dữ liệu ta có thể thực hiện theo hai cách:
- Kết nối và tạo CSDL bằng Command line
- Kết nối và tạo CSDL bằng giao diện đồ họa: MySQL Administrator hoặc phpmyadmin
Quản lý người dùng
- Để đăng nhập vào MySQL ta có thể sử dụng user là root và pass là rông
- Ngoài tài khoản này ta có thể tạo thêm các tài khoản cho người dùng với các users và pass khác nhau
Cấp quyền cho người dùng
- Với quyền root ta có thể thực hiện mọi thao tác trên CSDL: select, update, insert, delete,
- Tuy nhiên, khi tạo quyền người dùng ta cũng có thể hạn chế bớt một số quyền nhất định nào đó
Trang 17`SELECT cot1, cot2 cotN
FROM ten_bang;`
o Loại bỏ giá trị trùng lặp:
`SELECT DISTINCT cot1, cot2 cotN
FROM ten_bang;`
o Kết hợp mệnh đề điều kiện WHERE:
`SELECT cot1, cot2 cotN
`SELECT cot1, cot2 cotN
FROM ten_bang WHERE ten_cot BETWEEN gtri-1 AND gtri-2;`
Trang 18`INSERT INTO ten_bang( cot1, cot2 cotN)
VALUES ( giatri1, giatri2 giatriN);`
Trang 19 Hàm MAX trong MySQL : Hàm tập hợp MAX trong MySQL cho phép chúng
ta lựa chọn giá trị lớn nhất (tối đa) trong một cột cụ thể
Hàm MIN trong MySQL : Hàm tập hợp MIN trong MySQL cho phép chúng ta lựa chọn giá trị nhỏ nhất (tối thiểu) trong một cột cụ thể
Hàm AVG trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể
Hàm SUM trong MySQL : Hàm tập hợp AVG trong MySQL cho phép chúng ta lựa chọn giá trị trung bình trong một cột cụ thể
Hàm SQRT trong MySQL : Được sử dụng để tính căn bậc hai của một số đã cho
Hàm RAND trong MySQL : Được sử dụng để tạo một số ngẫu nhiên bởi sử dụng lệnh trong MySQL
Hàm CONCAT trong MySQL : Được sử dụng để nối bất kỳ chuỗi nào trong bất
1.3.7 Tại sao sử dụng MySQL Server
- Khả năng mở rộng và tính linh hoạt.s
Hình 1.1: Mô hình khả năng MySQL
Trang 20MySQL cho phép người dùng mở rộng và có thể tùy chỉnh để thay đổi linh hoạt cấu trúc bên trong
Máy chủ cơ sở dữ liệu MySQL đáp ứng nhiều tính năng linh hoạt, nó có sức chứa
để xử lý các ứng dụng được nhúng sâu với 1MB dung lượng để chạy kho dữ liệu khổng lồ lên đến hàng terabytes thông tin Đặc tính đáng chú ý của MySQL là sự linh hoạt về flatform với tất cả các phiên bản của Windows, Unix đang được hỗ trợ Và đương nhiên, tính chất mã nguồn mở của MySQL cho phép tùy biến theo ý muốn để thêm các yêu cầu phù hợp cho database server
- Hiệu năng cao
Với kiến trúc storage-engine cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng chuyên biệt Dù ứng dụng là website dung lượng lớn phục vụ hàng triệu người/ngày hay hệ thống xử lý giao dịch tốc độ cao thì MySQL đều đáp ứng được khả năng xử lý khắt khe của mọi hệ thống Với những tiện ích tải tốc độ cao, cơ chế xử lý nâng cao khác và đặc biệt bộ nhớ caches, MySQL đưa ra tất cả nhưng tính năng cần có cho hệ thống doanh nghiệp khó tính hiện nay
- Tính sẵn sàng cao
MySQL đảm bảo sự tin cậy và có thể sử dụng ngay MySQL đưa ra nhiều tùy chọn có thể sử dụng ngay từ cấu hình tái tạo chủ/tớ tốc độ cao, để các nhà phân phối thứ 3 có thể đưa ra những điều hướng có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL
- Hỗ trợ giao dịch mạnh mẽ
MySQL đưa ra một trong số những engine giao dịch cơ sở dữ liệu tốt nhất trên thị trường Các đặc trưng bao gồm, khóa mức dòng không hạn chế, hỗ trợ giao dịch ACID hoàn thiện, khả năng giao dịch được phân loại và hỗ trợ giao dịch đa dạng (multi-version) mà người đọc không bao giờ cản trở cho người viết và ngược lại Dữ liệu được đảm bảo trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, khi phát hiện có lỗi khóa chết ngay tức thì
- Điểm mạnh của Web và Data Warehouse
MySQL với điểm mạnh là cho phép xử lý ở tốc độ cao, hỗ trợ các tính năng chuyên dụng cho website
Trang 21MySQL là nơi cho các website trao đổi thường xuyên bởi nó có engine xử lý tốc
độ cao, khả năng chèn dữ liệu cực nhanh và hỗ trợ mạnh các chức năng chuyên dụng của web Các tính năng này cũng được sử dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn Những tính năng khác như chỉ số băm, bảng nhớ chính, bảng lưu trữ và cây B đã được gói lại để giảm các yêu cầu lưu trữ tới 80% Vì thế, MySQL là sự chọn lựa tốt nhất cho cả ứng dụng web và các ứng dụng của doanh nghiệp
- Bảo vệ dữ liệu mạnh mẽ
Việc quan trọng của các doanh nghiệp là bảo mật dữ liệu, MySQL tích hợp các tính năng bảo mật an toàn tuyệt đối Với việc xác nhận truy cập cơ sở dữ liệu, MySQL trang bị các kỹ thuật mạnh, chỉ có người sử dụng đã được xác nhận mới truy cập được vào cơ sở dữ liệu SSH và SSL cũng được hỗ trợ để đảm bảo kết nối an toàn và bảo mật Tiện ích backup và recovery cung cấp bởi MySQL và các hãng phần mềm thứ 3 cho phép backup logic và vật lý cũng như recovery toàn bộ hoặc tại một thời điểm
- Phát triển ứng dụng toàn diện
MySQL trở thành cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay một phần là
do cung cấp hỗ trợ hỗn hợp cho bất cứ sự phát triển ứng dụng nào cần Trong cơ sở dữ liệu, hỗ trợ có thể được tìm thấy trong các trigger, stored procedure, cursor, view, ANSI-standard SQL,… MySQL cũng cung cấp các bộ kết nối như: JDBC, ODBC,…
để tất cả các form của ứng dụng sử dụng MySQL như một erver quản lí dữ liệu được
đề xuất hàng đầu
- Quản lý dễ dàng
Cài đặt MySQL khá nhanh và trung bình từ khi download phần mềm tới khi cài đặt thành công chỉ mất chưa đầy 15 phút Cho dù flatform là Linux, Microsoft Windows, Macintosh hoặc Unix thì quá trình cũng diễn ra nhanh chóng Khi đã cài đặt, tính năng quản lý như tự khởi động lại, tự động mở rộng không gian và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu bắt đầu làm việc MySQL cung cấp toàn bộ công cụ quản lý đồ họa cho phép một DBA quản lý, sửa chữa và điều khiển hoạt động của nhiều server MySQL từ một máy trạm đơn
Trang 22- Mã nguồn mở tự do và hỗ trợ 24/7
Nhiều doanh nghiệp còn băn khoăn trong việc giao toàn bộ cho phần mềm mã nguồn mở bởi khó có thể tìm được hỗ trợ hay bảo mật an toàn phục vụ chuyên nghiệp Với MySQL mọi sự cam kết đều rõ ràng, MySQL cam kết bồi thường khi gặp sự cố
1.4.2 Sublime text có ưu điểm gì?
Khả năng tùy biến
Trang 23Khả năng tùy biến là một trong những ưu điểm nổi bật đầu tiên khi nhắc đến trình soạn thảo Sublime text khi lập trình viên thiết kế website có thể hoàn toàn tùy chỉnh như ý muốn thông qua các plugin Lập trình viên được cho phép cài đặt, nâng cao, hoặc gỡ bỏ các plugin trực tiếp từ bên trong trình chỉnh sửa mà không cần phải thao tác lại từ đầu (khởi động)
Github, BitBucket và PackageControl.io là cộng đồng mà người dùng có thể tải xuống các gói của Sublime text rồi cho vào kho lưu trữ riêng Những cộng đồng trên đều sử dụng trình soạn thảo này với vô số các plugin giúp tăng cường khả năng của nó
Từ đó, có thể biến công cụ này từ một trình soạn thảo mã nguồn đơn giản thành một IDE hoàn chỉnh và thỏa sức xây dựng môi trường người dùng muốn phát triển trên đây
Tìm kiếm mạnh mẽ
Sublime text có chức năng Goto và Command Palette, nó có thể tìm kiếm các biểu thức thông thường, phân biệt chữ thường với chữ hoa hoặc tìm toàn bộ từ khóa Không những thế, nó còn cho phép người dùng các kết quả tìm kiếm vào bộ đệm để có thể sử dụng lại cho lượt search tiếp theo
Nhờ vào chức năng tìm kiếm mạnh mẽ trên, Sublime text giúp các lập trình viên cảm thấy đơn giản và nhanh chóng hơn khi muốn tìm bất cứ thứ gì
Màn hình và bảng điều khiển
Sublime text còn có khả năng hiển thị nhiều tập tin văn bản trên các cách khác nhau Người dùng có thể có một số tập tin đang mở sẵn được sắp xếp trong các tab Đấy chính là cách mà lập trình viên có thể di chuyển và sắp xếp lại chúng theo ý muốn Cách này được xem là khá tiêu chuẩn, tuy nhiên vẫn còn nhiều cách khác Ngoài ra, công cụ này còn cho người dùng chỉnh sửa các bố cục khác như hàng
và cột, chỉnh sửa toàn màn hình (Distraction Free) Nếu bạn đã sử dụng phần mềm WordPress thì Sublime text sẽ tạo cảm giác thân thuộc, thoải mái và dễ hiểu
Nhanh, nhẹ và ổn định
Trình soạn thảo mã nguồn Sublime text được xây dựng trên Python và C/C++ nên trình chỉnh sửa rất nhẹ Nó rất nhanh, khi mở Sublime text từ Menu Start của Windows ngay lập tức nó sẽ tải xuống và chỉ mất vài giây để nó xuất hiện trên màn hình
Trang 24Hơn nữa, công cụ được đánh giá là ổn định nhất so với các trình soạn thảo mã khác Tình trạng treo và crash rất hiếm khi xảy ra
Minimap
Sublime text giúp bạn nắm bắt được độ lớn của file thông qua chức năng minimap - một vùng nhỏ hiển thị tổng quan về nội dung ở ngay góc bên phải màn hình Phần mềm còn cho phép người dùng nhấp chuột phải vào minimap để trực tiếp điều hướng đến một địa điểm mà mình muốn Chức năng này tuy nhỏ nhưng nó thực
sự hữu ích đối với các file lớn
Tự động hoàn thành, mã gấp và đánh dấu cú pháp
Sublime text có khả năng tự động hoàn thành mã, bao gồm các biến do người dùng tạo ra và “mã gấp” (làm gọn các đoạn mã lớn) Ngoài ra, trình chỉnh sửa mã này còn có thể cảnh báo các lỗi phân tích cú pháp trong thời gian thực, nó hỗ trợ đến vài chục ngôn ngữ lập trình khác nhau cũng như sẽ tô màu cho các phần tử mã một cách thích hợp
1.4.3 Các tính năng của sublime text đối với lập trình viên
Dưới đây là một số tính năng chính giúp các lập trình viên lựa chọn Sublime text để làm việc
Đa nền tảng
Trình soạn thảo mã Sublime text được cài sẵn trên các nền tảng Mac, Windows
và Linux Vì thế, người dùng dễ dàng sử dụng trên mọi máy tính Nó có sử dụng bộ công cụ UI tùy chỉnh nên giao diện được tối ưu hóa rất tốt cả về mặt tốc độ lẫn thẩm
mỹ Không những thế, nó còn tận dụng mọi chức năng gốc trên mỗi nền tảng
Hiệu suất
Sublime text luôn đặt ưu tiên hiệu suất làm việc lên đầu dựa trên công cụ UI đa nền tảng mạnh mẽ và dễ dàng tùy chỉnh và các công cụ độc quyền mà ít ai sánh bằng
Nó xây dựng từ các thành phần tùy chỉnh và có khả năng thích ứng rất tốt
Chuyển đổi nhanh chóng
Các project của Sublime text chứa được toàn bộ nội dung của không gian làm việc, bao gồm cả file đang chỉnh sửa và file chưa được lưu Người dùng có thể chuyển đổi các project này ngay lập tức, tất cả thay đổi đều sẽ được khôi phục lại sau lần mở project tiếp theo
Trang 25 Split Editing
Tính năng này sẽ dựa vào độ rộng của màn hình mà người dùng đang sử dụng Bạn có thể chỉnh sửa nhiều hàng, nhiều cột như ý muốn hay chỉnh sửa các file cạnh nhau hoặc giữa hai vị trí trong cùng một file
Tuỳ chỉnh mọi thứ
Mọi thứ trong Sublime text đều có thể tùy chỉnh với các tệp JSON dễ dàng Sử dụng trình soạn thảo này giúp người dùng linh hoạt trong việc cài đặt có thể chỉ định trên từng loại tệp, từng project
Các tính năng của sublime text đối với lập trình viên
Hệ sinh thái gói và API mạnh mẽ
Tính năng thu hút ở Sublime text là sở hữu API Python mạnh mẽ, cho phép người dùng tích hợp tăng cường các plugin Bên cạnh đó, người dùng có thể truy cập vào hàng ngàn gói được xây dựng bởi cộng đồng một cách đơn giản
Command Palette
Chỉ một vài nhấn phím, người dùng có thể tìm kiếm được những gì mình muốn
mà không phải điều hướng qua các menu hay ghi nhớ các phím tắt phức tạp
Multiple Selections
Với tính năng này cho phép người dùng thay đổi nhiều dòng của một lúc, đổi tên
dễ dàng cũng như thao tác các file nhanh chóng hơn bao giờ hết
Trang 261 Apache: Là một chương trình máy chủ, dùng để giao tiếp với các giao thức
HTTP Apache chạy tốt trên mọi hệ điều hành
2 Mysql: Là hệ quản trị cơ sở dữ liệu, được dùng để lưu trữ thông tin của một
website Mỗi website có thể sử dụng một hoặc nhiều cơ sở dữ liệu
3 PHP: Là ngôn ngữ kịch bản trên phía Server, dùng để xử lý các thao tác của
người dùng Và làm việc trực tiếp với cơ sở dữ liệu (Database)
4 Perl: Là một tầng cao hơn, một ngôn ngữ lập trình năng động hơn Sử dụng
rộng rãi trong lập trình mạng và quản trị hệ thống Ít phổ biến cho mục đích phát triển web, Perl thích hợp với rất nhiều ứng dụng Xampp có hỗ trợ hầu hết các hệ điều hành như window, linux, mac
Sau khi đã download được Xampp về máy, chúng ta tiến hành cài đặt như sau Màn hình mới vào cài đặt
Trang 27- Nhấn Next để tiếp tục việc cài đặt
- Nhấn Next để tiếp tục cài đặt
Trang 28- Ở đây, nên chọn ổ đĩa mà không phải ổ C Để tránh việc cài win hoặc ghost máy bị mất dữ liệu Nhấn Next để tiếp tục
- Nhấn Next để tiếp tục Quá trình cài đặt diễn ra như hình bên dưới
Trang 29- Tiếp theo ta được màn hình như bên dưới
- Nhấn Finish để hoàn thành việc cài đặt
Trang 30CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ WEBSITE 2.1 Mô tả bài toán
Website bán hàng máy ảnh là một trang web cung cấp các loại máy ảnh kỹ thuật số, ống kính, phụ kiện và thiết bị khác liên quan đến nhiếp ảnh Trang web được thiết kế hiện đại với tông màu trắng và đen Bố cục trang web thân thiện với người dùng để các khách hàng có thể tìm kiếm và mua sản phẩm một cách dễ dàng Trang chủ hiển thị các sản phẩm máy ảnh mới nhất của các thương hiệu nổi tiếng, giúp người dùng có thể tiếp cận với những sản phẩm cao cấp nhất Trên trang chủ, có thể tim kiếm sản phẩm từ khóa hoặc theo danh mục, và sử dụng bộ lọc để giúp người dùng tìm kiếm sản phẩm một cách dễ dàng hơn
Trang web cung cấp nhiều tính năng hấp dẫn như cho phép người dùng tạo tài khoản, lưu trữ thông tin sản phẩm yêu thích, giỏ hàng, đặt hàng và thanh toán trực tuyến Ngoài ra, trang web cũng có tính năng hỗ trợ khách hàng qua các kênh liên lạc như email, điện thoại, chat trực tuyến để giải đáp các thắc mắc giúp khách hàng cảm thấy hài lòng và tin tưởng với chất lượng dịch vụ của website bán hàng máy ảnh
2.2 Các yêu cầu phi chức năng
Bảng 2.1 Các yêu cầu phi chức năng của ứng dụng
1 Giao diện Giao diện hệ thống phải dễ sử dụng, trực quan,
thân thiện với mọi người dùng
2 Tốc độ xử lý Hệ thống phải xử lý nhanh chóng và chính xác
3 Bảo mật Tính bảo mật và độ an toàn cao
4
Tương thích Tương thích với đa phần các trình duyệt web hiện tại
Tương thích hầu hết các thiết bị
2.3 Phân tích hệ thống
2.3.1 Xác định Actor
Admin: người thực hiện các chức năng quản trị hệ thống, tài khoản, khách
hàng, quản lý bài viết, quản lý giao diện Để thực hiện các chức năng quản trị trong hệ thống tác nhân này bắt buộc phải thực hiện đăng nhập
Trang 31 Khách hàng: có thể thực hiện các chức năng như đăng ký tài khoản, tìm kiếm
sản phẩm, xem tin tức, đặt hàng, xem giỏ hàng, ý kiến bình luận
2.4 Các chức năng của hệ thống
2.4.1 Chức năng về phía người quarg trị
Chức năng Admin
Bảng 2.2: Bảng chức năng của Admin
3 Quản lý giao diện Quản lý giao diện là thêm, sửa, xóa bảo trì giao diện
4 Quản lý tài khoản Quản lý thông tin tài khoản đăng nhập của người dùng
khi muốn đăng nhập để mua hàng
5 Quản trị hệ thống Quản lý toàn hộ hệ thống, có quyền thay đổi các thông
Trang 328
Quản lý đặt hàng
Quản lý thông tin về các đơn đặt hàng như: tên đăng nhập, địa chỉ người nhận, số điện thoại, hình thức thanh toán, tổng tiền…
9 Quản lý chi tiết
Quản lý hóa đơn
Quản lý hóa đơn khi khách hàng mua hàng có các thông tin như: Mã hóa đơn, mã khách hàng, địa chỉ người nhận, số diện thoại, tổng tiên, hình thức thanh toán
12 Quản lý chi tiết
hóa đơn
Quản lý chi tiết hóa đơn của khách hàng có những thông tin như: mã chi tiết hóa đơn, mã hóa đơn, mã sản phẩm, số lượng, thành tiền
13
Giỏ hàng
Giỏ hàng là để lưu thông tin mà khách hàng đã chọn có những trường như: mã giỏ hàng, mã sản phẩm, mã giao dịch, ngày tạo
14 Xem thông tin
16 Quản lý tin tức Tiến hành cập nhật tin tức, bài viết mới, giới thiệu sản
phẩm mới cho website
2.4.2 Chức năng về phía người dùng
Chức năng của khách hàng
Bảng 2.3 Bảng chức năng của người dung
Trang 33Mục Tên chức năng Mô tả
2 Đăng nhập
Thực hiện đăng nhập vào hệ thông, bắt buộc phải nhập user và password Kiểm tra hợp lệ trùng với dữ liệu có sẵn thì hệ thống sẽ cho phép đăng nhập
4 Đặt hàng
Khách hàng có thể thực hiện chức năng này để đặt mau hàng, nhằm giảm thiểu thời gian và chi phí cho khách hàng
5 Giỏ hàng
Sau khi đăng nhập và chọn mua sản phẩm, giỏ hàng là nơi chứa thông tin về sản phẩm mà khách hàng đã chọn mua như số lượng sản phẩm, tên sản phẩm và giá tiền sản phẩm đó
6
Thanh toán
Sau khi chọn mua sản phẩm , người dùng tiến hành gửi thông tin, chọn hình thức thanh toán, hình thức vận chuyển tiến hành đặt hàng và lưu lại hóa đơn
7
Liên hệ
Khi khách hàng có thắc mắc về giá sản phẩm, thời gian vận chuyển có thể liên hệ với người quản trị website qua phần liên hệ
8 Ý kiến bình luận Khách hàng có thể đăng những ý kiến bình luận của
mình về sản phẩm
Trang 342.5 Mô hình tổng quan của hệ thống
2.5.1 Mô hình hệ thống của admin
Admin
Đăng nhập
Quảng lý sản phẩm
Xem đơn hàng
Thêm sản phẩm
Duyệt đơn hàng
Thống kê sản phẩm
Xóa sản phẩm
Sửa sản phẩm
Thao tác đổi với sản phẩm
Quản lý đơn hàng
Quản lý tài khoản