Đăng ký Đăng nhập
Trang chủ Xây dựng hệ thống quản lí kho hàng cho doanh nghiệp vận tải ...

Tài liệu Xây dựng hệ thống quản lí kho hàng cho doanh nghiệp vận tải

.PDF
72
1
105

Mô tả:

ĈҤI HӐC QUӔC GIA THÀNH PHӔ HӖ CHÍ MINH 75ѬӠNG ĈҤI HӐC BÁCH KHOA KHOA KHOA HӐC VÀ KӺ THUҰT MÁY TÍNH LUҰ19Ă17ӔT NGHIӊP ĈҤI HӐC XÂY DӴNG Hӊ THӔNG QUҦN LÍ KHO HÀNG CHO DOANH NGHIӊP VҰN TҦI NGÀNH: KHOA HӐC MÁY TÍNH HӜI ĈӖNG: HӋ thӕng thông tin GVHD: Ths. NguyӉn Thӏ Ái Thҧo Khoa KH & KT Máy Tính, Ĉ+BK GVPB: Ths. Phҥm NguyӉn Hoàng Nam Khoa KH & KT Máy Tính, Ĉ+%. ---WX--SVTH : Võ Anh Tuҩn 1513886 1 ĈҤI HӐC QUӔC GIA TP.HCM ---------75ѬӠNG ĈҤI HӐC BÁCH KHOA KHOA:KH & KT Máy tính BӜ MÔN: Hr ҕ th{ғ ng thông tin CӜNG HÒA Xà HӜI CHӪ 1*+Ƭ$ VIӊT NAM Ĉӝc lұp - Tӵ do - Hҥnh phúc NHIӊM VӨ LUҰN ÁN TӔT NGHIӊP Chú ý: Sinh viên ph̫i dán tͥ này vào trang nh̭t cͯa b̫n thuy͇t trình HӐ VÀ TÊN: VRѺ Anh Tukғ n NGÀNH: Khoa hR ҕc MDғy TÕnғ h MSSV: 1513886 LӞP: 1. Ĉҫu ÿӅ luұn án: Xây dӵng hr ҕ th{ғ ng quDѴn l\ғ kho hDҒng cho doanh nghirpҕ vұn tDѴi 2. NhiӋm vө (yêu cҫu vӅ nӝi dung và sӕ liӋu ban ÿҫu): Mӝt doanh nghirpҕ vұn tDѴi cRғ nhirҒ u kho chѭғa hDҒng ѫѴ nhirҒ u tÕnѴ h thDҒnh khDғc nhau. HDҒng hRғa xukғ t vDҒ nhұp ra vDҒo kho liên tX ҕc. QuDғ trÕnҒ h xukғ t nhұp kho sHѺ GR QJѭѫҒi thXѴ kho quDѴn l\ғ. Hjng hRғa nhұp kho ckҒ n cRғ phirғ u nhұp kho ghi rRѺ QJѭѫҒi nhұn, QJѭѫҒi gѫѴi, loҥi hDҒng, s{ғ Oѭѫnҕ g, kh{ғ i Oѭѫnҕ g vDҒ mӝt s{ғ chi tirғ t cX ҕ thrѴ cXѴa tѭҒng loҥi hDҒng. HDҒng xukғ t kho cXѺng phDѴi cRғ thông tin tѭѫQJ tӵ, bên cҥnh l\ғ do xukғ t kho. L\ғ do xukғ t kho cRғ thrѴ lDҒ ÿrѴ xuDғW FKR QJѭѫҒi nhұn hoă ҕc chuyrѴ n sang kho khDғc. Hr ҕ th{ғ ng xây dӵng ckҒ n quDѴn l\ғ quy trÕnҒ h nDҒy Nhir ҕm vX ҕ (yêu ckҒ u vrҒ nӝi dung vDҒ s{ғ lir ҕXEDQÿkҒ u): - Phân tÕcғ h nghirpҕ vX ҕ - Thirғ t krғ hr ҕ th{ғ ng trên nrҒ n web. - Hir ҕn thӵc cDғc chѭғc QăQJchÕnғ h - XѭѴ l\ғ cDғc ngoҥi lr ҕ - KirѴ m thѭѴ, ÿDғnh giDғ hr ҕ th{ғ ng. 3. Ngày giao nhiӋm vө luұn án: 4. Ngày hoàn thành nhiӋm vө: 5. Hӑ tên giҧng viên Kѭӟng dүn: Phҫn Kѭӟng dүn: 1) NguyrѺn ThL Ái ҕ ThDѴo Nӝi dung vDҒ yêu ckҒ u LVTN ÿm ÿѭѫ ҕc thông qua Bӝ môn. Ngày WKiQJQăP CHӪ NHIӊM BӜ MÔN GIҦNG VIÊN +ѬӞNG DҮN CHÍNH (Ký và ghi rõ h͕ tên) (Ký và ghi rõ h͕ tên) PGS. TS. TrkҒ n Minh Quang PḪN DÀNH CHO KHOA, B͠ MÔN: 1JѭѫҒi duyrtҕ (chkғ m VѫEӝ): ĈѫQ vL:ҕ NgDҒy bDѴo vr ҕ: ĈLrѴ m tәng krғ t: 1ѫLOѭX trӳ luұn Dғn: ThS. NguyrѺn ThL ҕÁi ThDѴo 1 75ѬӠNG ĈҤI HӐC BÁCH KHOA KHOA KH & KT MÁY TÍNH CӜNG HÒA Xà HӜI CHӪ 1*+Ƭ$ VIӊT NAM Ĉӝc lұp - Tӵ do - Hҥnh phúc Ngày WKiQJQăP 2021 PHIӂU CHҨM BҦO Vӊ LVTN (Dành cho QJ˱ͥi K˱ͣng d̳n/ph̫n bi͏n) 1. Hӑ và tên SV1: VR˾ Anh Tuk̗ n (1513886) Ngành (chuyên ngành): Khoa hӑc Máy Tính 2. ĈӅ tài: Xây d˱̙ng hr ̙ th{̗ ng quD˸n l\̗ kho hD̖ng cho doanh nghir ̙p vk̙n tD˸i. 3. Hӑ tên QJѭӡLKѭѫғng dkѺn: NguyӉn Thӏ Ái Thҧo 4. Tәng quát vӅ bҧn thuyӃt minh: 5. Tәng quát vӅ các bҧn vӁ: 6. Nhӳng ѭX ÿLӇm chính cӫa LVTN: - Sinh viên xây dӵQJÿѭѫ ҕc mӝt hr ҕ th{ғ ng quҧn l\ғ các kho hàng trung chuyӇn cӫa doanh nghir ҕp vұn tҧi Băғ c ± Nam vѫғi các chѭғFQăQJFѫEҧn: quҧn l\ғ xukғ t - nhұp kho, quҧn l\ғ tài xӃ, thӫ kho, th{ғ ng kê lӏch sѭѴ xukғ t - nhұp - Sinh viên cRғ tÕm Ғ hiӇu các hr ҕ th{ғ ng WѭѫQJ tӵ ÿӇ xây dӵng và phát triӇn hr ҕ th{ғ ng. 7. Nhӳng thiӃu sRғt chính cӫa LVTN: - Hr ҕ th{ғ QJÿѭѫ ҕc xây dӵng vѫғi ít chѭғFQăQJSKkҒ n lѫғn các chѭғFQăQJFKÕѴ ѫѴ mѭғFÿӝ FѫEҧn, chѭғc Qăng th{ғ ng kê cRҒn rkғ WVѫVjLFKѭD cRғ trӵc quan dӳ lir ҕu. - Dӳ liruҕ thí nghir ҕm cXѺng cRҒn rkғ t ít - Nhӳng yêu ckҒ u vӅ bҧo mұt và ÿӅ xukғ t dӵa vào dӳ lir ҕu xukғ t ± nhұp phân tích ÿѭѫ ҕc FKѭD ÿѭѫ ҕc ÿӅ cұp - Báo cáo trÕnҒ h bày FKѭD rRѺ ràng, cRҒn nhiӅu l{Ѻ i format (cѫѺ chӳ, canh lӅ, font không th{ғ ng nhkғ t). - PhkҒ n tài liruҕ tham khҧo FKѭD ÿѭѫ ҕc trích dkѺn rRѺ ràng. - Khҧ QăQJ phân tích và giҧi quyӃt bài toán và trÕnҒ h bày cӫa sinh viên cRҒn kHғm - Sinh viên rkғ t chӏu khRғ hӑc tұSQKѭQJ sӵ tiӃn bӝ cRҒn chұm. 8. ĈӅ nghӏ: Ĉѭѫ ҕc bҧo vr ҕ 侌 Bә sung thêm ÿӇ bҧo vr ҕ † 9. 3 câu hӓi SV phҧi trҧ lӡi WUѭѫғc Hӝi ÿӗng: 10. ĈiQK giá chung (bҵng chӳ: giӓi, khá, TB): TB Không ÿѭѫcҕ bҧo vr ҕ † ĈLӇm : 6.5/10 K\ғ tên (ghi rRѺ hӑ tên) ThS. NguyӉn Thӏ Ái Thҧo 1 75ѬӠNG ĈҤI HӐC BÁCH KHOA KHOA KH & KT MÁY TÍNH CӜNG HÒA Xà HӜI CHӪ 1*+Ƭ$ VIӊT NAM Ĉӝc lұp - Tӵ do - Hҥnh phúc Ngày 06 tháng 08 QăP 2021 PHIӂU CHҨM BҦO Vӊ LVTN (Dành cho QJ˱ͥi K˱ͣng d̳n/ph̫n bi͏n) 1. Hӑ và tên SV: Võ Anh Tuҩn (1513886). MSSV: Ngành (chuyên ngành): Khoa hӑc máy tính. 2. ĈӅ tài: Xây dӵng hӋ thӕng quҧn lý kho hàng cho doanh nghiӋp vұn tҧi. 3. Hӑ tên QJѭӡi Kѭӟng dүn/phҧn biӋn: Phҥm NguyӉn Hoàng Nam. 4. Tәng quát vӅ bҧn thuyӃt minh: Sӕ trang: Sӕ FKѭѫQJ Sӕ bҧng sӕ liӋu Sӕ hình vӁ: Sӕ tài liӋu tham khҧo: Phҫn mӅm tính toán: HiӋn vұt (sҧn phҭm) 5. Tәng quát vӅ các bҧn vӁ: - Sӕ bҧn vӁ: Bҧn A1: Bҧn A2: Khә khác: - Sӕ bҧn vӁ vӁ tay Sӕ bҧn vӁ trên máy tính: 6. Nhӳng ѭX ÿLӇm chính cӫa LVTN: - Phân tích và thiӃt kӃ hӋ thӕng: nhóm phân tích và thiӃt kӃ hӋ thӕng chi tiӃt, phù hӧp nghiӋp vө. - Tìm hiӇu công nghӋ: nhóm có thӵc hiӋn khҧo sát/so sánh giӳa các hӋ thӕng liên quan. - TriӇn khai: triӇn khai trên môi WUѭӡng thӵc tӃ ÿiP mây). 7. Nhӳng thiӃu sót chính cӫa LVTN: - Khҧo sát nghiӋp vө: QKyPFKѭD thӵc hiӋn khҧo sát nghiӋp vө thӵc tӃ. - Phҥm vi ÿӅ WjLÿѫQ giҧn. - KiӇm thӱ: thӵc hiӋn khá Vѫ sài các kӏch bҧn kiӇm thӱ. 8. ĈӅ nghӏĈѭӧc bҧo vӋ ; Bә sung WKrPÿӇ bҧo vӋ † Không ÿѭӧc bҧo vӋ †  9. 3 câu hӓi SV phҧi trҧ lӡi WUѭӟc Hӝi ÿӗng: a. Khi tҥo ÿѫQ hàng, QJѭӡi nhұp liӋu sӁ chӑn tài xӃ tiӃp nhұn ÿѫQ hàng. Vұy giҧi pháp nào ÿӇ chӑn tài xӃ phù hӧp (ví dө hӋ thӕng có 500 tài xӃ). b. Trong chӭFQăQJTXҧn lý kiӋn hàng trong kho, khi kiӇPNrKjQJKyDOjPVDRÿӇ [iFÿӏnh k kiӋQKjQJWURQJWURQJÿѫQKjQJ Jӗm n kiӋQKjQJ OjKѭKӓng. HӋ thӕng có cҧnh báo hoһc thông báo JuÿӃn hӋ thӕng không vӅ viӋc hàng hóa Kѭ hӓng hay không? c. Trong chӭFQăQJ[Xҩt/nhұp kho, hӋ thӕng có kiӇm tra chӍ cho phép xuҩt k kiӋn hàng có tình trҥng tӕt trong n kiӋn hàng có trong kho hay không? NӃu không có, bҥn hãy ÿӅ xuҩt giҧi pháp. 10. ĈiQKJLichung (bҵng chӳ: giӓi, khá, TB): Trung bình ĈLӇm : 6.5 /10 Ký tên (ghi rõ hӑ tên) 1 Phҥm NguyӉn Hoàng Nam Lӡi cam ÿRDQ Em xin cam ÿRDQ mӑi ÿLӅu ÿѭӧc trình bày trong báo cáo, FNJQJ QKѭ mã nguӗn là do em tӵ thӵc hiӋn - trӯ các kiӃn thӭc tham khҧo có trích dүQFNJQJQKѭPmQJXӗn mүu do chính nhà sҧn xuҩt cung cҩp, hoàn toàn không sao chép tӯ bҩt cӭ nguӗn nào khác. NӃu lӡi cam ÿoan trái vӟi sӵ thұt, em xin chӏ u mӑi trách nhiӋm trѭӟc Ban Chӫ NhiӋm Khoa và Ban Giám HiӋu Nhà 7Uѭӡng. Sinh viên thӵc hiӋn ÿӅ tài. i Lӡi cҧm ѫQ ³0́͵i QăP rèn luy͟n sách ÿqQ Công danh g͏p Éͳc chͳ TXrQ˿Q th̿y´ Trích ca dao Vi͟t Nam +DLFkXFDGDRÿmQyLOrQVӵ biӃWѫQY{Eӡ bӃQÿӕi vӟi thҫ\F{QJѭӡi ÿmFKRWD nhӳng tri thӭF QJѭӡL ÿm GүQ ÿѭӡQJ FKR FK~QJ WD ÿL ÿӇ lҥi cho ta nhӳng hành trang quý báu cho chһng ÿѭӡng WѭѫQJ lai sau này. (PÿmWUҧLTXDQăPWKiQJÿҫ\WKăQJWUҫm ӣ QJ{LWUѭӡQJĈҥi hӑc Bách Khoa Tp.Hӗ Chí Minh, dѭӟi mái trѭӡng này gҳn liӅn vӟi em biӃt bao kӍ niӋm, vui có, buӗn có, ÿôi lúc là sӵ mӋt mӓLQKѭ muӕn buông bӓ tҩt cҧQKѭQJWKұt may mҳn bên cҥnh em luôn có nhӳng ngѭӡi thҫy ngѭӡi cô ÿҫy tâm huyӃt trong khoa Khoa hӑc và Kӻ thuұt máy tính nói ULrQJFNJQJQKѭQKӳng giҧng viên cӫa WUѭӡng Ĉҥi hӑc Bách Khoa Tp.Hӗ Chí Minh nói chung ÿm dìu dҳt em ÿL ÿӃn chһng ÿѭӡng cuӕi FQJQKѭ ngày hôm nay. ĈӇ Fyÿѭӧc thành quҧ QKѭQJj\K{PQD\HP[LQJӱi lӡi cҧPѫQVkXVҳFÿӃn quý thҫy cô khoa Khoa hӑc và Kӻ thuұt máy tính cNJng nhѭ tҩt cҧ cán bӝ giҧng viên trѭӡng Ĉҥi hӑc Bách Khoa Tp.Hӗ &Kt0LQKÿmWUX\ӅQÿҥt cho chúng em nhӳng kiӃn thӭc hӃt sӭc TXêEiXÿӇ hoàn WKjQKÿѭӧFÿӅ tài Luұn 9ăQ7ӕt NghiӋp lҫn này. Qua ÿyHPJӱi lӡi cҧm ѫQ ÿӃn khoa Khoa hӑc và kӻ thuұt máy tính ÿm tҥo ÿLӅu kiӋn cho em phát triӇn ÿӅ tài. Và em xin gӱi lӡi cҧm ѫn chân thành nhҩt vӟi cô NguyӉn Thӏ Ái Thҧo ÿã luôn bên cҥnh JL~Sÿӥ em trong suӕt quá trình thӵc hiӋQÿӅ tài, xin cҧPѫQF{YuÿmWұQWuQKKѭӟng dүn, ÿӏ nh hѭӟng, giҧi ÿáp thҳc mҳc, chӍ nh sӱa sai sót, giúp em hoàn thành bài luұn văn cӫa mình. Em xin gӱi lӡi cҧm ѫn sâu sҳc ÿӃn ba mҽ, bҥn bè, anh chӏ em ÿã ÿӝng viên tinh thҫn, bên cҥnh em trong suӕt quá trình hӑc tұp ӣ WUѭӡQJFNJQJQKѭWKӵc hiӋn luұQYăQWӕt nghiӋp. Mӝt lҫn nӳa xin chân thành cҧm ѫn cô NguyӉn Thӏ Ái Thҧo, quý thҫy cô khoa Khoa hӑc và Kӻ thuұt máy tính và kính chúc quý thҫy cô dӗi dào sӭc khӓe. Do giӟi hҥn kiӃn thӭc, thӡLJLDQWUuQKÿӝ và kinh nghiӋm cӫa bҧn thân còn nhiӅu hҥn chӃ, kính mong sӵ chӍ dүn và ÿóng góp cӫa thҫy cô ÿӇ luұn văn cӫa em ÿѭӧc hoàn thiӋn KѫQ Cuӕi cùng em FNJQJ gӱi lӡi cҧPѫQ ÿӃn các bҥn ÿm dành thӡi gian ÿӑc tài liӋu này. Võ Anh Tu̽n ii Tóm tҳt luұn YăQ Ngày nay, khi nhu cҫu vұn tҧi hàng hóa WURQJQѭӟc không ngӯQJJLDWăQJYuFRQ QJѭӡi quá bұn rӝn vӟi công viӋc, lҥi không có thӡi gian, không ÿӫ SKѭѫQJ tiӋn ÿӇ tӵ vұn tҧi hàng ÿӃn tұn nѫi nhұn. Trѭӟc tình hình ÿó, các dӏ ch vө vұn tҧi hàng hoá trong nѭӟc ra ÿӡi và ngày càng phә biӃn nhҵm ÿáp ӭng kӏp thӡi nhu cҫu vұn tҧi các loҥi hàng hóa phөc vө nhu cҫu kinh doanh, giao WKѭѫQJ PXD EiQ WUDR ÿәi hàng hóa cӫa các cá nhân, doanh nghiӋp hҫu khҳp các tӍ nh thành trên cҧ nѭӟc. Nҳm bҳt ÿѭӧc vҩn ÿӅ ÿó, em ÿã ÿӅ xuҩt mӝt website, xây dӵng hӋ thӕng quҧn lí kho hàng cho doanh nghiӋp vұn tҧL ÿiS ӭng ÿѭӧc mӑi yêu cҫu Fѫ bҧn cӫa quá trình vұn chuyӇn hàng hóa. ĈӇ hiӋn thӵFÿѭӧFÿӅ WjLQj\HPÿmWKDPNKҧo qua nhiӅu website vӅ vұn chuyӇn hàng hóa có sҹn cNJng nhѭ tӯ nhӳng app quҧn lí kho hàng ÿӇ ÿӏ nh hình ÿѭӧc yêu cҫu cѫbҧn cӫa mӝt hӋ thӕng quҧQOtNKRKjQJ(PÿѭDUDFiFEjLWRiQYjFiFKWKӭc giҧi quyӃt chúng trong hӋ thӕng mình xây dӵQJ(PÿmWLӃn hành sàng lӑc nhӳng công nghӋ và giҧi pháp phù hӧp, hiӋn thӵc tӯng yêu cҫu ÿӅ ra và kiӇm thӱ chúng Gѭӟi góc ÿӝ cӫa adminvà thӫ kho Tp. Hӗ Chí Minh, 26 tháng 7 QăP 2021 iii Mөc Lөc Lӡi cam ÿRDQ .................................................................................................................. i Lӡi cҧm ѫQ ...................................................................................................................... ii Tóm tҳt luұn YăQ ............................................................................................................ iii Mөc Lөc ................................................................................................................. iv Danh sách hình ..................................................................................................... iv Danh sách bҧng .................................................................................................. viii Thuұt ngӳ và tӯ viӃt tҳt ........................................................................................ ix 1. Giӟi thiӋu ÿӅ tài ...................................................................................................1 1.1 Tәng quan ÿӅ tài .................................................................................................... 1 1.2 Mөc tiêu và phҥm vi cӫa ÿӅ tài................................................................................ 1 1.2.1 Mөc tiêu và phҥm vi ......................................................................................... 1 1.2.2 1.3 NghiӋp vө giao nhұn...................................................................................... 2 Cҩu trúc luұn YăQ ........................................................................................................... 2 2. &ѫ sӣ lý thuyӃt và công nghӋ ................................................................................. 3 2.1 Các công nghӋ và WKѭ viӋn phía Client ............................................................... 3 2.1.1 Single Page Application ................................................................................... 3 2.1.2 Framework ReatJS .......................................................................................... 4 2.1.3 Quҧn lí Router vӟi React Router ...................................................................... 5 2.1.4 Quҧn lí state vӟi Redux ................................................................................... 5 2.1.5 Tích hӧp middleware vӟi Redux-thunk............................................................. 6 2.2 Các công nghӋ và WKѭ viӋn phía Server ................................................................. 7 2.2.1 KiӃn trúc Restful API ........................................................................................ 7 2.2.2 Ngôn ngӳ NodeJS ........................................................................................... 8 2.2.3 Framework ExpressJS ..................................................................................... 9 2.2.4 Xác thӵc QJѭӡi dùng bҵng Passport JS ......................................................... 10 2.2.5 &ѫ sӣ dӳ liӋu MongoDB ................................................................................ 11 3. Các hӋ thӕng liên quan trong thӵc tӃ .................................................................. 13 3.1 Vұn tҧi 'ѭѫQJ Huy ......................................................................................................... 13 3.2 DHD Logistics ........................................................................................................ 13 3.3 Logivan .................................................................................................................. 14 3.4 ĈiQK giá chung vӅ các hӋ thӕng.................................................................................... 14 4. Bài toán và Kѭӟng giҧi quyӃt ................................................................................ 15 4.1 Bài toán bҧo mұt ............................................................................................................. 15 iv 4.1.1 Bҧo mұt phía máy khách ....................................................................................... 15 4.1.2 Bҧo mұt phía máy chӫ ........................................................................................... 17 4.1.3 Bҧo mұt phía Fѫ sӣ dӳ liӋu .................................................................................... 17 4.2 Bài toán tìm kiӃm............................................................................................................. 18 4.3 Bài toán sҳp xӃp.............................................................................................................. 18 5. Phân tích và thiӃt kӃ hӋ thӕng .........................................................................19 5.1 Phân tích yêu cҫu................................................................................................... 19 5.1.1 Yêu cҫu QJѭӡi dùng ...................................................................................... 19 5.1.2 Yêu cҫu hӋ thӕng ........................................................................................... 19 5.2 ThiӃt kӃ hӋ thӕng.................................................................................................... 20 5.2.1 Usecase (UC) ................................................................................................ 21 5.2.2 View............................................................................................................... 26 5.2.3 Controller ....................................................................................................... 32 5.2.4 Model............................................................................................................. 32 5.2.5 &ѫ sӣ dӳ liӋu ................................................................................................. 33 6. HiӋn thӵc hӋ thӕng ...........................................................................................38 6.1 Công nghӋ sӱ dөng ................................................................................................ 38 6.2 KӃt quҧ hiӋn thӵc ................................................................................................... 38 6.2.1 Chӭc QăQJ ÿăQJ nhұp ................................................................................... 38 6.2.2 Nhóm các chӭc QăQJ dành cho Admin ................................................................ 39 6.2.3 Nhóm các chӭc QăQJ dành cho Thӫ kho ........................................................ 48 7. KiӇm thӱ hӋ thӕng ............................................................................................55 7.1 KiӇm thӱ API .......................................................................................................... 55 7.2 KiӇm thӱ chӭc QăQJ........................................................................................................ 56 8. Tәng KӃt ............................................................................................................58 8.1 KӃt quҧ ÿҥt ÿѭӧc .............................................................................................................. 58 8.2 Hҥn chӃ ............................................................................................................................ 58 NGUӖN THAM KHҦO ...........................................................................................59 v Danh Sách Hình Tên hình Nӝi dung 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 4.1 4.2 4.3 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 6.1 6.2 6.3 6.4 6.5 6.6 6.7 6.8 6.9 6.10 6.11 6.12 6.13 6.14 6.15 6.16 6.17 6.18 Sӵ khác nhau cӫa SPA và website truyӅn thӕng Logo React JS 6ѫ ÿӗ hoҥt ÿӝng cӫa Redux Nguyên lí hoҥt ÿӝng cӫa Restful API Logo NodeJS Cҩu trúc hoҥt ÿӝng cӫa ExpressJS PassportJS Logo MongoDB Activity Diagram cӫa lӟp bҧo mұt ÿLӅu khiӇn truy cұp trên router Validate tên kiӋn hàng Các lӟp bҧo mұt ÿm hiӋn thӵc Usecase hӋ thӕng Usecase admin Usecase thӫ kho Mockup ÿăQJ nhұp Mockup tҥo mӟi kho hàng Mockup danh sách kho hàng Mockup tҥo tài xӃ Mockup danh sách tài xӃ Mockup tҥo thӫ kho Mockup danh sách thӫ kho Mockup phiӃu nhұp kho Mockup phiӃu xuҩt kho Mockup tҥo phiӃu kiӇm kê ERD hӋ thӕng Giao diӋn ÿăQJ nhұp Giao diӋn form tҥo kho hàng và danh sách các kho Popup chӍ nh sӱa kho hàng Giao diӋn chӍ nh sӱa thông tin kho hàng Giao diӋn xóa kho hàng Giao diӋn quҧn lí tài xӃ Giao diӋn thông tin chi tiӃt tài xӃ Giao diӋn chӍ nh sӱa thông tin tài xӃ Giao diӋn xóa tài xӃ Giao diӋn tҥo tài khoҧn thӫ kho và danh sách Giao diӋn chi tiӃt thӫ kho Giao diӋn chӍ nh sӱa thông tin thӫ kho Giao diӋn xóa thӫ kho Giao diӋn lӏ ch sӱ nhұp kho Giao diӋn chi tiӃt lô hàng nhұp kho Giao diӋn lӏ ch sӱ xuҩt kho Giao diӋn chi tiӃt lô hàng xuҩt kho Giao diӋn thӕng kê nhұp xuҩt kho vi 6.19 6.20 6.21 6.22 6.23 6.24 6.25 6.26 6.27 6.28 6.29 6.30 6.31 6.32 6.33 7.1 7.2 7.3 Giao diӋn tҥo kiӋn hàng nhұp kho Giao diӋn tҥo phiӃu nhұp kho Giao diӋn danh sách phiӃu nhұp kho Giao diӋn chi tiӃt các lô hàng nhұp Popup chӍ nh sӱa kiӋn hàng nhұp kho Thông báo xác nhұn xóa kiӋn hàng Giao diӋn thêm kiӋn hàng xuҩt kho Giao diӋn tҥo phiӃu xuҩt kho Giao diӋn danh sách phiӃu xuҩt kho Giao diӋn chi tiӃt các lô hàng xuҩt Popup chӍ nh sӱa kiӋn hàng xuҩt kho Thông báo xác nhұn xóa kiӋn hàng Giao diӋn trang kiӇm kê Giao diӋn tҥo phiӃu kiӇm kê Giao diӋn lӏ ch sӱ kiӇm kê Gӑi API ÿăQJ nhұp vӟi Postman KӃt quҧ trҧ vӅ thành công KiӇm thӱ chӭc QăQJ và kӃt quҧ tҥo tài xӃ vӟi Postman vii Danh sách bҧng UC-AM-01 UC-AM-02 UC-AM-03 UC-AM-04 UC-TK-01 UC-TK-02 UC-TK-03 Bҧng 5.1 Bҧng 5.2 Bҧng 5.3 Bҧng 5.4 Bҧng 5.5 Bҧng 5.6 Bҧng 5.7 Bҧng 5.8 Bҧng 5.9 Bҧng 6.1 Quҧn lí thӫ kho Quҧn lí kho hàng Quҧn lí tài xӃ Lӏ ch sӱ nhұp xuҩt, thӕng kê Quҧn lí phiӃu nhұp kho Quҧn lí phiӃu xuҩt kho Quҧn lí kiӇm kê Schema driver Schema kiӋn hàng tӗn kho Schema phiӃu nhұp kho Schema phiӃu nhұp kho chi tiӃt Schema phiӃu xuҩt kho Schema phiӃu xuҩt kho chi tiӃt Schema thӕng kê nhұp xuҩt kho Schema user Schema kho hàng Công nghӋ sӱ dөng viii Thuұt ngӳ và tӯ viӃt tҳt Tên tӯ API App Database Client Server Frontend Backend Request Framework SPA JWT Component State Store Reducer Middleware Lifecycle REST RESTful API Nӝi dung Application Programming Interface Ӭng dөng (bao gӗm cҧ web và mobile) &ѫ sӣ dӳ liӋu Máy khách Máy chӫ Mӝt thành phҫn cӫa ӭng dөng, thành phҫn này WѭѫQJ tác trӵc tiӃp vӟi QJѭӡi dùng Mӝt thành phҫn cӫa ӭng dөng, thành phҫn này xӱ lý logic ÿҵng sau cӫa ӭng dөng Yêu cҫu tӯ SKtDQJѭӡi dùng gӱi lên máy chӫ Khung phát triӇn phҫn mӅm Single Page Application Json Web Token Mӝt thành phҫn cӫa React app Trҥng thái cӫa component Mӝt thành phҫn cӫa kiӃn trúc Redux, OѭX trӳ dӳ liӋu cho React app Mӝt thành phҫn cӫa kiӃn trúc Redux, là 1 function nhұn ÿҫu vào làstate Nhӳng ÿRҥn mã trung gian thӵc hiӋn mӝt tác vө nào ÿy trong FKѭѫQJ trình Vòng ÿӡi cӫa component Representational State Transfer ± mӝt tiêu chuҭn giao tiӃp giӳa máy chӫ và máy khách Các API tuân theo quy tҳc, tiêu chuҭn cӫa REST ix 1 Giӟi thiӋu ÿӅ tài 1.1 Tәng quan ÿӅ tài Ngày nay Công nghӋ WK{QJWLQÿmSKiWWULӇn vӟi tӕFÿӝ YNJEmRÿѭӧc ӭng dөng hҫu hӃt các lƭn h vӵc trong ÿӡi sӕng nhѭ nghiên cӭu khoa hӑc, phát triӇn kinh tӃ, quân sӵ, quҧn trӏ doanh nghiӋp,vv«Ӣ các nѭӟc tiên tiӃn, máy tính ÿã ÿѭӧc ӭng dөng ӣ nhiӅu lƭnh vӵc nhҵm phөc vө lӧi ích con ngѭӡi. ViӋc liên lҥc tìm kiӃm thông tin không còn bӏ cҧn trӣ, thӃ giӟi trӣ nên xích lҥi gҫn nhau KѫQQKӡ công nghӋ. Tҩt cҧ các quӕFJLDÿӅXÿDQJFӕ gҳng làm chӫ kiӃn thӭc và tìm cách áp dөng thành tӵu cӫa Công nghӋ thông tin vào mӑi ngành kinh tӃ - xã hӝi cӫa nhà Qѭӟc Ӣ ViӋt Nam công nghӋ WK{QJWLQFNJQJÿDQJKzDQKұp vӟi thӃ giӟLÿӇ sánh vai vӟiFiFFѭӡng quӕFQăPFKkXWUӣ thành mӝt ngành kinh tӃ quan trӑQJÿһc biӋt là Công nghӋ phҫn mӅm. Sӵ ra ÿӡi cӫa các phҫn mӅm ӭng dөng, ÿһc biӋt là phҫn mӅm Quҧn lí kho hàng mang lҥi nhiӅu thuұn lӧi trong công tác quҧn lý hàng hóa tránh sӵ thҩt thu, giҧm bӟt ÿѭӧc thӡi gian công sӭc cho QJѭӡi quҧn lý, ÿLӅu hành công viӋc mӝt cách có khoa hӑc, chính xác, nhҽ nhàng, mang lҥi hiӋu quҧ cao. Tuy nhiên bên cҥnh nhӳng tiӋn lӧi vүn còn nhiӅu khó NKăQ QKѭӧc ÿLӇm cҫn ÿѭӧc khҳc phөc QKѭ bҧn thân các nhà lұp trình vүncòn hҥn chӃ vӅ trình ÿӝ FNJQJ QKѭ kinh nghiӋm làm phҫn mӅm ĈӅ tài Quҧn lý kho hàng cho doanh nghiӋp vұn tҧi là mӝW ÿӅ tài thuӝc mҧng $SSOLFDWLRQ6RIWZDUHĈk\NK{QJSKҧi là mӝWÿӅ tài mӟi vì có rҩt nhiӅu hӋ thӕng quҧn lí kho hàng ÿѭӧc sӱ dөng rӝng rãi hiӋn nay. Tuy nhiên, viӋc có thêm mӝt hӋ thӕng quҧn lí kho hàng nӳa sӁ giúp cho doanh nghiӋp có thêm sӵ lӵa chӑn mӟi cho mình. Mһt khác, hӋ thӕng em xây dӵng có WKrP WtQK QăQJ Pj FiF KӋ thӕng hiӋn tҥL NK{QJ Fy ÿy Oj WtQK vұn tӕc chuyӇn hàng và tӍ lӋ lѭu lѭӧng hàng hóa vұn chuyӇn. 1.2 Mөc tiêu và phҥm vi cӫa ÿӅ tài 1.2.1 Mөc tiêu và phҥm vi Mөc tiêu cӫDÿӅ tài là xây dӵng mӝt hӋ thӕng quҧn lý kho hàng cho mӝt doanh nghiӋp vұn tҧi có nhiӅu kho chӭa hàng ӣ nhiӅu tӍ nh thành trên cҧ nѭӟc. Hàng hóa xuҩt và nhұp ra vào kho liên tөc. Quá trình nhұp xuҩt kho sӁ do thӫ kho quҧn lý. Hàng hóa nhұp kho cҫn có phiӃu nhұSNKRJKLU}WK{QJWLQQJѭӡi nhұQQJѭӡi gӱi, loҥi hàng, sӕ Oѭӧng, khӕLOѭӧng và mӝt sӕ chi tiӃt cө thӇ cӫa tӯng loҥi hàng. Hàng xuҩWNKRFNJQJSKҧi FyWK{QJWLQWѭѫQJWӵ QKѭYұy bên cҥnh lí do xuҩt kho. HӋ thӕng xây dӵng cҫn quҧn lý ÿѭӧc quy trình QKѭ vұy. ViӋc xây dӵng mӝt hӋ thӕng QKѭ trên ÿһt ra nhӳng bài toán QKѭ - Công nghӋ sӱ dөng là gì? - Làm thӃ nào ÿӇ admin có thӇ theo dõi ÿѭӧc quá trình nhұp xuҩt kho hàng? 1 - PhiӃu nhұp kho, xuҩt kho gӗm nhӳng gì? - Bҧo mұt cho web app QKѭ thӃ nào? - ThiӃt kӃ Fѫ sӣ dӳ liӋu ra sao? - Làm thӃ nào ÿӇ lӑc ra nhӳng lô hàng mình muӕn trong danh sách hàng nghìn lô hàng? - Làm thӃ nào ÿӇ thӕng kê ÿѭӧc doanh thu, vұn tӕc và tӍ lӋ lѭu chuyӇn kho hàng? Và còn nhiӅu câu hӓi khác nӳDÿѭӧFÿһt ra trong suӕt quá trình làm, hӋ thӕng em sinh ra ÿӇ tӯng bѭӟc giҧi quyӃt ÿѭӧc nhӳng câu hӓi này, mang lҥi giá trӏ thiӃt thӵc cho các doanh nghiӋp vұn tҧi PhҥPYLÿӅ tài bao gӗm thӫ kho và admin. Thӫ kho khi nhұp hàng vào kho sӁ tҥo phiӃu nhұp kho, khi gӱi hàng sang kho khác sӁ tҥo phiӃu xuҩt kho, quҧn lí kiӇm kê nhӳng kiӋn hàng còn tӗn kho. Admin có vai trò quҧn lí các kho hàng (tҥo mӟi kho, xóa kho, cұp nhұt thông tin kho hàng), quҧn lí tài xӃ (thêm, xóa, cұp nhұt thông tin tài xӃ), quҧn lí thӫ kho (tҥo tài khoҧn thӫ kho, xóa tài khoҧn, cұp nhұt tài khoҧn) và xem lӏ ch sӱ nhұp xuҩt kho và thӕng kê nhұp xuҩt. 1.2.2 NghiӋp vө giao nhұn Mӝt quá trình giao, nhұn hàng hóa ÿҫy ÿӫ gӗm 2 loҥi ÿѫQ vұn sau: - PhiӃu nhұp kho: bao gӗm thông tin QJѭӡi nhұn, QJѭӡi gӱi, loҥi hàng, sӕ Oѭӧng, khӕi Oѭӧng và mӝt sӕ chi tiӃt cӫa tӯng loҥi hàng - PhiӃu xuҩWNKRWѭѫQJWӵ QKѭSKLӃu nhұp kho, bên cҥQKÿyFyOtGR[Xҩt kho và thông tin thanh toán. Lí do xuҩt kho có thӇ OjÿӅ xuҩWFKRQJѭӡi khác hoһc chuyӇn sang kho khác 1.2 Cҩu trúc luұn YăQ Các phҫn cӫa luұn YăQ sӁ ÿѭӧc trình bày QKѭVDX Phҫn 1: Giӟi thiӋu ÿӅ tài: trình bày Vѫ Oѭӧt vӅ ÿӅ tài thӵc hiӋn, cái nhìn tәng quantӯ nhiӅu khía cҥnh tӯ kinh tӃ, công nghê cho ÿӃn thӵc trҥng nhu cҫu QJѭӡi sӱa dөng. Phҫn 2: &ѫ sӣ lý thuyӃt và công nghӋ: Trình bày các Fѫ sӣ lý thuyӃt ÿѭӧc sӱ dөng ÿӇ hiӋn thӵc hӋ thӕng và công nghӋ áp dөng. Phҫn 3: Các hӋ thӕng liên quan: Giӟi thiӋu các hӋ thӕng ÿã có trên thӏ trѭӡng dӏ ch vө vұn chuyӇn. Phҫn 4: Bài toán và cách thӭc giҧi quyӃt: Trình bài khó khҳn và Kѭӟng giҧi quyӃttrong quá trình hiӋn thӵc hӋ thӕng. Phҫn 5: Phân tích thiӃt kӃ hӋ thӕng: Trình bày yêu cҫu cҫu khi hiӋn thӵc hӋ thӕngvà thiӃt kӃ cҩu trúc hӋ thӕng Phҫn 6: HiӋn thӵc hӋ thӕng: Trình bày nhӳng chӭc QăQJ ÿm hoàn thiӋn, cách sӱdөng thӵc tӃ. Phҫn 7: KiӇm thӱ: KiӇm tra tӯng chӭc QăQJ cӫa hӋ thӕng, báo kӃt quҧ kiӇm tra. Phҫn 8: Tәng KӃt: Tәng kӃt lҥi các phҫn làm thành công, thiӃu sót, ÿӏ nh hѭӟng phát triӇn trong WѭѫQJ lҥi 2 2 &ѫ sӣ lý thuyӃt và công nghӋ Trong quá trình làm luұQYăQNKLWuPFiFKJLҧi quyӃt cho tӯQJEjLWRiQHPÿmQJKLrQ cӭu YjWuPWzLUDÿѭӧc nhӳQJQJX\rQOêÿҵQJVDXFNJQJQKѭQKӳng công nghӋ giúp em giҧi quyӃWÿѭӧc nhӳng vҩQÿӅ gһp phҧi. Tӯ SKtDFOLHQWFKRÿӃn server, tӯ công cө tìm kiӃPFKRÿӃn hӋ thӕQJÿӅ xuҩt. Tҩt nhiên, giҧi pháp thì có vô vàn, nguyên lý thì hàng ngàn nghiên cӭXWUѭӟFÿyÿmÿӅ UDQKѭQJÿӇ chӑn ra nhӳng công nghӋ phù hӧp nhҩt, HPÿmFkQQKҳFÿҳQÿRYj[HP[pWUҩt kӻ càng6DXÿk\ em xin trình bày vӅ FiFFѫVӣlý thuyӃt và công nghӋ chính mà em ÿm sӱ dөng. 2.1 Các công nghӋ và WKѭ viӋn phía Client 2.1.1 Single Page Application Web là mӝt ӭng dөng mҥng ÿm tӗn tҥi tӯ cuӕi thұp niên 80, trҧi qua nhiӅu giai ÿRҥn khác nhau, tӯ thӡi mà mӛi khi click chuӝt vào mӝt món hàng trong màn hình danh sách, QJѭӡi dùng phҧi chӡ ÿӧi trình duyӋt load nguyên 1 trang HTML vӅ chi tiӃt món hàng tӯ máy chӫ vӅ QJѭӡi dùng, và ÿLӅu ÿy tҩt nhiên ko tӕt vӅ mһt thӡi gian lүn hiӋu suҩt. Chính vì thӃ các kӻ sѭ ÿã tӕi ѭu bҵng cách tҥo ra các kƭ thuұt giúp chӍ tҧi lҥi phҫn dӳ liӋu cҫn thiӃt mà không cҫn phҧi tҧi toàn bӝ. Và tӯ ÿySingle Page Application (SPA) ra ÿӡi. 1yLFiFKÿѫQJLҧn, SPA là loҥi ӭng dөng web giúp nâng cao trҧi nghiӋPQJѭӡi dùng bҵng cách sӱ dөng HTML5 và AJAX và chӍ bao gӗm 1 trang HTML duy nhҩt. Mӛi khi chúng ta tѭѫng tác, ÿiӅu hѭӟng, phân trang« ta chӍ cҫn gӑi API ÿӃn máy chӫ ÿӇ lҩy phҫn dӳ liӋu cҫn thiӃt rӗi sau ÿy cұp nhұt lҥi trên màn hình. Nhӳng thành phҫn chung giӳa các trang QKѭ Header, Sider, Footer vүn ÿѭӧc giӳ nguyên. 'ѭӟLÿk\ là hình ҧnh mô tҧ sӵ khác biӋt giӳa SPA và trang web truyӅn thӕng 3 Hình 2.1: SΉ khác nhau cͿa SPA và website truy͙n thͩng 2.1.2 Framework React JS Trong thӡi ÿҥi công nghӋ hóa hiӋn nay Gѭӟi sӵ phát triӇn Yѭӧt bұc cӫa công nghӋkéo theo nhӳng ngành nghӅ liên quan FNJQJ phát triӇn trong ÿy có cҧ viӋc sӱ dөng nhӳng WKѭ viӋn JavaScript cho các trang website. Vì thӃ ReactJS ÿm ra ÿӡi và trӣ nên phә biӃn bӣi tính QăQJ linh hoҥt ÿѫQ giҧn mà nó ÿHPOҥi. Theo thӕng kê con sӕ sӱ dөng ReactJS tính tӟi hiӋn nay là 1300 developer YjKѫQ 94000 trang web sӱ dөng nó. ReactJS hiӋn nay là framework hàng ÿҫXÿӇ xây dӵng mӝt ӭng dөng Web bên phía QJѭӡi dùng. React ÿѭӧc phát triӇn bӣi Facebook và có mӝt cӝng ÿӗng hӛ trӧ ÿ{QJÿҧo. Vӟi React, ta có thӇ xây dӵng mӝt Single Page Application (SPA) dӉ dàng mà không mҩt quá nhiӅu chi phí. Và mөc ÿtFK chӫ chӕt cӫa React ÿy chính là mӛi website khi ÿm sӱ dөng ReactJS thì phҧi chҥy thұt Pѭӧt thұt nhanh và có khҧ QăQJ mӣ rӝng cao, dӉ thӵc hiӋn[1] 4 Hình 2.2: Logo React JS Tuy mҥnh mӁ nhѭ vұy, nhѭng bҧn chҩt React chӍ là mӝt thѭ viӋn nhӓ và nó không có sҹn tính QăQJJӑi API, quҧn lí route, quҧn lí VWDWH« Vұy nên khi lұp trình ta cҫn sӱ dөng thêm mӝt sӕ WKѭ viӋn bên ngoài QKѭ Redux, ReactRouter« Thӵc tӃ thì bên cҥnh React hiӋn nay vүn còn nhiӅu framework mҥnh mӁ Yjÿѭӧc áp dөng nhiӅXQKѭ Angular, VueJS« Tuy nhiên em quyӃt ÿӏ nh chӑn React vì tính әn ÿӏ nh và cӝng ÿӗng hӛ trӧ mҥnh mӁ. ViӋc em FNJQJ tӯng có hӑc qua vӅ React WUѭӟc ÿk\ FNJQJ là 1 trong nhӳng lí do em chӑn framework này React Hooks Hooks là nhӳng hàm cho phép kӃt nӕi React state và lifecycle vào các components sӱ dөng hàm. Vӟi Hooks ta có thӇ sӱ dөng state và lifecycles mà không cҫn dùng ES6 class. Nói mӝt cách ngҳn gӑn và ÿѫQ giҧn thì React Hooks là mӝt ý WѭӣQJOjFiFKÿӇ thêm các tính QăQJFӫa React.Component vào functionals components. Tҥi sao chӑn React Hooks? - Code ngҳn gӑn KѫQ viӃt code sӱ dөng Hooks ngҳn gӑn KѫQ rҩt nhiӅu so vӟi Class - Hooks chӍ bә sung thêm, không loҥi bӓ code cNJ. Ví dө nhѭ bҥn ÿang code dӵ án ReactJS theo kiӇu Class Component thì vүn có thӇ sӱ dөng Hooks trong dӵ án ÿy 2.1.3 Quҧn lí router vӟi React Router Trong luұQYăQOҫn này, em xây dӵng mӝt hӋ thӕng quҧn lý kho hàng vұn tҧi theo chuҭn Single Page Application7X\QKLrQÿӇ ÿҥWÿѭӧFÿLӅXÿyYӟi viӋc dùng React làm framework thì cҫn phҧi có mӝt công cө vӯa tích hӧS ÿѭӧc vӟi React, vӯa tұn dөng và thao tác ÿѭӧc HTML Routing. Và công cө thích hӧp nhҩt chính React Router React-Router là mӝt thѭ viӋn ÿӏ nh tuyӃn (routing) tiêu chuҭn trong React. Nó giӳ cho giao diӋQÿӗng bӝ vӟi URL trên trình duyӋt. Nó giӳ cho giao diӋn cӫa ӭng dөQJÿӗng bӝ vӟi URL trên trình duyӋt. React-Router cho phép ÿӏnh tuyӃn luӗng dӳ liӋu (data flow) trong ӭng dөng mӝt cách rõ UjQJ1yWѭѫQJÿѭѫQJYӟi viӋc nӃu chúng ta có URL này, nó sӁ WѭѫQJ ÿѭѫQJ vӟi Route này, và giao diӋn WѭѫQJ ӭng.[2] 5 2.1.4 Quҧn lí state vӟi Redux Redux là mӝt WKѭ viӋn cho phép chúng ta quҧn lý state trong mӝt ӭng dөng javascript. React quҧn lí các state trong mӛi components, ÿӇ chia sҿ state thì phҧi truyӅn tӯ component cha xuӕng component con hoһc sӱ dөng ÿӃn context vì vұy nó chӍ phù hӧp cho các ӭng dөng nhӓFytWVWDWH 1KѭQJ NKL ӭng dөng lӟn lên và có nhiӅu state thì viӋc sӱ dөng context sӁ khá vҩt vҧ, rҩt khó phát triӇn và bҧo trì. Redux UDÿӡi giúp chúng ta tҥo ra mӝt Store ÿӇ OѭX toàn bӝ data vào 1 QѫL và cung cҩp cho toàn bӝ ӭng dөng. Redux bao gӗm 3 thành phҫn chính: - Store: là QѫL OѭX tҩt cҧ các state cӫa ӭng dөng - Action: là các hành ÿӝng, events mà chúng ta tҥo ra ÿӇ thay ÿәi state - Reducer: là 1 function nhұQÿҫu vào là state và các mô tҧ vӅ event và dӵDWUrQÿy ÿӇ trҧ vӅ state tiӃp theo 6ѫ ÿӗ hoҥt ÿӝng cӫa Redux +uQK6˿ ÿͫ ho̹t ÿͱng Redux Sau khi mӝt action ÿѭӧc thӵc thi, dispatcher sӁ ÿѭӧc kích hoҥt và gӱi ÿӃn reducer mӝt action. Lúc này reducer thӵc hiӋQKjQKÿӝng dӵa vào action ÿѭӧc gӱi ÿӃn. Sau ÿó, ÿӗng thӡi lѭu lҥi giá trӏ cӫa state mӟi vào trong store và trҧ vӅ state mӟi ÿó. 6 2.1.5 Tích hӧp middleware Redux Thunk Trong hình ҧnh vӅ Vѫ ÿӗ hoҥW ÿӝng cӫa Redux, ta thҩy 1 chi tiӃW FKѭD ÿѭӧF ÿӅ cұp ÿӃn là Middleware và API. Hình trên mô tҧ nӃu dùng Redux làm kiӃQWU~FWD ÿӇ cho các middeware ÿҧm nhiӋm viӋc gӑi API HiӋn nay có 3 middleware thông dөng nhҩt là Redux-thunk, Redux-saga và Redux-observable. Cҧ ÿӅXFyѭXQKѭӧFÿLӇm riêng, tuy nhiên em chӑn Redux-thunk vì tính phә biӃn, ÿѫQ giҧn, dӉ sӱ dөng cӫa nó. 2.2 Các công nghӋ và WKѭ viӋn bên phía Server Mӝt ӭng dөng tӕt phҧi có phҫn máy chӫ tӕt, nhanh, chӏ u tҧi cao. NhiӅu công nghӋ lұp WUuQKSKtDVHUYHUUDÿӡi và mӛi thӭ ÿӅXFyѭXQKѭӧFÿLӇm riêng. Mөc tiêu cӫa các công nghӋ ÿó không chӍ giúp cho server chҥy nhanh hѫn mà còn ÿem lҥi trҧi nghiӋm tӕt KѫQ cho lұp trình viên, giúp lұp trình viên quҧn lí code dӉ KѫQ dӉ debug KѫQ dӉ tích hӧp WKrPWtQKQăQJPӟLKѫQ Trong sӕ các công nghӋ thông dөng vӅ EDFNHQG QKѭ PHP, Java, NodeJS hay Golang thì em chӑn NodeJS là công nghӋ chính cho project này. Sӱ dөng NodeJS sӁ giúp em ÿӥ vҩt vҧ vì không phҧi hӑc thêm ngôn ngӳ mӟi, vì cҧ React và NodeJS ÿӅu dùng Java Script. Nhѭng trên hӃt NodeJS nhanh và chӏu tҧi tӕt, ÿiӅu ÿó giúp cho nó là mӝt trong nhӳng lӵa chӑn hàng ÿҫu ÿӇ phát triӇn bên phía server. VӅ phía FѫVӣ dӳ liӋu, nhӳng CSDL NoSQL ÿDQJÿѭӧc sӱ dөng rӝQJUmLKѫQVRYӟi SQL, và phә biӃn nhҩt ÿy là MongoDB. Xây dӵng mӝt hӋ thӕng NodeJS thuҫn sӁ rҩt vҩt vҧ và tӕn thӡi gian nên em sӱ dөng mӝt framework cӫa NodeJS và ExpressJS là sӵ lӵa chӑn thích hӧp. 2.2.1 KiӃn trúc Restful API Có thӇ nói nguyên lí REST và cҩu trúc dӳ liӋu RESTful ÿѭӧc biӃWÿӃn rӝng rãi trong giӟi lұp trình web nói chung và lұp trình ӭng dөng nói riêng. Bҧn thân REST không phҧi là mӝt loҥi công nghӋ1yOjSKѭѫQJWKӭc tҥo API vӟi nguyên lý tә chӭc nhҩt ÿӏ nh. Nhӳng nguyên lý này nhҵm hѭӟng dүn lұp trình viên tҥo môi trѭӡng xӱ lý API request ÿѭӧc toàn diӋn RESTful API là mӝt tiêu chuҭn dùng trong viӋc thiӃt kӃ API cho các ӭng dөng web (thiӃt kӃ Web services) ÿӇ tiӋn cho viӋc quҧn lý các resource. Nó chú trӑng vào tài nguyên hӋ thӕng (tӋSYăQ bҧn, ҧnh, âm thanh, video, hoһc dӳ liӋu ÿӝQJ«  bao gӗm các trҥng thái tài nguyên ÿѭӧc ÿӏ nh dҥng và ÿѭӧc truyӅn tҧi qua HTTP. 7
- Xem thêm -

Tài liệu liên quan