{"id":12333,"date":"2026-10-29T13:20:02","date_gmt":"2026-10-29T05:20:02","guid":{"rendered":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/"},"modified":"2026-10-29T13:29:23","modified_gmt":"2026-10-29T05:29:23","slug":"from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow","status":"publish","type":"post","link":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/","title":{"rendered":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm"},"content":{"rendered":"<h2 data-nodeid=\"28688\">Gi\u1edbi thi\u1ec7u<\/h2>\n<p data-nodeid=\"28689\">Trong k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i, kho\u1ea3ng c\u00e1ch gi\u1eefa thi\u1ebft k\u1ebf ki\u1ebfn tr\u00fac v\u00e0 t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt th\u01b0\u1eddng l\u00e0 n\u01a1i c\u00e1c d\u1ef1 \u00e1n m\u1ea5t \u0111\u00e0. C\u00e1c s\u01a1 \u0111\u1ed3 tr\u1edf th\u00e0nh \u1ea3nh ch\u1ee5p m\u00e0n h\u00ecnh l\u1ed7i th\u1eddi, t\u00e0i li\u1ec7u ng\u00e0y c\u00e0ng xa r\u1eddi th\u1ef1c t\u1ebf, v\u00e0 vi\u1ec7c \u0111\u00e0o t\u1ea1o nh\u00e2n vi\u00ean m\u1edbi tr\u1edf th\u00e0nh m\u1ed9t nhi\u1ec7m v\u1ee5 m\u1ec7t m\u1ecfi khi ph\u1ea3i gi\u1ea3i m\u00e3 c\u00e1c t\u00e0i s\u1ea3n k\u1ebf th\u1eeba.<\/p>\n<p data-nodeid=\"28690\">H\u1ec7 sinh th\u00e1i \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm gi\u1ea3i quy\u1ebft th\u00e1ch th\u1ee9c n\u00e0y b\u1eb1ng c\u00e1ch thay \u0111\u1ed5i c\u00e1ch c\u00e1c nh\u00f3m t\u1ea1o v\u00e0 duy tr\u00ec t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt. B\u1eb1ng c\u00e1ch k\u1ebft h\u1ee3p v\u1ebd s\u01a1 \u0111\u1ed3 theo l\u1ed1i h\u1ed9i tho\u1ea1i, m\u00f4 h\u00ecnh h\u00f3a C4 c\u00f3 c\u1ea5u tr\u00fac, quy tr\u00ecnh t\u00e0i s\u1ea3n t\u1eadp trung v\u00e0 t\u00e0i li\u1ec7u s\u1ed1ng th\u00e0nh m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c li\u1ec1n m\u1ea1ch duy nh\u1ea5t, n\u00f3 \u0111\u1ea3m b\u1ea3o r\u1eb1ng ki\u1ebfn tr\u00fac v\u00e0 t\u00e0i li\u1ec7u c\u1ee7a b\u1ea1n c\u00f9ng ph\u00e1t tri\u1ec3n nh\u01b0 m\u1ed9t ngu\u1ed3n s\u1ef1 th\u1eadt duy nh\u1ea5t.<\/p>\n<p><img alt=\"\" class=\"alignnone size-full wp-image-22363\" decoding=\"async\" height=\"1122\" loading=\"lazy\" sizes=\"auto, (max-width: 1402px) 100vw, 1402px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png 1402w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7-300x240.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7-1024x819.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7-768x615.png 768w\" width=\"1402\"\/><\/p>\n<p data-nodeid=\"28691\">H\u01b0\u1edbng d\u1eabn n\u00e0y cung c\u1ea5p m\u1ed9t quy tr\u00ecnh chi ti\u1ebft, t\u1eebng b\u01b0\u1edbc cho to\u00e0n b\u1ed9 quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y\u2014t\u1eeb giai \u0111o\u1ea1n brainstorming ban \u0111\u1ea7u v\u1edbi AI \u0111\u1ebfn vi\u1ec7c xu\u1ea5t b\u1ea3n t\u00e0i li\u1ec7u s\u1ed1ng t\u1ef1 c\u1eadp nh\u1eadt\u2014k\u00e8m theo nhi\u1ec1u v\u00ed d\u1ee5 PlantUML v\u00e0 c\u00e1c ph\u01b0\u01a1ng ph\u00e1p t\u1ed1t nh\u1ea5t.<\/p>\n<hr data-nodeid=\"28692\"\/>\n<h2 data-nodeid=\"28693\">Ph\u1ea7n 1: C\u00e1c Kh\u00e1i ni\u1ec7m Ch\u00ednh v\u00e0 T\u1ed5ng quan v\u1ec1 H\u1ec7 sinh th\u00e1i<\/h2>\n<h3 data-nodeid=\"28694\">B\u1ed1n Tr\u1ee5 c\u1ed9t<\/h3>\n<p data-nodeid=\"28695\">H\u1ec7 sinh th\u00e1i c\u1ee7a Visual Paradigm bao g\u1ed3m b\u1ed1n tr\u1ee5 c\u1ed9t AI li\u00ean k\u1ebft v\u1edbi nhau, c\u00f9ng ho\u1ea1t \u0111\u1ed9ng \u0111\u1ec3 t\u1ea1o ra m\u1ed9t quy tr\u00ecnh l\u00e0m vi\u1ec7c kh\u00e9p k\u00edn:<\/p>\n<p><img alt=\"\" class=\"alignnone size-full wp-image-22365\" decoding=\"async\" height=\"941\" loading=\"lazy\" sizes=\"auto, (max-width: 1672px) 100vw, 1672px\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492.png\" srcset=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492.png 1672w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492-300x169.png 300w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492-1024x576.png 1024w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492-768x432.png 768w, https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d89068492-1536x864.png 1536w\" width=\"1672\"\/><\/p>\n<table data-nodeid=\"28697\">\n<thead data-nodeid=\"28698\">\n<tr data-nodeid=\"28699\">\n<th data-nodeid=\"28701\"><strong data-nodeid=\"29387\">Tr\u1ee5 c\u1ed9t<\/strong><\/th>\n<th data-nodeid=\"28702\"><strong data-nodeid=\"29391\">M\u1ee5c \u0111\u00edch<\/strong><\/th>\n<th data-nodeid=\"28703\"><strong data-nodeid=\"29395\">Khi n\u00e0o s\u1eed d\u1ee5ng<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"28707\">\n<tr data-nodeid=\"28708\">\n<td data-nodeid=\"28709\"><strong data-nodeid=\"29399\">Chatbot M\u00f4 h\u00ecnh h\u00f3a Tr\u1ef1c quan AI<\/strong><\/td>\n<td data-nodeid=\"28710\">Tr\u1ee3 l\u00fd \u0111\u1ed3ng s\u00e1ng t\u1ea1o theo l\u1ed1i h\u1ed9i tho\u1ea1i; t\u1ea1o s\u01a1 \u0111\u1ed3 t\u1eeb ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean<\/td>\n<td data-nodeid=\"28711\">Brainstorming, t\u1ea1o m\u1eabu nhanh, kh\u1eafc ph\u1ee5c h\u1ed9i ch\u1ee9ng &#8220;t\u1edd gi\u1ea5y tr\u1eafng&#8221;<\/td>\n<\/tr>\n<tr data-nodeid=\"28712\">\n<td data-nodeid=\"28713\"><strong data-nodeid=\"29411\">\u1ee8ng d\u1ee5ng &amp; Studio AI (C4-PlantUML Studio)<\/strong><\/td>\n<td data-nodeid=\"28714\">M\u00f4 h\u00ecnh h\u00f3a c\u00f3 h\u01b0\u1edbng d\u1eabn, d\u1ef1a tr\u00ean ph\u01b0\u01a1ng ph\u00e1p v\u1edbi c\u00e1c tr\u1ee3 l\u00fd t\u1eebng b\u01b0\u1edbc<\/td>\n<td data-nodeid=\"28715\">Tinh ch\u1ec9nh c\u00f3 c\u1ea5u tr\u00fac, m\u00f4 h\u00ecnh h\u00f3a C4, tu\u00e2n th\u1ee7, \u0111\u00e0o t\u1ea1o nh\u00e2n vi\u00ean m\u1edbi<\/td>\n<\/tr>\n<tr data-nodeid=\"28716\">\n<td data-nodeid=\"28717\"><strong data-nodeid=\"29417\">OpenDocs<\/strong><\/td>\n<td data-nodeid=\"28718\">N\u1ec1n t\u1ea3ng qu\u1ea3n l\u00fd tri th\u1ee9c s\u1ed1ng v\u1edbi c\u00e1c s\u01a1 \u0111\u1ed3 tr\u1ef1c tuy\u1ebfn, c\u00f3 th\u1ec3 ch\u1ec9nh s\u1eeda<\/td>\n<td data-nodeid=\"28719\">T\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt, \u0111\u00e0o t\u1ea1o nh\u00e2n vi\u00ean m\u1edbi, b\u00e1o c\u00e1o cho c\u00e1c b\u00ean li\u00ean quan, wiki<\/td>\n<\/tr>\n<tr data-nodeid=\"28720\">\n<td data-nodeid=\"28721\"><strong data-nodeid=\"29423\">VP Desktop<\/strong><\/td>\n<td data-nodeid=\"28722\">M\u00f4 h\u00ecnh h\u00f3a ch\u00ednh x\u00e1c chuy\u00ean nghi\u1ec7p, x\u00e1c th\u1ef1c v\u00e0 k\u1ef9 thu\u1eadt m\u00e3 ngu\u1ed3n<\/td>\n<td data-nodeid=\"28723\">Ki\u1ebfn tr\u00fac doanh nghi\u1ec7p, x\u00e1c th\u1ef1c ng\u1eef ngh\u0129a, t\u1ea1o m\u00e3 ngu\u1ed3n, kh\u1ea3 n\u0103ng truy v\u1ebft<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"28724\">Quy tr\u00ecnh OpenDocs<\/h3>\n<p data-nodeid=\"28725\">Quy tr\u00ecnh \u0111\u00f3ng vai tr\u00f2 l\u00e0 trung t\u00e2m chuy\u1ec3n ti\u1ebfp trung t\u00e2m \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef an to\u00e0n tr\u00ean \u0111\u00e1m m\u00e2y, k\u1ebft n\u1ed1i t\u1ea5t c\u1ea3 n\u0103m m\u00f4i tr\u01b0\u1eddng th\u1ef1c thi trong h\u1ec7 sinh th\u00e1i Visual Paradigm. N\u00f3 cho ph\u00e9p c\u00e1c nh\u00f3m ph\u00e1t tr\u1ef1c ti\u1ebfp c\u00e1c t\u00e0i s\u1ea3n t\u1eeb nhi\u1ec1u ngu\u1ed3n tr\u1ef1c ti\u1ebfp v\u00e0o t\u00e0i li\u1ec7u k\u1ef9 thu\u1eadt th\u1ed1ng nh\u1ea5t m\u00e0 kh\u00f4ng c\u1ea7n chuy\u1ec3n t\u1ec7p th\u1ee7 c\u00f4ng ho\u1eb7c ch\u1ee5p m\u00e0n h\u00ecnh.<\/p>\n<p data-nodeid=\"28725\"><img alt=\"C\u00f4ng c\u1ee5 t\u1ea1o s\u01a1 \u0111\u1ed3 t\u01b0 duy AI gi\u1edd \u0111\u00e3 k\u1ebft n\u1ed1i v\u1edbi quy tr\u00ecnh | Visual Paradigm\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6aab4fe26afbe.png\"\/><\/p>\n<p data-nodeid=\"28726\"><strong data-nodeid=\"29432\">C\u00e1c \u0111\u1eb7c \u0111i\u1ec3m ch\u00ednh<\/strong>:<\/p>\n<ul data-nodeid=\"28727\">\n<li data-nodeid=\"28728\">\n<p data-nodeid=\"28729\"><strong data-nodeid=\"29437\">Kho l\u01b0u tr\u1eef l\u01b0u tr\u1eef tr\u00ean \u0111\u00e1m m\u00e2y<\/strong>: Truy c\u1eadp t\u00e0i s\u1ea3n t\u1eeb b\u1ea5t k\u1ef3 thi\u1ebft b\u1ecb n\u00e0o<\/p>\n<\/li>\n<li data-nodeid=\"28730\">\n<p data-nodeid=\"28731\"><strong data-nodeid=\"29442\">Nh\u1eadn bi\u1ebft phi\u00ean b\u1ea3n<\/strong>: Theo d\u00f5i t\u1ef1 \u0111\u1ed9ng c\u00e1c phi\u00ean b\u1ea3n k\u00e8m ghi ch\u00fa commit<\/p>\n<\/li>\n<li data-nodeid=\"28732\">\n<p data-nodeid=\"28733\"><strong data-nodeid=\"29447\">Kh\u1ea3 n\u0103ng ch\u1ec9nh s\u1eeda \u0111\u01b0\u1ee3c duy tr\u00ec<\/strong>: S\u01a1 \u0111\u1ed3 v\u1eabn \u0111\u01b0\u1ee3c li\u00ean k\u1ebft v\u1edbi m\u00f4 h\u00ecnh ngu\u1ed3n, kh\u00f4ng ph\u1ea3i l\u00e0 h\u00ecnh \u1ea3nh t\u0129nh<\/p>\n<\/li>\n<li data-nodeid=\"28734\">\n<p data-nodeid=\"28735\"><strong data-nodeid=\"29452\">Quy\u1ec1n truy c\u1eadp d\u1ef1a tr\u00ean vai tr\u00f2<\/strong>: C\u1ea5u h\u00ecnh quy\u1ec1n theo d\u1ef1 \u00e1n, nh\u00f3m ho\u1eb7c t\u00e0i s\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"28736\">\n<p data-nodeid=\"28737\"><strong data-nodeid=\"29457\">T\u00edch h\u1ee3p AI<\/strong>: H\u1ed7 tr\u1ee3 g\u1ed1c cho s\u01a1 \u0111\u1ed3 do AI t\u1ea1o ra v\u00e0 AI tinh ch\u1ec9nh<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"28738\"><strong data-nodeid=\"29462\">N\u0103m m\u00f4i tr\u01b0\u1eddng th\u1ef1c thi<\/strong>:<\/p>\n<table data-nodeid=\"28740\">\n<thead data-nodeid=\"28741\">\n<tr data-nodeid=\"28742\">\n<th data-nodeid=\"28744\"><strong data-nodeid=\"29466\">N\u1ec1n t\u1ea3ng<\/strong><\/th>\n<th data-nodeid=\"28745\"><strong data-nodeid=\"29470\">M\u00f4 h\u00ecnh h\u00f3a t\u1ef1 nhi\u00ean<\/strong><\/th>\n<th data-nodeid=\"28746\"><strong data-nodeid=\"29476\">V\u00f2ng \u0111\u1eddi &amp; Qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n<\/strong><\/th>\n<th data-nodeid=\"28747\"><strong data-nodeid=\"29480\">Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng l\u00fd t\u01b0\u1edfng<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"28752\">\n<tr data-nodeid=\"28753\">\n<td data-nodeid=\"28754\">1. Chatbot AI<\/td>\n<td data-nodeid=\"28755\">D\u1ef1a tr\u00ean m\u00e3 \/ D\u1ef1a tr\u00ean l\u1eddi nh\u1eafc<\/td>\n<td data-nodeid=\"28756\">\u1ea2nh ch\u1ee5p t\u0129nh<\/td>\n<td data-nodeid=\"28757\">\u0110\u1ed9ng n\u00e3o nhanh, t\u1ea1o s\u01a1 \u0111\u1ed3 t\u1eeb v\u0103n b\u1ea3n<\/td>\n<\/tr>\n<tr data-nodeid=\"28758\">\n<td data-nodeid=\"28759\">2. Tr\u00ecnh ch\u1ec9nh s\u1eeda tr\u1ef1c tuy\u1ebfn<\/td>\n<td data-nodeid=\"28760\">D\u1ef1a tr\u00ean b\u1ea3ng v\u1ebd tr\u1ef1c quan<\/td>\n<td data-nodeid=\"28761\">Theo d\u00f5i th\u1ee7 c\u00f4ng<\/td>\n<td data-nodeid=\"28762\">\u0110i\u1ec1u ch\u1ec9nh ki\u1ec3u d\u00e1ng, ch\u1ec9nh s\u1eeda c\u1ed9ng t\u00e1c d\u1ef1a tr\u00ean tr\u00ecnh duy\u1ec7t<\/td>\n<\/tr>\n<tr data-nodeid=\"28763\">\n<td data-nodeid=\"28764\">3. OpenDocs<\/td>\n<td data-nodeid=\"28765\">So\u1ea1n th\u1ea3o cho ng\u01b0\u1eddi d\u00f9ng cu\u1ed1i &amp; b\u1ea3n \u0111\u1ecba<\/td>\n<td data-nodeid=\"28766\">Ch\u00e8n li\u00ean k\u1ebft th\u1eddi gian th\u1ef1c<\/td>\n<td data-nodeid=\"28767\">T\u1ed5ng h\u1ee3p t\u00e0i li\u1ec7u cu\u1ed1i c\u00f9ng, tham chi\u1ebfu ch\u00e9o<\/td>\n<\/tr>\n<tr data-nodeid=\"28768\">\n<td data-nodeid=\"28769\">4. \u1ee8ng d\u1ee5ng m\u00e1y t\u00ednh \u0111\u1ec3 b\u00e0n<\/td>\n<td data-nodeid=\"28770\">D\u1ef1a tr\u00ean m\u00f4 h\u00ecnh &amp; \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c th\u1ef1c<\/td>\n<td data-nodeid=\"28771\">C\u00e1c phi\u00ean b\u1ea3n t\u1ef1 \u0111\u1ed9ng<\/td>\n<td data-nodeid=\"28772\">Ki\u1ebfn tr\u00fac doanh nghi\u1ec7p, m\u00f4 h\u00ecnh k\u1ef9 thu\u1eadt \u0111\u00e3 \u0111\u01b0\u1ee3c x\u00e1c th\u1ef1c<\/td>\n<\/tr>\n<tr data-nodeid=\"28773\">\n<td data-nodeid=\"28774\">5. \u1ee8ng d\u1ee5ng web (C4 Wizards)<\/td>\n<td data-nodeid=\"28775\">Tr\u00ecnh h\u01b0\u1edbng d\u1eabn d\u1ef1a tr\u00ean ng\u1eef c\u1ea3nh<\/td>\n<td data-nodeid=\"28776\">Ki\u1ebfn tr\u00fac c\u1ea5u tr\u00fac<\/td>\n<td data-nodeid=\"28777\">M\u00f4 h\u00ecnh h\u00f3a khung ph\u1ee9c t\u1ea1p, thi\u1ebft k\u1ebf c\u00f3 h\u01b0\u1edbng d\u1eabn t\u1eebng b\u01b0\u1edbc<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"28778\">M\u00f4 h\u00ecnh C4<\/h3>\n<p data-nodeid=\"28779\">M\u00f4 h\u00ecnh C4, do Simon Brown t\u1ea1o ra, l\u00e0 m\u1ed9t ph\u01b0\u01a1ng ph\u00e1p ti\u1ebfp c\u1eadn ph\u00e2n c\u1ea5p \u0111\u1ec3 tr\u1ef1c quan h\u00f3a ki\u1ebfn tr\u00fac ph\u1ea7n m\u1ec1m qua b\u1ed1n c\u1ea5p \u0111\u1ed9:<\/p>\n<p data-nodeid=\"28779\"><img decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_69faed56dfc7a.png\"\/><\/p>\n<table data-nodeid=\"28781\">\n<thead data-nodeid=\"28782\">\n<tr data-nodeid=\"28783\">\n<th data-nodeid=\"28785\"><strong data-nodeid=\"29523\">L\u1edbp<\/strong><\/th>\n<th data-nodeid=\"28786\"><strong data-nodeid=\"29527\">M\u1ee5c \u0111\u00edch<\/strong><\/th>\n<th data-nodeid=\"28787\"><strong data-nodeid=\"29531\">V\u00ed d\u1ee5<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"28791\">\n<tr data-nodeid=\"28792\">\n<td data-nodeid=\"28793\"><strong data-nodeid=\"29535\">Ng\u1eef c\u1ea3nh<\/strong><\/td>\n<td data-nodeid=\"28794\">Hi\u1ec3n th\u1ecb h\u1ec7 th\u1ed1ng trong m\u00f4i tr\u01b0\u1eddng c\u1ee7a n\u00f3, bao g\u1ed3m ng\u01b0\u1eddi d\u00f9ng v\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng b\u00ean ngo\u00e0i<\/td>\n<td data-nodeid=\"28795\">\u201cN\u1ec1n t\u1ea3ng th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed t\u01b0\u01a1ng t\u00e1c v\u1edbi ng\u01b0\u1eddi d\u00f9ng, c\u1ed5ng thanh to\u00e1n v\u00e0 h\u1ec7 th\u1ed1ng kho\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"28796\">\n<td data-nodeid=\"28797\"><strong data-nodeid=\"29543\">Th\u00e0nh ph\u1ea7n ch\u1ee9a<\/strong><\/td>\n<td data-nodeid=\"28798\">Chia h\u1ec7 th\u1ed1ng th\u00e0nh c\u00e1c \u0111\u01a1n v\u1ecb c\u00f3 th\u1ec3 tri\u1ec3n khai (\u1ee9ng d\u1ee5ng, c\u01a1 s\u1edf d\u1eef li\u1ec7u, vi d\u1ecbch v\u1ee5)<\/td>\n<td data-nodeid=\"28799\">\u201cGiao di\u1ec7n tr\u01b0\u1edbc (React), Giao di\u1ec7n sau (Node.js), C\u01a1 s\u1edf d\u1eef li\u1ec7u (PostgreSQL)\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"28800\">\n<td data-nodeid=\"28801\"><strong data-nodeid=\"29551\">Th\u00e0nh ph\u1ea7n<\/strong><\/td>\n<td data-nodeid=\"28802\">Chi ti\u1ebft c\u00e1c m\u00f4-\u0111un n\u1ed9i b\u1ed9 v\u00e0 s\u1ef1 t\u01b0\u01a1ng t\u00e1c c\u1ee7a ch\u00fang<\/td>\n<td data-nodeid=\"28803\">\u201cD\u1ecbch v\u1ee5 ng\u01b0\u1eddi d\u00f9ng, D\u1ecbch v\u1ee5 \u0111\u01a1n h\u00e0ng, B\u1ed9 x\u1eed l\u00fd thanh to\u00e1n\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"28804\">\n<td data-nodeid=\"28805\"><strong data-nodeid=\"29560\">M\u00e3<\/strong> (T\u00f9y ch\u1ecdn)<\/td>\n<td data-nodeid=\"28806\">\u0110i s\u00e2u v\u00e0o chi ti\u1ebft c\u1ea5p l\u1edbp<\/td>\n<td data-nodeid=\"28807\">\u201cUserRepository, OrderController\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"28808\">C\u00e1c ch\u1ebf \u0111\u1ed9 xem \u0111\u1ed9ng (Chu\u1ed7i, Tri\u1ec3n khai) b\u1ed5 sung cho c\u1ea5u tr\u00fac t\u0129nh, th\u1ec3 hi\u1ec7n h\u00e0nh vi th\u1eddi gian ch\u1ea1y v\u00e0 c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng.<\/p>\n<hr data-nodeid=\"28809\"\/>\n<h2 data-nodeid=\"28810\">Ph\u1ea7n 2: H\u01b0\u1edbng d\u1eabn quy tr\u00ecnh t\u1eebng b\u01b0\u1edbc<\/h2>\n<h3 data-nodeid=\"28811\">B\u01b0\u1edbc 1: \u00dd t\u01b0\u1edfng h\u00f3a v\u1edbi Tr\u1ee3 l\u00fd tr\u00f2 chuy\u1ec7n AI<\/h3>\n<p data-nodeid=\"28812\"><strong data-nodeid=\"29572\">M\u1ee5c ti\u00eau<\/strong>: Bi\u1ebfn m\u1ed9t \u00fd t\u01b0\u1edfng m\u01a1 h\u1ed3 th\u00e0nh m\u1ed9t b\u1ea3n m\u1eabu tr\u1ef1c quan ch\u1ec9 trong v\u00e0i gi\u00e2y.<\/p>\n<p data-nodeid=\"28813\"><strong data-nodeid=\"29577\">Quy tr\u00ecnh<\/strong>:<\/p>\n<ol data-nodeid=\"28814\">\n<li data-nodeid=\"28815\">\n<p data-nodeid=\"28816\"><strong data-nodeid=\"29585\">Truy c\u1eadp Tr\u1ee3 l\u00fd tr\u00f2 chuy\u1ec7n AI<\/strong>th\u00f4ng qua kh\u00f4ng gian l\u00e0m vi\u1ec7c Visual Paradigm c\u1ee7a b\u1ea1n ho\u1eb7c <a data-nodeid=\"29584\" href=\"https:\/\/chat.visual-paradigm.com\/\">chat.visual-paradigm.com<\/a><\/p>\n<\/li>\n<li data-nodeid=\"28817\">\n<p data-nodeid=\"28818\"><strong data-nodeid=\"29590\">G\u1ee3i \u00fd AI b\u1eb1ng ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean<\/strong> m\u00f4 t\u1ea3 h\u1ec7 th\u1ed1ng ho\u1eb7c k\u1ecbch b\u1ea3n c\u1ee7a b\u1ea1n:<\/p>\n<pre class=\"lang-text\" data-nodeid=\"28819\"><code data-language=\"text\">\"T\u1ea1o s\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng C4 cho n\u1ec1n t\u1ea3ng th\u01b0\u01a1ng m\u1ea1i \u0111i\u1ec7n t\u1eed\"\r\n\"T\u1ea1o s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 cho lu\u1ed3ng x\u00e1c th\u1ef1c vi d\u1ecbch v\u1ee5 c\u1ee7a ch\u00fang ta\"\r\n\"Cho t\u00f4i xem s\u01a1 \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng cho \u1ee9ng d\u1ee5ng giao \u0111\u1ed3 \u0103n\"\r\n<\/code><\/pre>\n<\/li>\n<li data-nodeid=\"28820\">\n<p data-nodeid=\"28821\"><strong data-nodeid=\"29595\">Xem x\u00e9t v\u00e0 tinh ch\u1ec9nh l\u1eb7p l\u1ea1i<\/strong> s\u1eed d\u1ee5ng c\u00e1c l\u1ec7nh ti\u1ebfp theo:<\/p>\n<ul data-nodeid=\"28822\">\n<li data-nodeid=\"28823\">\n<p data-nodeid=\"28824\">\u201cTh\u00eam m\u1ed9t vai tr\u00f2 qu\u1ea3n tr\u1ecb vi\u00ean c\u00f3 th\u1ec3 \u0111\u1eb7t l\u1ea1i m\u1eadt kh\u1ea9u\u201d<\/p>\n<\/li>\n<li data-nodeid=\"28825\">\n<p data-nodeid=\"28826\">\u201cCh\u00e8n v\u00f2ng l\u1eb7p th\u1eed l\u1ea1i n\u1ebfu x\u00e1c th\u1ef1c OTP th\u1ea5t b\u1ea1i (t\u1ed1i \u0111a 3 l\u1ea7n th\u1eed)\u201d<\/p>\n<\/li>\n<li data-nodeid=\"28827\">\n<p data-nodeid=\"28828\">\u201cHi\u1ec3n th\u1ecb c\u00e1c th\u00f4ng b\u00e1o song song: sau khi thanh to\u00e1n th\u00e0nh c\u00f4ng, th\u00f4ng b\u00e1o cho kh\u00e1ch h\u00e0ng v\u00e0 c\u1eadp nh\u1eadt kho h\u00e0ng \u0111\u1ed3ng th\u1eddi\u201d<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28829\">\n<p data-nodeid=\"28830\"><strong data-nodeid=\"29612\">Xu\u1ea5t sang Pipeline<\/strong>: Nh\u1ea5p v\u00e0o bi\u1ec3u t\u01b0\u1ee3ng Xu\u1ea5t \u2192 Ch\u1ecdn <strong data-nodeid=\"29613\">G\u1eedi \u0111\u1ebfn Pipeline OpenDocs<\/strong><\/p>\n<\/li>\n<li data-nodeid=\"28831\">\n<p data-nodeid=\"28832\"><strong data-nodeid=\"29622\">Th\u00eam si\u00eau d\u1eef li\u1ec7u<\/strong>: Bao g\u1ed3m c\u00e1c ch\u00fa th\u00edch m\u00f4 t\u1ea3 nh\u01b0 \u201cB\u1ea3n nh\u00e1p lu\u1ed3ng x\u00e1c th\u1ef1c c\u01a1 s\u1edf \u2013 Q2 2026\u201d \u0111\u1ec3 \u0111\u1ecbnh danh phi\u00ean b\u1ea3n<\/p>\n<\/li>\n<\/ol>\n<blockquote data-nodeid=\"28833\">\n<p data-nodeid=\"28834\"><strong data-nodeid=\"29627\">\ud83d\udca1 M\u1eb9o chuy\u00ean gia<\/strong>: S\u1eed d\u1ee5ng Chatbot \u0111\u1ec3 l\u1eb7p l\u1ea1i nhanh ch\u00f3ng c\u00e1c kh\u00e1i ni\u1ec7m \u1edf giai \u0111o\u1ea1n \u0111\u1ea7u. Khi s\u01a1 \u0111\u1ed3 \u0111\u00e3 \u1ed5n \u0111\u1ecbnh, h\u00e3y di chuy\u1ec3n n\u00f3 sang phi\u00ean b\u1ea3n Desktop \u0111\u1ec3 x\u00e1c th\u1ef1c ng\u1eef ngh\u0129a v\u00e0 \u0111\u1ed3ng b\u1ed9 h\u00f3a t\u1ef1 \u0111\u1ed9ng.<\/p>\n<\/blockquote>\n<h4 data-nodeid=\"28835\">V\u00ed d\u1ee5 PlantUML cho s\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh C4<\/h4>\n<p data-nodeid=\"28836\"><img alt=\"\" data-nodeid=\"29630\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc80f5c2c1.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLFBRjim4BmRy3-mFhc0RLrwwYcf6YG16bI8qdD0Ksk9C1ygkPJZl--kB1jqu9wqud9cTsQakuWoOB9cFlkYdJAf0T4Xzl5xKGHvsBGQkxHD4OBo3i7XHdbRz4Ow1gqZDaPlY_BRkkAZFo-_2YiZGg2Zzv8H7xZfH_hv33KQ4FMH-bPCJV5JopP8AzRYOLrwQsaG22B3dG-MKHM4wDrIfOYUkYknAAToGNNT-Rwd6s8R_25grmhf6j6de3evllR1DqbXN7ozKCd6QaVOUtxgY46Y7ybUf9Cjn0jc9Nne2BCQITc4aMO-EsbOWfeM9koDxPdojpFQWGY0KXiHJzexeZFPSa99bCQtAn5P3dSKfN8zlfT7I_vVRV3-y87BgK73gbCb7YN2GHvvVXMyWXX9b0hGQ1uLhhao9kq6ElNXIC3dSpq5blj3zgkzC320YUDkksHssXZc_4GPEzrFszLKZjfg28DMm8nFx0GnZa950qOFG2EPas9HUxf-qliA9li4SkD_SF109aMGb3fNK_nPaap255FqEVx_eLy2PsG6oGo_k7jsL0nQZiBUtghw1ZQtkEn0xMEH-eRocbnbx7trV0EPEVaAVnD46dO-or3psHsuXlwuVm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLFBRjim4BmRy3-mFhc0RLrwwYcf6YG16bI8qdD0Ksk9C1ygkPJZl--kB1jqu9wqud9cTsQakuWoOB9cFlkYdJAf0T4Xzl5xKGHvsBGQkxHD4OBo3i7XHdbRz4Ow1gqZDaPlY_BRkkAZFo-_2YiZGg2Zzv8H7xZfH_hv33KQ4FMH-bPCJV5JopP8AzRYOLrwQsaG22B3dG-MKHM4wDrIfOYUkYknAAToGNNT-Rwd6s8R_25grmhf6j6de3evllR1DqbXN7ozKCd6QaVOUtxgY46Y7ybUf9Cjn0jc9Nne2BCQITc4aMO-EsbOWfeM9koDxPdojpFQWGY0KXiHJzexeZFPSa99bCQtAn5P3dSKfN8zlfT7I_vVRV3-y87BgK73gbCb7YN2GHvvVXMyWXX9b0hGQ1uLhhao9kq6ElNXIC3dSpq5blj3zgkzC320YUDkksHssXZc_4GPEzrFszLKZjfg28DMm8nFx0GnZa950qOFG2EPas9HUxf-qliA9li4SkD_SF109aMGb3fNK_nPaap255FqEVx_eLy2PsG6oGo_k7jsL0nQZiBUtghw1ZQtkEn0xMEH-eRocbnbx7trV0EPEVaAVnD46dO-or3psHsuXlwuVm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28837\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Context.puml\r\n\r\ntitle System Context Diagram - E-Commerce Platform\r\n\r\nPerson(customer, \"Customer\", \"Shoppers browsing and purchasing products\")\r\nPerson(admin, \"Administrator\", \"Manages products, orders, and users\")\r\n\r\nSystem(ecommerce, \"E-Commerce Platform\", \"Online retail system handling product catalog, shopping cart, orders, and payments\")\r\n\r\nSystem_Ext(payment, \"Payment Gateway\", \"Processes credit card payments\")\r\nSystem_Ext(inventory, \"Inventory System\", \"Manages stock levels and fulfillment\")\r\nSystem_Ext(shipment, \"Shipping Service\", \"Handles order delivery and tracking\")\r\n\r\nRel(customer, ecommerce, \"Browses, searches, purchases products\")\r\nRel(admin, ecommerce, \"Manages products, orders, users\")\r\nRel(ecommerce, payment, \"Processes payments via\", \"HTTPS\")\r\nRel(ecommerce, inventory, \"Checks\/updates stock\", \"API\")\r\nRel(ecommerce, shipment, \"Requests shipment\", \"API\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLFBRjim4BmRy3-mFhc0RLrwwYcf6YG16bI8qdD0Ksk9C1ygkPJZl--kB1jqu9wqud9cTsQakuWoOB9cFlkYdJAf0T4Xzl5xKGHvsBGQkxHD4OBo3i7XHdbRz4Ow1gqZDaPlY_BRkkAZFo-_2YiZGg2Zzv8H7xZfH_hv33KQ4FMH-bPCJV5JopP8AzRYOLrwQsaG22B3dG-MKHM4wDrIfOYUkYknAAToGNNT-Rwd6s8R_25grmhf6j6de3evllR1DqbXN7ozKCd6QaVOUtxgY46Y7ybUf9Cjn0jc9Nne2BCQITc4aMO-EsbOWfeM9koDxPdojpFQWGY0KXiHJzexeZFPSa99bCQtAn5P3dSKfN8zlfT7I_vVRV3-y87BgK73gbCb7YN2GHvvVXMyWXX9b0hGQ1uLhhao9kq6ElNXIC3dSpq5blj3zgkzC320YUDkksHssXZc_4GPEzrFszLKZjfg28DMm8nFx0GnZa950qOFG2EPas9HUxf-qliA9li4SkD_SF109aMGb3fNK_nPaap255FqEVx_eLy2PsG6oGo_k7jsL0nQZiBUtghw1ZQtkEn0xMEH-eRocbnbx7trV0EPEVaAVnD46dO-or3psHsuXlwuVm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLFBRjim4BmRy3-mFhc0RLrwwYcf6YG16bI8qdD0Ksk9C1ygkPJZl--kB1jqu9wqud9cTsQakuWoOB9cFlkYdJAf0T4Xzl5xKGHvsBGQkxHD4OBo3i7XHdbRz4Ow1gqZDaPlY_BRkkAZFo-_2YiZGg2Zzv8H7xZfH_hv33KQ4FMH-bPCJV5JopP8AzRYOLrwQsaG22B3dG-MKHM4wDrIfOYUkYknAAToGNNT-Rwd6s8R_25grmhf6j6de3evllR1DqbXN7ozKCd6QaVOUtxgY46Y7ybUf9Cjn0jc9Nne2BCQITc4aMO-EsbOWfeM9koDxPdojpFQWGY0KXiHJzexeZFPSa99bCQtAn5P3dSKfN8zlfT7I_vVRV3-y87BgK73gbCb7YN2GHvvVXMyWXX9b0hGQ1uLhhao9kq6ElNXIC3dSpq5blj3zgkzC320YUDkksHssXZc_4GPEzrFszLKZjfg28DMm8nFx0GnZa950qOFG2EPas9HUxf-qliA9li4SkD_SF109aMGb3fNK_nPaap255FqEVx_eLy2PsG6oGo_k7jsL0nQZiBUtghw1ZQtkEn0xMEH-eRocbnbx7trV0EPEVaAVnD46dO-or3psHsuXlwuVm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28838\"><a data-nodeid=\"29633\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLFBRjim4BmRy3-mFhc0RLrwwYcf6YG16bI8qdD0Ksk9C1ygkPJZl--kB1jqu9wqud9cTsQakuWoOB9cFlkYdJAf0T4Xzl5xKGHvsBGQkxHD4OBo3i7XHdbRz4Ow1gqZDaPlY_BRkkAZFo-_2YiZGg2Zzv8H7xZfH_hv33KQ4FMH-bPCJV5JopP8AzRYOLrwQsaG22B3dG-MKHM4wDrIfOYUkYknAAToGNNT-Rwd6s8R_25grmhf6j6de3evllR1DqbXN7ozKCd6QaVOUtxgY46Y7ybUf9Cjn0jc9Nne2BCQITc4aMO-EsbOWfeM9koDxPdojpFQWGY0KXiHJzexeZFPSa99bCQtAn5P3dSKfN8zlfT7I_vVRV3-y87BgK73gbCb7YN2GHvvVXMyWXX9b0hGQ1uLhhao9kq6ElNXIC3dSpq5blj3zgkzC320YUDkksHssXZc_4GPEzrFszLKZjfg28DMm8nFx0GnZa950qOFG2EPas9HUxf-qliA9li4SkD_SF109aMGb3fNK_nPaap255FqEVx_eLy2PsG6oGo_k7jsL0nQZiBUtghw1ZQtkEn0xMEH-eRocbnbx7trV0EPEVaAVnD46dO-or3psHsuXlwuVm00\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h4 data-nodeid=\"28839\">V\u00ed d\u1ee5 PlantUML cho s\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1<\/h4>\n<p data-nodeid=\"28840\"><img alt=\"\" data-nodeid=\"29636\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc84cf2db8.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLHDRzim3BqRy7yWSagmvTBUSXZQ8Uqme4E7EjlEj4N4mcJ9a-Xu_VUZv8yuxT1D1uEc7lcU7mdV14RFNMFoZ3KRWe9-TMGhWht6eyS6jl0ja8S7TzGMUiqr77gtlSUAdOVRZckoh2jaxMoUvTcGNyMQ5M20Je8yQuL4Lxf5ox3wGILyzAwV8EKGlq1TjXPT_gGhIWKeLo_GnPS2FY5JZyy94fgGPmePImmqo87z-9e0gengephOVfWaxE3EicGgJofoemdfY_H9MfzrZa4iZ59sInje7NjQREWzj1X2xxpQB9eCskCpbgjo1z_HQ1Ml_iuQXQeIjZDPmakEBY1IOHYkxc_b4x0q90YGCn697pjuYhCD38-7h-Fjr27P5JCI9AekkL6GLMVqWd76TnS-3ExD1IE9IOoJRXZFe6pfVT5L5OK0x-3WVf8zGsU_Ps5FfBIdYe6TZ3NKfKC_zYOZ0uzyd-qfCiAwmTzm3SXCJSjXyvQ4E-zbUzTJgRJPl2MZg5q_r9nHrea_NXzhZZBPFuDnhWNTj8OQ6Uyq6R4spvBOEBIz3g-czazl_jkNn7MnCiCQBXBpSjy8MFu7Vm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLHDRzim3BqRy7yWSagmvTBUSXZQ8Uqme4E7EjlEj4N4mcJ9a-Xu_VUZv8yuxT1D1uEc7lcU7mdV14RFNMFoZ3KRWe9-TMGhWht6eyS6jl0ja8S7TzGMUiqr77gtlSUAdOVRZckoh2jaxMoUvTcGNyMQ5M20Je8yQuL4Lxf5ox3wGILyzAwV8EKGlq1TjXPT_gGhIWKeLo_GnPS2FY5JZyy94fgGPmePImmqo87z-9e0gengephOVfWaxE3EicGgJofoemdfY_H9MfzrZa4iZ59sInje7NjQREWzj1X2xxpQB9eCskCpbgjo1z_HQ1Ml_iuQXQeIjZDPmakEBY1IOHYkxc_b4x0q90YGCn697pjuYhCD38-7h-Fjr27P5JCI9AekkL6GLMVqWd76TnS-3ExD1IE9IOoJRXZFe6pfVT5L5OK0x-3WVf8zGsU_Ps5FfBIdYe6TZ3NKfKC_zYOZ0uzyd-qfCiAwmTzm3SXCJSjXyvQ4E-zbUzTJgRJPl2MZg5q_r9nHrea_NXzhZZBPFuDnhWNTj8OQ6Uyq6R4spvBOEBIz3g-czazl_jkNn7MnCiCQBXBpSjy8MFu7Vm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28841\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle Sequence Diagram - User Login with Two-Factor Authentication\r\n\r\nactor \"User\" as user\r\nparticipant \"Web Browser\" as browser\r\nparticipant \"Authentication Service\" as auth\r\nparticipant \"SMS Gateway\" as sms\r\ndatabase \"User Database\" as db\r\n\r\nuser -&gt; browser: Enter credentials\r\nactivate browser\r\nbrowser -&gt; auth: Authenticate(username, password)\r\nactivate auth\r\nauth -&gt; db: Validate credentials\r\nactivate db\r\ndb --&gt; auth: Valid\r\ndeactivate db\r\n\r\nalt 2FA Enabled\r\n    auth -&gt; sms: Request OTP\r\n    activate sms\r\n    sms --&gt; user: Send OTP\r\n    deactivate sms\r\n    user -&gt; auth: Enter OTP\r\n    \r\n    alt OTP Valid\r\n        auth --&gt; browser: Success + Token\r\n        browser --&gt; user: Redirect to Dashboard\r\n    else OTP Invalid (max 3 attempts)\r\n        auth --&gt; browser: Error (Invalid OTP)\r\n        browser --&gt; user: Show Error\r\n        note right: Retry loop implemented\r\n    end\r\nelse 2FA Disabled\r\n    auth --&gt; browser: Success + Token\r\n    browser --&gt; user: Redirect to Dashboard\r\nend\r\n\r\ndeactivate auth\r\ndeactivate browser\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLHDRzim3BqRy7yWSagmvTBUSXZQ8Uqme4E7EjlEj4N4mcJ9a-Xu_VUZv8yuxT1D1uEc7lcU7mdV14RFNMFoZ3KRWe9-TMGhWht6eyS6jl0ja8S7TzGMUiqr77gtlSUAdOVRZckoh2jaxMoUvTcGNyMQ5M20Je8yQuL4Lxf5ox3wGILyzAwV8EKGlq1TjXPT_gGhIWKeLo_GnPS2FY5JZyy94fgGPmePImmqo87z-9e0gengephOVfWaxE3EicGgJofoemdfY_H9MfzrZa4iZ59sInje7NjQREWzj1X2xxpQB9eCskCpbgjo1z_HQ1Ml_iuQXQeIjZDPmakEBY1IOHYkxc_b4x0q90YGCn697pjuYhCD38-7h-Fjr27P5JCI9AekkL6GLMVqWd76TnS-3ExD1IE9IOoJRXZFe6pfVT5L5OK0x-3WVf8zGsU_Ps5FfBIdYe6TZ3NKfKC_zYOZ0uzyd-qfCiAwmTzm3SXCJSjXyvQ4E-zbUzTJgRJPl2MZg5q_r9nHrea_NXzhZZBPFuDnhWNTj8OQ6Uyq6R4spvBOEBIz3g-czazl_jkNn7MnCiCQBXBpSjy8MFu7Vm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLHDRzim3BqRy7yWSagmvTBUSXZQ8Uqme4E7EjlEj4N4mcJ9a-Xu_VUZv8yuxT1D1uEc7lcU7mdV14RFNMFoZ3KRWe9-TMGhWht6eyS6jl0ja8S7TzGMUiqr77gtlSUAdOVRZckoh2jaxMoUvTcGNyMQ5M20Je8yQuL4Lxf5ox3wGILyzAwV8EKGlq1TjXPT_gGhIWKeLo_GnPS2FY5JZyy94fgGPmePImmqo87z-9e0gengephOVfWaxE3EicGgJofoemdfY_H9MfzrZa4iZ59sInje7NjQREWzj1X2xxpQB9eCskCpbgjo1z_HQ1Ml_iuQXQeIjZDPmakEBY1IOHYkxc_b4x0q90YGCn697pjuYhCD38-7h-Fjr27P5JCI9AekkL6GLMVqWd76TnS-3ExD1IE9IOoJRXZFe6pfVT5L5OK0x-3WVf8zGsU_Ps5FfBIdYe6TZ3NKfKC_zYOZ0uzyd-qfCiAwmTzm3SXCJSjXyvQ4E-zbUzTJgRJPl2MZg5q_r9nHrea_NXzhZZBPFuDnhWNTj8OQ6Uyq6R4spvBOEBIz3g-czazl_jkNn7MnCiCQBXBpSjy8MFu7Vm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28842\"><a data-nodeid=\"29639\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLHDRzim3BqRy7yWSagmvTBUSXZQ8Uqme4E7EjlEj4N4mcJ9a-Xu_VUZv8yuxT1D1uEc7lcU7mdV14RFNMFoZ3KRWe9-TMGhWht6eyS6jl0ja8S7TzGMUiqr77gtlSUAdOVRZckoh2jaxMoUvTcGNyMQ5M20Je8yQuL4Lxf5ox3wGILyzAwV8EKGlq1TjXPT_gGhIWKeLo_GnPS2FY5JZyy94fgGPmePImmqo87z-9e0gengephOVfWaxE3EicGgJofoemdfY_H9MfzrZa4iZ59sInje7NjQREWzj1X2xxpQB9eCskCpbgjo1z_HQ1Ml_iuQXQeIjZDPmakEBY1IOHYkxc_b4x0q90YGCn697pjuYhCD38-7h-Fjr27P5JCI9AekkL6GLMVqWd76TnS-3ExD1IE9IOoJRXZFe6pfVT5L5OK0x-3WVf8zGsU_Ps5FfBIdYe6TZ3NKfKC_zYOZ0uzyd-qfCiAwmTzm3SXCJSjXyvQ4E-zbUzTJgRJPl2MZg5q_r9nHrea_NXzhZZBPFuDnhWNTj8OQ6Uyq6R4spvBOEBIz3g-czazl_jkNn7MnCiCQBXBpSjy8MFu7Vm00\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<hr data-nodeid=\"28843\"\/>\n<h3 data-nodeid=\"28844\">B\u01b0\u1edbc 2: Tinh ch\u1ec9nh c\u00f3 c\u1ea5u tr\u00fac v\u1edbi C4-PlantUML Studio<\/h3>\n<p data-nodeid=\"28845\"><strong data-nodeid=\"29645\">M\u1ee5c ti\u00eau<\/strong>: Ph\u00e1t tri\u1ec3n ph\u00e1c th\u1ea3o do AI t\u1ea1o th\u00e0nh m\u00f4 h\u00ecnh C4 ho\u00e0n ch\u1ec9nh, tu\u00e2n th\u1ee7 c\u00e1c ti\u00eau chu\u1ea9n.<\/p>\n<p data-nodeid=\"28846\"><strong data-nodeid=\"29650\">Quy tr\u00ecnh l\u00e0m vi\u1ec7c<\/strong>:<\/p>\n<ol data-nodeid=\"28847\">\n<li data-nodeid=\"28848\">\n<p data-nodeid=\"28849\"><strong data-nodeid=\"29655\">Kh\u1edfi \u0111\u1ed9ng H\u01b0\u1edbng d\u1eabn Ki\u1ebfn tr\u00fac C4<\/strong> t\u1eeb menu \u1ee8ng d\u1ee5ng Web<\/p>\n<\/li>\n<li data-nodeid=\"28850\">\n<p data-nodeid=\"28851\"><strong data-nodeid=\"29660\">X\u00e1c \u0111\u1ecbnh tuy\u00ean b\u1ed1 v\u1ea5n \u0111\u1ec1<\/strong> \u2013 S\u1eed d\u1ee5ng Tr\u1ee3 l\u00fd AI \u0111\u1ec3 t\u1ea1o m\u00f4 t\u1ea3 \u0111\u1ea7y \u0111\u1ee7:<\/p>\n<ul data-nodeid=\"28852\">\n<li data-nodeid=\"28853\">\n<p data-nodeid=\"28854\">T\u00ean d\u1ef1 \u00e1n<\/p>\n<\/li>\n<li data-nodeid=\"28855\">\n<p data-nodeid=\"28856\">M\u1ee5c \u0111\u00edch c\u1ee7a h\u1ec7 th\u1ed1ng<\/p>\n<\/li>\n<li data-nodeid=\"28857\">\n<p data-nodeid=\"28858\">Ng\u01b0\u1eddi d\u00f9ng ch\u00ednh<\/p>\n<\/li>\n<li data-nodeid=\"28859\">\n<p data-nodeid=\"28860\">C\u00e1c t\u00edch h\u1ee3p ch\u00ednh<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28861\">\n<p data-nodeid=\"28862\"><strong data-nodeid=\"29669\">T\u1ea1o t\u1eebng l\u1edbp C4 theo t\u1eebng b\u01b0\u1edbc<\/strong>:<\/p>\n<ul data-nodeid=\"28863\">\n<li data-nodeid=\"28864\">\n<p data-nodeid=\"28865\"><strong data-nodeid=\"29674\">M\u1ee9c 1 \u2013 B\u1ed1i c\u1ea3nh h\u1ec7 th\u1ed1ng<\/strong>: Nh\u1eadp ranh gi\u1edbi h\u1ec7 th\u1ed1ng, ng\u01b0\u1eddi d\u00f9ng b\u00ean ngo\u00e0i v\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ee5 thu\u1ed9c<\/p>\n<\/li>\n<li data-nodeid=\"28866\">\n<p data-nodeid=\"28867\"><strong data-nodeid=\"29679\">M\u1ee9c 2 \u2013 C\u00e1c th\u00e0nh ph\u1ea7n ch\u1ee9a<\/strong>: C\u1ea5u h\u00ecnh c\u00e1c \u1ee9ng d\u1ee5ng c\u00f3 th\u1ec3 tri\u1ec3n khai, c\u01a1 s\u1edf d\u1eef li\u1ec7u v\u00e0 d\u1ecbch v\u1ee5 b\u00ean ngo\u00e0i<\/p>\n<\/li>\n<li data-nodeid=\"28868\">\n<p data-nodeid=\"28869\"><strong data-nodeid=\"29684\">M\u1ee9c 3 \u2013 C\u00e1c th\u00e0nh ph\u1ea7n<\/strong>: Tinh ch\u1ec9nh c\u00e1c m\u00f4-\u0111un m\u00e3 n\u1ed9i b\u1ed9 v\u00e0 c\u00e1c t\u01b0\u01a1ng t\u00e1c c\u1ee7a ch\u00fang<\/p>\n<\/li>\n<li data-nodeid=\"28870\">\n<p data-nodeid=\"28871\"><strong data-nodeid=\"29689\">M\u1ee9c 4 \u2013 M\u00e3<\/strong> (t\u00f9y ch\u1ecdn): \u00c1nh x\u1ea1 sang c\u00e1c c\u1ea5u tr\u00fac m\u00e3 th\u1ef1c t\u1ebf<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28872\">\n<p data-nodeid=\"28873\"><strong data-nodeid=\"29694\">Th\u00eam c\u00e1c ch\u1ebf \u0111\u1ed9 xem h\u1ed7 tr\u1ee3<\/strong>:<\/p>\n<ul data-nodeid=\"28874\">\n<li data-nodeid=\"28875\">\n<p data-nodeid=\"28876\"><strong data-nodeid=\"29699\">S\u01a1 \u0111\u1ed3 \u0111\u1ed9ng\/Chu\u1ed7i<\/strong>: Hi\u1ec3n th\u1ecb c\u00e1c t\u01b0\u01a1ng t\u00e1c khi ch\u1ea1y<\/p>\n<\/li>\n<li data-nodeid=\"28877\">\n<p data-nodeid=\"28878\"><strong data-nodeid=\"29704\">S\u01a1 \u0111\u1ed3 tri\u1ec3n khai<\/strong>: \u00c1nh x\u1ea1 ph\u1ea7n m\u1ec1m sang c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng<\/p>\n<\/li>\n<li data-nodeid=\"28879\">\n<p data-nodeid=\"28880\"><strong data-nodeid=\"29709\">S\u01a1 \u0111\u1ed3 c\u1ea3nh quan<\/strong>: Hi\u1ec3n th\u1ecb h\u1ec7 th\u1ed1ng trong b\u1ed1i c\u1ea3nh doanh nghi\u1ec7p r\u1ed9ng l\u1edbn h\u01a1n<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28881\">\n<p data-nodeid=\"28882\"><strong data-nodeid=\"29718\">Chuy\u1ec3n sang quy tr\u00ecnh<\/strong>: Nh\u1ea5p v\u00e0o <strong data-nodeid=\"29719\">C\u1ea5u tr\u00fac lu\u1ed3ng sang quy tr\u00ecnh<\/strong> \u0111\u1ec3 xu\u1ea5t to\u00e0n b\u1ed9 kh\u1ed1i m\u00f4 h\u00ecnh ph\u00e2n c\u1ea5p<\/p>\n<\/li>\n<\/ol>\n<blockquote data-nodeid=\"28883\">\n<p data-nodeid=\"28884\"><strong data-nodeid=\"29724\">\ud83c\udfaf Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/strong>: L\u00fd t\u01b0\u1edfng cho c\u00e1c h\u1ed9i \u0111\u1ed3ng r\u00e0 so\u00e1t ki\u1ebfn tr\u00fac, t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn nh\u00e2n vi\u00ean m\u1edbi v\u00e0 c\u00e1c b\u00e0i thuy\u1ebft tr\u00ecnh cho c\u00e1c b\u00ean li\u00ean quan, n\u01a1i s\u1ef1 r\u00f5 r\u00e0ng \u0111a l\u1edbp l\u00e0 y\u1ebfu t\u1ed1 thi\u1ebft y\u1ebfu.<\/p>\n<\/blockquote>\n<h4 data-nodeid=\"28885\">V\u00ed d\u1ee5 s\u01a1 \u0111\u1ed3 container C4 (PlantUML)<\/h4>\n<p data-nodeid=\"28886\"><img alt=\"\" data-nodeid=\"29727\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc88c626bb.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLJ1RXen4BqZyGzJJaHAmgMddf90rAPA50f5EKPUxx1OzThks0lTLlttZktiiYYK2sOyysRclMTkV10KcbgFHn-KaRef4NOXEFzfDYDnkAvKs3L5uv6aDG5Dk9QsdZajJ2owyg7KgfZDFrujOsZpz3YhXGz877gTSuLG1kdQfGRZKL118_HnM2XHaQZX2bu4uSvo7tWIHbHOSojOjmnLny8bahTcoiDkjvSmEMQlOsJ2eQMIF_mbE96-X2d1xvJpOAdasib5Zr4dV3f1oJqfuZplEGsH2nsI2CeQdz0uGxT1oI6KjfNoCSPrZzqPlgEe8r86zQ1COHjJpcmJqY4D5lTBKEDHtlBrBju9QgU7sfyPRa38v0B-Z4V0dvx9wG4BuLoimm9kdTDAfk7Z82iKCYIEoEvLoIDj7c1h2GvzZqHi7ESKLJWLw-_Nt-5s-H0XrewKgU3EseJuXQdH3CWEuGBl8L8Y4s6Mv0vzo1o-X_R14gyL8VC9dbrGjVgTyc6Dj5SIpxJiQMKcW8qeCpMn9M4WXNkXpspIoSS8jzrvs6NPXbscwpEQg3ot87IMGjPV6Q-gNTRi17fHJCk2onxCdkUmrC921548ds6j3nNX-jlZv6tLv8YtrCitUsR3QfirEzj32gOpYLag3_FuQzBzZ8SKyR0b_Damk6v1ICcAO0abpnCX_mxSTlyhJ96YOUvNoyvN0tQtoWWZbT1vUqTMDfIOZaW349lS-XpNEEFKWKNIfg3L5cKhDMRlhr1tZxftyCPZOY3UzO_rxEtW_RsxpnbTE1jvBhHEP4L7To3fwkZ6FgTQBUSdEKCB_HyfUO5VNEbdByGUJLbV5tUdM4SrJnEpklnEWvLM7_T8HLclTMlOkKdJS_sp7XjN9WTdqfdXq9oCEnxTe2dvN_aV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VLLDJzj04Br7od_OvXGa89UUUg89ABIbLKYesXlo5zvLxRLbhmDHrKDF710IY5DLeP8Yr58f0fLAbMnLFMpA__0_wSmwSMo-Sh2JtJTlPj-ysIo5GWj4v3hLoYF63ISoBKA5yCCdZKQWRI_QJD18Zq8hC3mkB2uM3Szj-8x6CMWX5AR3z4RhyK87brw_N6kuMYYi09OsMn2XCMu5YxvAKAq89XoBzAw7P7oO9aSaHv05ifeckqJGD3daDbcFqlYK4qV-8I-eXw4TAmWzNeTojxRcIUqLbLyvwJFvWoEY1aijYDtdyq0jhu32bbUCzEK9iPdc4IfFk5sRotbSZMks5K1OEHKIjPaSkYIKGq6ebyRmmce_0IVI-Igpa2E35lWSpsQXO4O8yUC3G3F2xN_dSAfu514ZZR_nMZcPgWYULnhX551-OmSspmIILYkz0QZeRZQzY9jQCAXlkyZyW4QrEVA-MY7moKMjRrkwvliGboRV8S1CapDulR5qBALhQOPGkaMm21MU-PbK9eCid1ZKWy9cAh_373SpQ3v3gfNU1ddQUOPiFJzWmDVqF4N-Dar6gaGKo01DABBxf0-rA3d7Xx3mCG9PuLJiTePGU05q2gYMqsJFe5da1eB9zMMK2RY6tqIG9XTtb53G2MBt02T7sD7ujr0LE73qmSmWDmx8DMSmwMknW4x11R3L6GZggGvlW64yeaju6FZ038BANr2GOAWgWtSQ_nMtSYthTLF7Vi1uX6do1VjrGHpKAoAhoYq2XYRh1ERqGc47Lczz3N_D99WuAyVYH5mF-MGPwybbkAi6GpCeojq44wCpay_A_hikwLec2pFhJBuKaWeujwkyUSnAbKFoopGvDG0N3T1d8nzWk7OCvUn40p0Nrl6XOFkL7L6t0l-curUwdHiD5VA4WQPonAawcHjfe5ryuI9ZWSnxS7p61xa-9S_svKy0ukdXJ0KHin7jMixqEie7hOUXsPmX227vJVCGg71zt0VBWDFTRF3QSEEnscG2frngQpOsESRkTbebJD7RzpCfJ-ALjcyqsbHXdYytoqnJpvHXRRnDKEvpO-AT_1WgAkimnXo1p3hwhM2SEul9-jXI9bAtfa3xnKFqEvN3SfSA1DNAaiLD-1Vw3m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28887\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Container.puml\r\n\r\ntitle S\u01a1 \u0111\u1ed3 Container - H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd Kho\r\n\r\nPerson(staff, \"Nh\u00e2n vi\u00ean Kho\", \"Ch\u1ecdn, \u0111\u00f3ng g\u00f3i v\u00e0 giao h\u00e0ng\")\r\nPerson(manager, \"Qu\u1ea3n l\u00fd Kho\", \"Gi\u00e1m s\u00e1t ho\u1ea1t \u0111\u1ed9ng v\u00e0 ph\u00e2n t\u00edch\")\r\nPerson(logistics, \"\u0110\u1ed9i ng\u0169 H\u1eadu c\u1ea7n\", \"Qu\u1ea3n l\u00fd h\u00e0ng h\u00f3a nh\u1eadp\/xu\u1ea5t\")\r\n\r\nSystem_Boundary(wms, \"H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd Kho\") {\r\n    Container(webapp, \"\u1ee8ng d\u1ee5ng Web\", \"React\", \"Cung c\u1ea5p giao di\u1ec7n cho nh\u00e2n vi\u00ean kho\")\r\n    Container(api, \"REST API\", \"Spring Boot\", \"X\u1eed l\u00fd logic nghi\u1ec7p v\u1ee5 v\u00e0 \u0111i\u1ec1u ph\u1ed1i\")\r\n    Container(storage, \"D\u1ecbch v\u1ee5 T\u1ed1i \u01b0u h\u00f3a L\u01b0u tr\u1eef\", \"Spring Boot\", \"Qu\u1ea3n l\u00fd v\u1ecb tr\u00ed \u0111\u1eb7t v\u00e0 l\u1ea5y h\u00e0ng\")\r\n    Container(analytics, \"D\u1ecbch v\u1ee5 Ph\u00e2n t\u00edch\", \"Python\", \"T\u1ea1o b\u00e1o c\u00e1o v\u00e0 th\u00f4ng tin chi ti\u1ebft\")\r\n    ContainerDb(db, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u H\u00e0ng t\u1ed3n kho\", \"PostgreSQL\", \"L\u01b0u tr\u1eef h\u00e0ng t\u1ed3n kho, \u0111\u01a1n h\u00e0ng v\u00e0 v\u1ecb tr\u00ed\")\r\n    ContainerDb(cache, \"B\u1ed9 nh\u1edb \u0111\u1ec7m Redis\", \"Redis\", \"L\u01b0u tr\u1eef t\u1ea1m th\u1eddi d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c truy c\u1eadp th\u01b0\u1eddng xuy\u00ean\")\r\n}\r\n\r\nSystem_Ext(erp, \"H\u1ec7 th\u1ed1ng ERP\", \"Qu\u1ea3n l\u00fd t\u00e0i ch\u00ednh v\u00e0 mua s\u1eafm\")\r\nSystem_Ext(oms, \"H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd \u0110\u01a1n h\u00e0ng\", \"X\u1eed l\u00fd v\u00f2ng \u0111\u1eddi \u0111\u01a1n h\u00e0ng\")\r\n\r\nRel(staff, webapp, \"S\u1eed d\u1ee5ng\")\r\nRel(manager, webapp, \"S\u1eed d\u1ee5ng\")\r\nRel(logistics, webapp, \"S\u1eed d\u1ee5ng\")\r\n\r\nRel(webapp, api, \"G\u1ecdi\", \"REST\")\r\nRel(api, storage, \"G\u1ecdi\", \"gRPC\")\r\nRel(api, analytics, \"G\u1ecdi\", \"REST\")\r\nRel(api, db, \"\u0110\u1ecdc\/Ghi\", \"JDBC\")\r\nRel(api, cache, \"\u0110\u1ecdc\/Ghi\", \"Giao th\u1ee9c Redis\")\r\n\r\nRel(api, erp, \"\u0110\u1ed3ng b\u1ed9 d\u1eef li\u1ec7u\", \"REST\")\r\nRel(api, oms, \"C\u1eadp nh\u1eadt tr\u1ea1ng th\u00e1i \u0111\u01a1n h\u00e0ng\", \"REST\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VLLDJzj04Br7od_OvXGa89UUUg89ABIbLKYesXlo5zvLxRLbhmDHrKDF710IY5DLeP8Yr58f0fLAbMnLFMpA__0_wSmwSMo-Sh2JtJTlPj-ysIo5GWj4v3hLoYF63ISoBKA5yCCdZKQWRI_QJD18Zq8hC3mkB2uM3Szj-8x6CMWX5AR3z4RhyK87brw_N6kuMYYi09OsMn2XCMu5YxvAKAq89XoBzAw7P7oO9aSaHv05ifeckqJGD3daDbcFqlYK4qV-8I-eXw4TAmWzNeTojxRcIUqLbLyvwJFvWoEY1aijYDtdyq0jhu32bbUCzEK9iPdc4IfFk5sRotbSZMks5K1OEHKIjPaSkYIKGq6ebyRmmce_0IVI-Igpa2E35lWSpsQXO4O8yUC3G3F2xN_dSAfu514ZZR_nMZcPgWYULnhX551-OmSspmIILYkz0QZeRZQzY9jQCAXlkyZyW4QrEVA-MY7moKMjRrkwvliGboRV8S1CapDulR5qBALhQOPGkaMm21MU-PbK9eCid1ZKWy9cAh_373SpQ3v3gfNU1ddQUOPiFJzWmDVqF4N-Dar6gaGKo01DABBxf0-rA3d7Xx3mCG9PuLJiTePGU05q2gYMqsJFe5da1eB9zMMK2RY6tqIG9XTtb53G2MBt02T7sD7ujr0LE73qmSmWDmx8DMSmwMknW4x11R3L6GZggGvlW64yeaju6FZ038BANr2GOAWgWtSQ_nMtSYthTLF7Vi1uX6do1VjrGHpKAoAhoYq2XYRh1ERqGc47Lczz3N_D99WuAyVYH5mF-MGPwybbkAi6GpCeojq44wCpay_A_hikwLec2pFhJBuKaWeujwkyUSnAbKFoopGvDG0N3T1d8nzWk7OCvUn40p0Nrl6XOFkL7L6t0l-curUwdHiD5VA4WQPonAawcHjfe5ryuI9ZWSnxS7p61xa-9S_svKy0ukdXJ0KHin7jMixqEie7hOUXsPmX227vJVCGg71zt0VBWDFTRF3QSEEnscG2frngQpOsESRkTbebJD7RzpCfJ-ALjcyqsbHXdYytoqnJpvHXRRnDKEvpO-AT_1WgAkimnXo1p3hwhM2SEul9-jXI9bAtfa3xnKFqEvN3SfSA1DNAaiLD-1Vw3m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLJ1RXen4BqZyGzJJaHAmgMddf90rAPA50f5EKPUxx1OzThks0lTLlttZktiiYYK2sOyysRclMTkV10KcbgFHn-KaRef4NOXEFzfDYDnkAvKs3L5uv6aDG5Dk9QsdZajJ2owyg7KgfZDFrujOsZpz3YhXGz877gTSuLG1kdQfGRZKL118_HnM2XHaQZX2bu4uSvo7tWIHbHOSojOjmnLny8bahTcoiDkjvSmEMQlOsJ2eQMIF_mbE96-X2d1xvJpOAdasib5Zr4dV3f1oJqfuZplEGsH2nsI2CeQdz0uGxT1oI6KjfNoCSPrZzqPlgEe8r86zQ1COHjJpcmJqY4D5lTBKEDHtlBrBju9QgU7sfyPRa38v0B-Z4V0dvx9wG4BuLoimm9kdTDAfk7Z82iKCYIEoEvLoIDj7c1h2GvzZqHi7ESKLJWLw-_Nt-5s-H0XrewKgU3EseJuXQdH3CWEuGBl8L8Y4s6Mv0vzo1o-X_R14gyL8VC9dbrGjVgTyc6Dj5SIpxJiQMKcW8qeCpMn9M4WXNkXpspIoSS8jzrvs6NPXbscwpEQg3ot87IMGjPV6Q-gNTRi17fHJCk2onxCdkUmrC921548ds6j3nNX-jlZv6tLv8YtrCitUsR3QfirEzj32gOpYLag3_FuQzBzZ8SKyR0b_Damk6v1ICcAO0abpnCX_mxSTlyhJ96YOUvNoyvN0tQtoWWZbT1vUqTMDfIOZaW349lS-XpNEEFKWKNIfg3L5cKhDMRlhr1tZxftyCPZOY3UzO_rxEtW_RsxpnbTE1jvBhHEP4L7To3fwkZ6FgTQBUSdEKCB_HyfUO5VNEbdByGUJLbV5tUdM4SrJnEpklnEWvLM7_T8HLclTMlOkKdJS_sp7XjN9WTdqfdXq9oCEnxTe2dvN_aV\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28888\"><a data-nodeid=\"29730\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TLJ1RXen4BqZyGzJJaHAmgMddf90rAPA50f5EKPUxx1OzThks0lTLlttZktiiYYK2sOyysRclMTkV10KcbgFHn-KaRef4NOXEFzfDYDnkAvKs3L5uv6aDG5Dk9QsdZajJ2owyg7KgfZDFrujOsZpz3YhXGz877gTSuLG1kdQfGRZKL118_HnM2XHaQZX2bu4uSvo7tWIHbHOSojOjmnLny8bahTcoiDkjvSmEMQlOsJ2eQMIF_mbE96-X2d1xvJpOAdasib5Zr4dV3f1oJqfuZplEGsH2nsI2CeQdz0uGxT1oI6KjfNoCSPrZzqPlgEe8r86zQ1COHjJpcmJqY4D5lTBKEDHtlBrBju9QgU7sfyPRa38v0B-Z4V0dvx9wG4BuLoimm9kdTDAfk7Z82iKCYIEoEvLoIDj7c1h2GvzZqHi7ESKLJWLw-_Nt-5s-H0XrewKgU3EseJuXQdH3CWEuGBl8L8Y4s6Mv0vzo1o-X_R14gyL8VC9dbrGjVgTyc6Dj5SIpxJiQMKcW8qeCpMn9M4WXNkXpspIoSS8jzrvs6NPXbscwpEQg3ot87IMGjPV6Q-gNTRi17fHJCk2onxCdkUmrC921548ds6j3nNX-jlZv6tLv8YtrCitUsR3QfirEzj32gOpYLag3_FuQzBzZ8SKyR0b_Damk6v1ICcAO0abpnCX_mxSTlyhJ96YOUvNoyvN0tQtoWWZbT1vUqTMDfIOZaW349lS-XpNEEFKWKNIfg3L5cKhDMRlhr1tZxftyCPZOY3UzO_rxEtW_RsxpnbTE1jvBhHEP4L7To3fwkZ6FgTQBUSdEKCB_HyfUO5VNEbdByGUJLbV5tUdM4SrJnEpklnEWvLM7_T8HLclTMlOkKdJS_sp7XjN9WTdqfdXq9oCEnxTe2dvN_aV\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h4 data-nodeid=\"28889\">V\u00ed d\u1ee5 s\u01a1 \u0111\u1ed3 th\u00e0nh ph\u1ea7n (PlantUML)<\/h4>\n<p data-nodeid=\"28890\"><img alt=\"\" data-nodeid=\"29733\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc8d80b6a9.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VPDDRnen48RlIFo7AIUGIhZqr5DIe5Aae4PiK8vey4uMArxRjMT9ITN_tl5-a1MqS5gFvtqVpmUtaJ5mLPhXu9EsobGvmPxPnw-pMS2tcqBpljfLaO9obidoZNBbp1kqIJIDd1kzcys_J1zJQBDwc9KOcOA4jdDNUcUJnjU0uO0r6u9J71OQYu0bJ25Z5x0W-E5Pb_eTMJiB6OM3LfIKSw6ZjXIstrnbSmp7SMmads5qJJoQmE_X0EHtmexHeZb67NlIkpO4Iri8PYHNTUYT8cYc4afte3AzsIDBVJO2sXnSGvGaQOcg4qQJSroK1F6xJpQPVCCSZQeC2ZfnkbD7ohNOH2cXGRoHBlOCBovSOxm4-bcHLSSEzBqBd1eXDqy1rMkBEP1nIlEnXdZdvGb1ZfVMWRmXg-C-aSLatJ_ttLVIrqAg22IZKQ_Q5i115mM5fX8q53XsW3FCOZUMzzIZ4wk7zXCMoBZ3UF7wBhTnRbS157fKRH5_qjfaHrd6Shly9KFtEZr-cJt1tUCzZ9zNsQHjluadXzYKKxVRUGeD9FaD1sioZKjlVzQfov5xy-zsebOcOIqxATfbs4IAbvVzAVuxezUZDM4UPyyoj8_4nhsNjF4vzkvxWFyddGty2d8uk2MRov_xBm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLH1QnD16Bq7yXy-Uqh1DXTFdgffgM8BjOcAfxAP7JE3ixFhpamrYgSUUYW5YtWe7knQGb095bI43E9XIl_7_1DdTfDqar0rf-pizxttllUzsHKXWrIgY5KhroX7J8KOY9I9k5clfy7pvGwLHBMLm2cAkSHSBgCugYSiuBvfISYGqNQzSMDfonyzsDoeHu6GE7L7EuquIcBkUvASe5gHL38CpOiCpe-iVWijOauuWOJOOP_34gnQVO08x5hTWvRLHnGkpXGGyos03VzFfbP_zK0D9oQW7ASxjsF5mo3jreICqw23hyF2Vw4iBCAhQWNSRoAp5l20TGKL3kFyZTN7l0F8QTqYvYC7QGOEj0JWgiflaCaGH7RuHK580H7LjNgF0xAw7u2VirD8s3Kd8ATLEQK73jGCl2t3dt9XSLQPe2_zP9icwtewvzczd5IIYpEhtoEuCo7mkbfvYOnDnk7fT65Ex_GVkdBcpqxpleaylvYzaOvBOVEAdgJucS8STUSCzwiKoWvxSbOLmJ64vWVDvqSvrN4kABBwq_ZPXK6_WpQrmz_pxithI772CAU2HEvfLel9ABGzd52yuoNSTxfEEJ3pgzXNOGw9xJ2JkHBatnDecom6xc8vI0hsCV4C_Mgxnc8KI1fpXzvmOH5MVu3GvGCOjNfVmSE9XrCMNEvy9Xl8V7UF8mDPAQ_LociV_MRNtQzeP-s5osj27URsMhC5jxRkGktHPdFHiwoxzL8lOkB49OvBPbpCFfewTxqOi5hPngn0BLs5n-QpyhxqrPMvzSrvwwHh5DYcrGClf5SGJDUK8_JNmfB5_buUeleweUEoWgcyXNnh-VBakAX4zO_AcJnTILsjh60Ukk_Q7m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28891\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Component.puml\r\n\r\ntitle S\u01a1 \u0111\u1ed3 Th\u00e0nh ph\u1ea7n - D\u1ecbch v\u1ee5 T\u1ed1i \u01b0u h\u00f3a L\u01b0u tr\u1eef\r\n\r\nContainer_Boundary(storage, \"D\u1ecbch v\u1ee5 T\u1ed1i \u01b0u h\u00f3a L\u01b0u tr\u1eef\") {\r\n    Component(analysis, \"\u0110\u1ed9ng c\u01a1 Ph\u00e2n t\u00edch L\u01b0u tr\u1eef\", \"Ph\u00e2n t\u00edch c\u00e1c m\u1eabu di chuy\u1ec3n c\u1ee7a h\u00e0ng h\u00f3a v\u00e0 t\u1ed1i \u01b0u h\u00f3a v\u1ecb tr\u00ed \u0111\u1eb7t\")\r\n    Component(size, \"M\u00e1y t\u00ednh K\u00edch th\u01b0\u1edbc H\u00e0ng h\u00f3a\", \"T\u00ednh to\u00e1n k\u00edch th\u01b0\u1edbc v\u00e0 tr\u1ecdng l\u01b0\u1ee3ng h\u00e0ng h\u00f3a \u0111\u1ec3 \u0111\u1eb7t v\u1ecb tr\u00ed\")\r\n    Component(frequency, \"D\u1ecbch v\u1ee5 T\u1ea7n su\u1ea5t H\u00e0ng h\u00f3a\", \"Theo d\u00f5i t\u1ed1c \u0111\u1ed9 v\u00e0 m\u1ee9c \u0111\u1ed9 ph\u1ed5 bi\u1ebfn c\u1ee7a h\u00e0ng h\u00f3a\")\r\n    Component(replenishment, \"D\u1ecbch v\u1ee5 T\u00e1i b\u1ed5 sung\", \"Qu\u1ea3n l\u00fd c\u00e1c k\u00edch ho\u1ea1t v\u00e0 c\u1ea3nh b\u00e1o nh\u1eadp h\u00e0ng\")\r\n    \r\n    ComponentDb(location, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u V\u1ecb tr\u00ed\", \"Theo d\u00f5i v\u1ecb tr\u00ed h\u00e0ng h\u00f3a v\u00e0 c\u00f4ng su\u1ea5t l\u01b0u tr\u1eef\")\r\n}\r\n\r\nSystem_Ext(api, \"REST API (WMS)\", \"G\u1ecdi d\u1ecbch v\u1ee5 l\u01b0u tr\u1eef cho c\u00e1c ho\u1ea1t \u0111\u1ed9ng\")\r\n\r\nRel(api, analysis, \"Y\u00eau c\u1ea7u t\u1ed1i \u01b0u h\u00f3a v\u1ecb tr\u00ed\")\r\nRel(analysis, size, \"S\u1eed d\u1ee5ng\")\r\nRel(analysis, frequency, \"S\u1eed d\u1ee5ng\")\r\nRel(analysis, location, \"\u0110\u1ecdc\/Ghi\")\r\nRel(size, location, \"C\u1eadp nh\u1eadt\")\r\nRel(frequency, location, \"C\u1eadp nh\u1eadt\")\r\nRel(replenishment, location, \"\u0110\u1ecdc\/Ghi\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:ZLH1QnD16Bq7yXy-Uqh1DXTFdgffgM8BjOcAfxAP7JE3ixFhpamrYgSUUYW5YtWe7knQGb095bI43E9XIl_7_1DdTfDqar0rf-pizxttllUzsHKXWrIgY5KhroX7J8KOY9I9k5clfy7pvGwLHBMLm2cAkSHSBgCugYSiuBvfISYGqNQzSMDfonyzsDoeHu6GE7L7EuquIcBkUvASe5gHL38CpOiCpe-iVWijOauuWOJOOP_34gnQVO08x5hTWvRLHnGkpXGGyos03VzFfbP_zK0D9oQW7ASxjsF5mo3jreICqw23hyF2Vw4iBCAhQWNSRoAp5l20TGKL3kFyZTN7l0F8QTqYvYC7QGOEj0JWgiflaCaGH7RuHK580H7LjNgF0xAw7u2VirD8s3Kd8ATLEQK73jGCl2t3dt9XSLQPe2_zP9icwtewvzczd5IIYpEhtoEuCo7mkbfvYOnDnk7fT65Ex_GVkdBcpqxpleaylvYzaOvBOVEAdgJucS8STUSCzwiKoWvxSbOLmJ64vWVDvqSvrN4kABBwq_ZPXK6_WpQrmz_pxithI772CAU2HEvfLel9ABGzd52yuoNSTxfEEJ3pgzXNOGw9xJ2JkHBatnDecom6xc8vI0hsCV4C_Mgxnc8KI1fpXzvmOH5MVu3GvGCOjNfVmSE9XrCMNEvy9Xl8V7UF8mDPAQ_LociV_MRNtQzeP-s5osj27URsMhC5jxRkGktHPdFHiwoxzL8lOkB49OvBPbpCFfewTxqOi5hPngn0BLs5n-QpyhxqrPMvzSrvwwHh5DYcrGClf5SGJDUK8_JNmfB5_buUeleweUEoWgcyXNnh-VBakAX4zO_AcJnTILsjh60Ukk_Q7m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VPDDRnen48RlIFo7AIUGIhZqr5DIe5Aae4PiK8vey4uMArxRjMT9ITN_tl5-a1MqS5gFvtqVpmUtaJ5mLPhXu9EsobGvmPxPnw-pMS2tcqBpljfLaO9obidoZNBbp1kqIJIDd1kzcys_J1zJQBDwc9KOcOA4jdDNUcUJnjU0uO0r6u9J71OQYu0bJ25Z5x0W-E5Pb_eTMJiB6OM3LfIKSw6ZjXIstrnbSmp7SMmads5qJJoQmE_X0EHtmexHeZb67NlIkpO4Iri8PYHNTUYT8cYc4afte3AzsIDBVJO2sXnSGvGaQOcg4qQJSroK1F6xJpQPVCCSZQeC2ZfnkbD7ohNOH2cXGRoHBlOCBovSOxm4-bcHLSSEzBqBd1eXDqy1rMkBEP1nIlEnXdZdvGb1ZfVMWRmXg-C-aSLatJ_ttLVIrqAg22IZKQ_Q5i115mM5fX8q53XsW3FCOZUMzzIZ4wk7zXCMoBZ3UF7wBhTnRbS157fKRH5_qjfaHrd6Shly9KFtEZr-cJt1tUCzZ9zNsQHjluadXzYKKxVRUGeD9FaD1sioZKjlVzQfov5xy-zsebOcOIqxATfbs4IAbvVzAVuxezUZDM4UPyyoj8_4nhsNjF4vzkvxWFyddGty2d8uk2MRov_xBm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28892\"><a data-nodeid=\"29736\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:VPDDRnen48RlIFo7AIUGIhZqr5DIe5Aae4PiK8vey4uMArxRjMT9ITN_tl5-a1MqS5gFvtqVpmUtaJ5mLPhXu9EsobGvmPxPnw-pMS2tcqBpljfLaO9obidoZNBbp1kqIJIDd1kzcys_J1zJQBDwc9KOcOA4jdDNUcUJnjU0uO0r6u9J71OQYu0bJ25Z5x0W-E5Pb_eTMJiB6OM3LfIKSw6ZjXIstrnbSmp7SMmads5qJJoQmE_X0EHtmexHeZb67NlIkpO4Iri8PYHNTUYT8cYc4afte3AzsIDBVJO2sXnSGvGaQOcg4qQJSroK1F6xJpQPVCCSZQeC2ZfnkbD7ohNOH2cXGRoHBlOCBovSOxm4-bcHLSSEzBqBd1eXDqy1rMkBEP1nIlEnXdZdvGb1ZfVMWRmXg-C-aSLatJ_ttLVIrqAg22IZKQ_Q5i115mM5fX8q53XsW3FCOZUMzzIZ4wk7zXCMoBZ3UF7wBhTnRbS157fKRH5_qjfaHrd6Shly9KFtEZr-cJt1tUCzZ9zNsQHjluadXzYKKxVRUGeD9FaD1sioZKjlVzQfov5xy-zsebOcOIqxATfbs4IAbvVzAVuxezUZDM4UPyyoj8_4nhsNjF4vzkvxWFyddGty2d8uk2MRov_xBm00\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h4 data-nodeid=\"28893\">V\u00ed d\u1ee5 s\u01a1 \u0111\u1ed3 tri\u1ec3n khai (PlantUML)<\/h4>\n<p data-nodeid=\"28894\"><img alt=\"\" data-nodeid=\"29739\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc900ada9c.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLLDZzem4BqZyH-cd7QbBaZTzjBJGbZrGsoR4heSqJYnWbKdjcm7H2l-UySEaB10o-OIUpplEVFc8m_MeN5L8RkTDw9CPPLnM3gdxSV1mE2wdmkth5XbkKbLwNZf-gag1bfYwK5trcLIi47q_YxsffzFaq61rd53fiMOQwasXGVfS4EtuuIJ79e360lC3HPm1tCqVAde9dZ24dCUZfCDaHKUsM0MtrJ6Rt1jtq9lE4yWaghAUhVmfzi1UbuwhdHAZiznrBYSSzCLao9Ts8gLt14W3dj8mluOUWuk6M4c2ZCO8IcHSjFRVTvmCZg5-oSYGL6KtDoiEKEjoN_E6GorfelH2LLwYYd7r7aZB1LfaO4g8RdltHxpRPjjQ_cFQ8rOeUEjS6l3rV4oJ7_nCbkWpGazgdSmh9o294KfoXm-6LNfyw5VObiLBRA4cnKtyFpaPNYCtb6DkFk-H9Fpywp7eg8MNhx7P0R3-8ldI2Xg-gwHKgxnUwdaAP5rob0zUe9w1T-r4uNuVSZHrSJRYraxJjSvZJBMP6kC3XdQo-cwG43zxPkppH3Lfb1gumHYAhBSyEJ7XEJEMDzyk5hnCRkfUxykfmBD1lRN_5Tb0jCaAZEs2Jg75KnvQ8Khb3oLxvm2AQPBtX8Xylks0e-I0X2rUSepOKc407gb3W4JcjTp1BxNbSDkIQ-j7tvJBWz38aoQq1lMS_eZRzgLkweSsMdrUJQBaxr3E6pgE48fWrC-zMEnvND888sTp0xcHkpelev7nvvDYCUETSYnKKwbIkuXUzucnxlSkZgARkU1Mfv-4dy1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLLDJzj04BqZvJzCSw9IIQJINdg290ZQ9YZ4AHoZzNfbhx3NbhqEYYfEFN2ea40zLJrK0Q5-I5MXxIbMrODH_iV-ayuwJKA8AU23ix7VlDrvC_Ey4aaIojXp2miFkA1kR35mf0oYP-LoIFPADfTERCOH2wal91EoH7sl7BX4wA2bI5ekDylL9qjD_UXLerxsI2HPY8ywDHQuVi_JGK6sGs51SkaoC8Pzk3nMoJjeXrmbRmJiEeJ34coev02aev9ZOSDMh0Qd0jpqDxnqV1qz9Uni-XPR97lH8oXU7gLz3xpqf0UhEqRn8RmkB01Urz7TW29wkrcTGl9WGMowd7QYs1HCOa133Vfu6amVgkallLB9Us7FakGHkIP6Ln0CD3qHOAh11KPBJ8eNyGsU5LRhbNaUVLLHRC852nVtc4c20F4g-OpXbahEy6U7cSNhprgCK8cw3izLSah17Px784ELVCTx-bM0iLnyEBlJ_lJlbUL_f0bvbqYMgqsBunwOtl3yTcLCGdUPi3eaif5aqqb_Uj1MoKNM5AWjD5Jo4SBHkZ82v-jq4tFNqwTB-psWs4sVnYImtT2ohLKVOxF9vP9BGflbCyzMWGGSurfhHXjMcyyrn-GT62YBFgVlo-i2pnD5qW-9pP004pxce8k4-HEeJyfrB_Rz6oiwMyeyiImplyjnEYDT04ltZei3UX3VJNqaH0VHuwzJmAxqyicqb3K3cduaxP0PMtMiXcMMmgTtBaZDN1pvZDuePmkeEkatuTnQ3-H10nIMsSjcLVjDH7oewMOCdFI7dlDRHPzNEaySIgZ3vlJ9_45WZtx8cl_0o_hJnTnuLGVWL5iyGdsoy7jAbCMCJUZg9YFM-_NJloN-x6ilRZ5tuasPqpMH_un25--QMB_NpqUJStcaahV20HdtrE2Fq4bkjDjDOupCKDFPM5V9OMQITalRzHNCfEgQyP2MrvqCzw9McSMDKv-5hNCihlw-VA5J2NJCc7RQ3EXA8zC-5HfKM5X1_y2ls5y0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28895\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\n!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Deployment.puml\r\n\r\ntitle S\u01a1 \u0111\u1ed3 Tri\u1ec3n khai - H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd Kho\r\n\r\nDeployment_Node(aws, \"\u0110\u00e1m m\u00e2y AWS\") {\r\n    Deployment_Node(vpc, \"VPC\") {\r\n        Deployment_Node(public_subnet, \"M\u1ea1ng con C\u00f4ng c\u1ed9ng\") {\r\n            Deployment_Node(lb, \"B\u1ed9 c\u00e2n b\u1eb1ng t\u1ea3i\", \"AWS ALB\") {\r\n                Container(webapp, \"\u1ee8ng d\u1ee5ng Web\", \"\u1ee8ng d\u1ee5ng React \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef tr\u00ean S3\")\r\n            }\r\n        }\r\n        \r\n        Deployment_Node(private_subnet, \"M\u1ea1ng con Ri\u00eang t\u01b0\") {\r\n            Deployment_Node(backend_asg, \"Nh\u00f3m T\u1ef1 \u0111\u1ed9ng M\u1edf r\u1ed9ng Backend\") {\r\n                Deployment_Node(backend_vm, \"M\u00e1y ch\u1ee7 Backend VM\", \"EC2 - t3.large\") {\r\n                    Container(api, \"REST API\", \"Container Spring Boot\")\r\n                    Container(storage, \"T\u1ed1i \u01b0u h\u00f3a L\u01b0u tr\u1eef\", \"Container Spring Boot\")\r\n                }\r\n            }\r\n            \r\n            Deployment_Node(db_subnet, \"M\u1ea1ng con C\u01a1 s\u1edf d\u1eef li\u1ec7u\") {\r\n                Deployment_Node(db_cluster, \"C\u1ee5m C\u01a1 s\u1edf d\u1eef li\u1ec7u\", \"RDS PostgreSQL - db.r5.large\") {\r\n                    ContainerDb(master, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u Ch\u00ednh\")\r\n                    ContainerDb(standby, \"B\u1ea3n sao D\u1ef1 ph\u00f2ng\")\r\n                }\r\n                \r\n                Deployment_Node(cache_cluster, \"C\u1ee5m B\u1ed9 nh\u1edb \u0111\u1ec7m\", \"ElastiCache Redis - cache.r5.large\") {\r\n                    ContainerDb(cache, \"B\u1ed9 nh\u1edb \u0111\u1ec7m Redis\")\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r\n\r\nRel(webapp, lb, \"Ph\u1ee5c v\u1ee5\")\r\nRel(lb, api, \"\u0110\u1ecbnh tuy\u1ebfn\", \"HTTPS\")\r\nRel(api, storage, \"G\u1ecdi\", \"gRPC\")\r\nRel(api, master, \"\u0110\u1ecdc\/Ghi\", \"JDBC\")\r\nRel(api, cache, \"\u0110\u1ecdc\/Ghi\", \"Giao th\u1ee9c Redis\")\r\nRel(master, standby, \"Nh\u00e2n b\u1ea3n\")\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLLDJzj04BqZvJzCSw9IIQJINdg290ZQ9YZ4AHoZzNfbhx3NbhqEYYfEFN2ea40zLJrK0Q5-I5MXxIbMrODH_iV-ayuwJKA8AU23ix7VlDrvC_Ey4aaIojXp2miFkA1kR35mf0oYP-LoIFPADfTERCOH2wal91EoH7sl7BX4wA2bI5ekDylL9qjD_UXLerxsI2HPY8ywDHQuVi_JGK6sGs51SkaoC8Pzk3nMoJjeXrmbRmJiEeJ34coev02aev9ZOSDMh0Qd0jpqDxnqV1qz9Uni-XPR97lH8oXU7gLz3xpqf0UhEqRn8RmkB01Urz7TW29wkrcTGl9WGMowd7QYs1HCOa133Vfu6amVgkallLB9Us7FakGHkIP6Ln0CD3qHOAh11KPBJ8eNyGsU5LRhbNaUVLLHRC852nVtc4c20F4g-OpXbahEy6U7cSNhprgCK8cw3izLSah17Px784ELVCTx-bM0iLnyEBlJ_lJlbUL_f0bvbqYMgqsBunwOtl3yTcLCGdUPi3eaif5aqqb_Uj1MoKNM5AWjD5Jo4SBHkZ82v-jq4tFNqwTB-psWs4sVnYImtT2ohLKVOxF9vP9BGflbCyzMWGGSurfhHXjMcyyrn-GT62YBFgVlo-i2pnD5qW-9pP004pxce8k4-HEeJyfrB_Rz6oiwMyeyiImplyjnEYDT04ltZei3UX3VJNqaH0VHuwzJmAxqyicqb3K3cduaxP0PMtMiXcMMmgTtBaZDN1pvZDuePmkeEkatuTnQ3-H10nIMsSjcLVjDH7oewMOCdFI7dlDRHPzNEaySIgZ3vlJ9_45WZtx8cl_0o_hJnTnuLGVWL5iyGdsoy7jAbCMCJUZg9YFM-_NJloN-x6ilRZ5tuasPqpMH_un25--QMB_NpqUJStcaahV20HdtrE2Fq4bkjDjDOupCKDFPM5V9OMQITalRzHNCfEgQyP2MrvqCzw9McSMDKv-5hNCihlw-VA5J2NJCc7RQ3EXA8zC-5HfKM5X1_y2ls5y0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLLDZzem4BqZyH-cd7QbBaZTzjBJGbZrGsoR4heSqJYnWbKdjcm7H2l-UySEaB10o-OIUpplEVFc8m_MeN5L8RkTDw9CPPLnM3gdxSV1mE2wdmkth5XbkKbLwNZf-gag1bfYwK5trcLIi47q_YxsffzFaq61rd53fiMOQwasXGVfS4EtuuIJ79e360lC3HPm1tCqVAde9dZ24dCUZfCDaHKUsM0MtrJ6Rt1jtq9lE4yWaghAUhVmfzi1UbuwhdHAZiznrBYSSzCLao9Ts8gLt14W3dj8mluOUWuk6M4c2ZCO8IcHSjFRVTvmCZg5-oSYGL6KtDoiEKEjoN_E6GorfelH2LLwYYd7r7aZB1LfaO4g8RdltHxpRPjjQ_cFQ8rOeUEjS6l3rV4oJ7_nCbkWpGazgdSmh9o294KfoXm-6LNfyw5VObiLBRA4cnKtyFpaPNYCtb6DkFk-H9Fpywp7eg8MNhx7P0R3-8ldI2Xg-gwHKgxnUwdaAP5rob0zUe9w1T-r4uNuVSZHrSJRYraxJjSvZJBMP6kC3XdQo-cwG43zxPkppH3Lfb1gumHYAhBSyEJ7XEJEMDzyk5hnCRkfUxykfmBD1lRN_5Tb0jCaAZEs2Jg75KnvQ8Khb3oLxvm2AQPBtX8Xylks0e-I0X2rUSepOKc407gb3W4JcjTp1BxNbSDkIQ-j7tvJBWz38aoQq1lMS_eZRzgLkweSsMdrUJQBaxr3E6pgE48fWrC-zMEnvND888sTp0xcHkpelev7nvvDYCUETSYnKKwbIkuXUzucnxlSkZgARkU1Mfv-4dy1\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28896\"><a data-nodeid=\"29742\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:bLLDZzem4BqZyH-cd7QbBaZTzjBJGbZrGsoR4heSqJYnWbKdjcm7H2l-UySEaB10o-OIUpplEVFc8m_MeN5L8RkTDw9CPPLnM3gdxSV1mE2wdmkth5XbkKbLwNZf-gag1bfYwK5trcLIi47q_YxsffzFaq61rd53fiMOQwasXGVfS4EtuuIJ79e360lC3HPm1tCqVAde9dZ24dCUZfCDaHKUsM0MtrJ6Rt1jtq9lE4yWaghAUhVmfzi1UbuwhdHAZiznrBYSSzCLao9Ts8gLt14W3dj8mluOUWuk6M4c2ZCO8IcHSjFRVTvmCZg5-oSYGL6KtDoiEKEjoN_E6GorfelH2LLwYYd7r7aZB1LfaO4g8RdltHxpRPjjQ_cFQ8rOeUEjS6l3rV4oJ7_nCbkWpGazgdSmh9o294KfoXm-6LNfyw5VObiLBRA4cnKtyFpaPNYCtb6DkFk-H9Fpywp7eg8MNhx7P0R3-8ldI2Xg-gwHKgxnUwdaAP5rob0zUe9w1T-r4uNuVSZHrSJRYraxJjSvZJBMP6kC3XdQo-cwG43zxPkppH3Lfb1gumHYAhBSyEJ7XEJEMDzyk5hnCRkfUxykfmBD1lRN_5Tb0jCaAZEs2Jg75KnvQ8Khb3oLxvm2AQPBtX8Xylks0e-I0X2rUSepOKc407gb3W4JcjTp1BxNbSDkIQ-j7tvJBWz38aoQq1lMS_eZRzgLkweSsMdrUJQBaxr3E6pgE48fWrC-zMEnvND888sTp0xcHkpelev7nvvDYCUETSYnKKwbIkuXUzucnxlSkZgARkU1Mfv-4dy1\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<hr data-nodeid=\"28897\"\/>\n<h3 data-nodeid=\"28898\">B\u01b0\u1edbc 3: Tinh ch\u1ec9nh v\u00e0 l\u00e0m phong ph\u00fa c\u00e1c m\u1ed1i quan h\u1ec7<\/h3>\n<p data-nodeid=\"28899\"><strong data-nodeid=\"29748\">M\u1ee5c ti\u00eau<\/strong>: Chuy\u1ec3n \u0111\u1ed5i m\u00f4 h\u00ecnh C4 ban \u0111\u1ea7u th\u00e0nh m\u1ed9t ki\u1ebfn tr\u00fac ch\u00ednh x\u00e1c, d\u1ec5 b\u1ea3o tr\u00ec v\u1edbi c\u00e1c m\u1ed1i quan h\u1ec7 ph\u00f9 h\u1ee3p.<\/p>\n<p data-nodeid=\"28900\"><strong data-nodeid=\"29753\">C\u00e1c m\u1eabu quan h\u1ec7 ch\u00ednh<\/strong>:<\/p>\n<table data-nodeid=\"28902\">\n<thead data-nodeid=\"28903\">\n<tr data-nodeid=\"28904\">\n<th data-nodeid=\"28906\"><strong data-nodeid=\"29757\">M\u1ed1i quan h\u1ec7<\/strong><\/th>\n<th data-nodeid=\"28907\"><strong data-nodeid=\"29761\">M\u1ee5c \u0111\u00edch<\/strong><\/th>\n<th data-nodeid=\"28908\"><strong data-nodeid=\"29765\">V\u00ed d\u1ee5<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"28912\">\n<tr data-nodeid=\"28913\">\n<td data-nodeid=\"28914\"><strong data-nodeid=\"29769\">\u00abinclude\u00bb<\/strong><\/td>\n<td data-nodeid=\"28915\">H\u00e0nh vi chia s\u1ebb b\u1eaft bu\u1ed9c \u0111\u01b0\u1ee3c t\u00e1i s\u1eed d\u1ee5ng qua c\u00e1c k\u1ecbch b\u1ea3n s\u1eed d\u1ee5ng<\/td>\n<td data-nodeid=\"28916\">\u201c\u0110\u1eb7t b\u00e0n\u201d bao g\u1ed3m \u201cX\u1eed l\u00fd thanh to\u00e1n\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"28917\">\n<td data-nodeid=\"28918\"><strong data-nodeid=\"29781\">\u00abextend\u00bb<\/strong><\/td>\n<td data-nodeid=\"28919\">H\u00e0nh vi t\u00f9y ch\u1ecdn ho\u1eb7c c\u00f3 \u0111i\u1ec1u ki\u1ec7n<\/td>\n<td data-nodeid=\"28920\">\u201c\u00c1p d\u1ee5ng gi\u1ea3m gi\u00e1\u201d m\u1edf r\u1ed9ng \u201c\u0110\u1eb7t b\u00e0n\u201d khi m\u00e3 khuy\u1ebfn m\u00e3i \u0111\u01b0\u1ee3c nh\u1eadp<\/td>\n<\/tr>\n<tr data-nodeid=\"28921\">\n<td data-nodeid=\"28922\"><strong data-nodeid=\"29794\">T\u1ed5ng qu\u00e1t h\u00f3a<\/strong><\/td>\n<td data-nodeid=\"28923\">S\u1ef1 th\u1eeba k\u1ebf gi\u1eefa c\u00e1c vai tr\u00f2 ho\u1eb7c k\u1ecbch b\u1ea3n s\u1eed d\u1ee5ng<\/td>\n<td data-nodeid=\"28924\">\u201cQu\u1ea3n tr\u1ecb vi\u00ean\u201d th\u1eeba k\u1ebf t\u1eeb \u201cNg\u01b0\u1eddi d\u00f9ng\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"28925\"><strong data-nodeid=\"29807\">C\u00e1c tinh ch\u1ec9nh do AI \u0111\u1ec1 xu\u1ea5t<\/strong>:<\/p>\n<ul data-nodeid=\"28926\">\n<li data-nodeid=\"28927\">\n<p data-nodeid=\"28928\"><strong data-nodeid=\"29812\">Tr\u00edch xu\u1ea5t \u0111i\u1ec3m chung<\/strong>: Nh\u1eadn di\u1ec7n c\u00e1c b\u01b0\u1edbc d\u01b0 th\u1eeba \u2192 \u0111\u1ec1 xu\u1ea5t m\u1ed1i quan h\u1ec7 \u00abinclude\u00bb<\/p>\n<\/li>\n<li data-nodeid=\"28929\">\n<p data-nodeid=\"28930\"><strong data-nodeid=\"29821\">Ph\u00e2n nh\u00e1nh logic c\u00f3 \u0111i\u1ec1u ki\u1ec7n<\/strong>: Ph\u00e1t hi\u1ec7n c\u00e1c k\u1ecbch b\u1ea3n \u201cn\u1ebfu-th\u00ec\u201d \u2192 \u0111\u1ec1 xu\u1ea5t m\u1ed1i quan h\u1ec7 \u00abextend\u00bb<\/p>\n<\/li>\n<li data-nodeid=\"28931\">\n<p data-nodeid=\"28932\"><strong data-nodeid=\"29826\">T\u1ed5ng qu\u00e1t h\u00f3a vai tr\u00f2<\/strong>: T\u00ecm ki\u1ebfm tr\u00e1ch nhi\u1ec7m ch\u1ed3ng ch\u00e9o \u2192 \u0111\u1ec1 xu\u1ea5t ph\u00e2n c\u1ea5p<\/p>\n<\/li>\n<li data-nodeid=\"28933\">\n<p data-nodeid=\"28934\"><strong data-nodeid=\"29831\">Ph\u00e2n r\u00e3 \u0111\u1ed9 ph\u1ee9c t\u1ea1p<\/strong>: Nh\u1eadn di\u1ec7n c\u00e1c k\u1ecbch b\u1ea3n s\u1eed d\u1ee5ng qu\u00e1 l\u1edbn \u2192 chia nh\u1ecf th\u00e0nh c\u00e1c s\u01a1 \u0111\u1ed3 con<\/p>\n<\/li>\n<\/ul>\n<blockquote data-nodeid=\"28935\">\n<p data-nodeid=\"28936\"><strong data-nodeid=\"29836\">\u0110i\u1ec3m m\u1ea5u ch\u1ed1t<\/strong>: AI lo\u1ea1i b\u1ecf c\u00f4ng vi\u1ec7c c\u01a1 h\u1ecdc nh\u01b0 v\u1ebd m\u0169i t\u00ean v\u00e0 nh\u1eadn di\u1ec7n m\u1eabu, trong khi ki\u1ebfn th\u1ee9c chuy\u00ean m\u00f4n c\u1ee7a b\u1ea1n \u0111\u1ea3m b\u1ea3o c\u00e1c m\u1ed1i quan h\u1ec7 c\u00f3 \u00fd ngh\u0129a th\u1ef1c t\u1ebf trong kinh doanh.<\/p>\n<\/blockquote>\n<h4 data-nodeid=\"28937\">S\u01a1 \u0111\u1ed3 k\u1ecbch b\u1ea3n s\u1eed d\u1ee5ng v\u00ed d\u1ee5 v\u1edbi c\u00e1c m\u1ed1i quan h\u1ec7 \u0111\u00e3 \u0111\u01b0\u1ee3c tinh ch\u1ec9nh<\/h4>\n<p data-nodeid=\"28938\"><img alt=\"\" data-nodeid=\"29839\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc924bda49.png\"\/><\/p>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLHDJzmm4Br7odyOvG8SThcZLGGiLU60X6YhNhWCzh1hrR4jsu6k4F-zOpjXLqRQvX2D9-_DnvjnBaD47yT1jqrKKHCyqeio9E5N85WZlsuKRZmEi83lTlG3nKSAv5yJahcZHnFXohcsQHjDBn6Y1QyssmXIUH9HMTCsAABrqDrmPDy11lx6rgV_7WrkfYz3iLEuH4UpuQAwAlMFNOWqTF3UDi3F64YaKhjhQ_y0mazyrfIZFREZmZnuMbWloSCzeSuevobxAkGQZI0D9IccJZ9QP7U5BIqSOiD1EmLSKQx6k2KJbS18IUxIFxBtIyLMK0ZmWBk12QNaOjSXdTCxdbWGTkInhEtefgBbvAi8jsWaw_iRUVOgbD1lq-6mw1EuCqAFai2JBkrjbGjmolr9v27kpWem2GxBPP_xW0jOhLGXzdq1p5eV1HM9ZqAAi4SXLKMJPFyjwWXk5kFRtqX6rbfObmwepuKrKXNxK9RLSlavXnoTSfY-VpAdd93JEsy72y9AgddpK6gUiH3JjlFYlABIoMJgHxe--Ox1Oj5Fjs1_tk_xtZTlzNJ_iczUthQvv7pya_W7\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLHDYnCn6BuFp7zuwSLwQBrB6VOYheW7zU8rpOGcT2OppYHg4G-BXqL4SF4W8WkMPL6GPTKLP1l4Gyh-Z_mJtsJwiKwr3WnfvdsUl1zFdkxKYbHAvraSAQ4o1lSlfZ0_SEODZ9rvIJaCtUn8GktC2QJE7CiHXkqHA24vKExC2rnxuCmdZ2m0ajiFW2_-l5deAcVg7gjPzOZ5KHpnYo_ElCUGSkOpgCfE1TG4zoN7J2AE25L51PtRt4un_Vovx02f8HMILQlWNHsgokpF4Co992CVZgEAKOMdOIUTNMVsGM691nk5TE1f704-kcQKr0YUltQp7mg6M7KuSbWKuxz3SdiciUxG1WtOic95bVhyV-0n_yU97wPd-L6z3MXA96LP2xjkQ9FGTDSGMhG7EAFGubSASkHBEXIGsdCv2aoY5Mypl90-ZU84bLE5dJODbsIICwbQSBjNBbNDKVMHm39pNEnqeKfD2xt1MYL9VOuw2EdxEGoanmHlcgZLvOwkm1tKIS13JIHmBzmjIJETCkZY1Jn5ORGpx-ZL1kt5WNu_2Gt2THWCH8DEaWQmL6Ghg15YAwGP_LP8gwB56FzRr1RSloPouubYCeMkikUJCCvNyXgrPtXXX3Dx6iQuxClB8nhq-ok9GYOMZaWIsPNejfCoY3hcUk9clwJVY3PzALQBFkRsEzu9Qh_9u1aqHF0Pqfzv6mQxGg-NB8oqtg_DilwsjCJ2n-7RyjR7qGxcn7-etm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"28939\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">@startuml\r\ntitle S\u01a1 \u0111\u1ed3 k\u1ecbch b\u1ea3n s\u1eed d\u1ee5ng \u0111\u00e3 tinh ch\u1ec9nh - \u1ee8ng d\u1ee5ng nh\u00e0 h\u00e0ng GourmetReserve\r\n\r\nh\u01b0\u1edbng t\u1eeb tr\u00e1i sang ph\u1ea3i\r\nactor \"Kh\u00e1ch \u0103n\" as diner\r\nactor \"Qu\u1ea3n l\u00fd\" as manager\r\n\r\nrectangle \"H\u1ec7 th\u1ed1ng GourmetReserve\" {\r\n    usecase \"\u0110\u1eb7t b\u00e0n\" as book\r\n    usecase \"\u0110\u1eb7t m\u00f3n tr\u01b0\u1edbc\" as preorder\r\n    usecase \"H\u1ee7y \u0111\u1eb7t ch\u1ed7\" as cancel\r\n    usecase \"Qu\u1ea3n l\u00fd \u0111\u1eb7t ch\u1ed7\" as manage\r\n    \r\n    usecase \"X\u00e1c th\u1ef1c ng\u01b0\u1eddi d\u00f9ng\" as auth\r\n    usecase \"X\u1eed l\u00fd thanh to\u00e1n\" as payment\r\n    usecase \"\u00c1p d\u1ee5ng m\u00e3 gi\u1ea3m gi\u00e1\" as discount\r\n    usecase \"X\u1eed l\u00fd danh s\u00e1ch ch\u1edd\" as waitlist\r\n    \r\n    ' M\u1ed1i quan h\u1ec7 Include (b\u1eaft bu\u1ed9c)\r\n    book ..&gt; auth : &lt;&lt;include&gt;&gt;\r\n    preorder ..&gt; auth : &lt;&lt;include&gt;&gt;\r\n    cancel ..&gt; auth : &lt;&lt;include&gt;&gt;\r\n    manage ..&gt; auth : &lt;&lt;include&gt;&gt;\r\n    \r\n    book ..&gt; payment : &lt;&lt;include&gt;&gt;\r\n    preorder ..&gt; payment : &lt;&lt;include&gt;&gt;\r\n    \r\n    ' M\u1ed1i quan h\u1ec7 Extend (t\u00f9y ch\u1ecdn\/c\u00f3 \u0111i\u1ec1u ki\u1ec7n)\r\n    book &lt;.. discount : &lt;&lt;extend&gt;&gt;n(nh\u1eadp m\u00e3 khuy\u1ebfn m\u00e3i)\r\n    book &lt;.. waitlist : &lt;&lt;extend&gt;&gt;n(kh\u00f4ng c\u00f2n b\u00e0n tr\u1ed1ng)\r\n}\r\n\r\ndiner --&gt; book\r\ndiner --&gt; preorder\r\ndiner --&gt; cancel\r\nmanager --&gt; manage\r\n\r\n@enduml\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLHDYnCn6BuFp7zuwSLwQBrB6VOYheW7zU8rpOGcT2OppYHg4G-BXqL4SF4W8WkMPL6GPTKLP1l4Gyh-Z_mJtsJwiKwr3WnfvdsUl1zFdkxKYbHAvraSAQ4o1lSlfZ0_SEODZ9rvIJaCtUn8GktC2QJE7CiHXkqHA24vKExC2rnxuCmdZ2m0ajiFW2_-l5deAcVg7gjPzOZ5KHpnYo_ElCUGSkOpgCfE1TG4zoN7J2AE25L51PtRt4un_Vovx02f8HMILQlWNHsgokpF4Co992CVZgEAKOMdOIUTNMVsGM691nk5TE1f704-kcQKr0YUltQp7mg6M7KuSbWKuxz3SdiciUxG1WtOic95bVhyV-0n_yU97wPd-L6z3MXA96LP2xjkQ9FGTDSGMhG7EAFGubSASkHBEXIGsdCv2aoY5Mypl90-ZU84bLE5dJODbsIICwbQSBjNBbNDKVMHm39pNEnqeKfD2xt1MYL9VOuw2EdxEGoanmHlcgZLvOwkm1tKIS13JIHmBzmjIJETCkZY1Jn5ORGpx-ZL1kt5WNu_2Gt2THWCH8DEaWQmL6Ghg15YAwGP_LP8gwB56FzRr1RSloPouubYCeMkikUJCCvNyXgrPtXXX3Dx6iQuxClB8nhq-ok9GYOMZaWIsPNejfCoY3hcUk9clwJVY3PzALQBFkRsEzu9Qh_9u1aqHF0Pqfzv6mQxGg-NB8oqtg_DilwsjCJ2n-7RyjR7qGxcn7-etm00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLHDJzmm4Br7odyOvG8SThcZLGGiLU60X6YhNhWCzh1hrR4jsu6k4F-zOpjXLqRQvX2D9-_DnvjnBaD47yT1jqrKKHCyqeio9E5N85WZlsuKRZmEi83lTlG3nKSAv5yJahcZHnFXohcsQHjDBn6Y1QyssmXIUH9HMTCsAABrqDrmPDy11lx6rgV_7WrkfYz3iLEuH4UpuQAwAlMFNOWqTF3UDi3F64YaKhjhQ_y0mazyrfIZFREZmZnuMbWloSCzeSuevobxAkGQZI0D9IccJZ9QP7U5BIqSOiD1EmLSKQx6k2KJbS18IUxIFxBtIyLMK0ZmWBk12QNaOjSXdTCxdbWGTkInhEtefgBbvAi8jsWaw_iRUVOgbD1lq-6mw1EuCqAFai2JBkrjbGjmolr9v27kpWem2GxBPP_xW0jOhLGXzdq1p5eV1HM9ZqAAi4SXLKMJPFyjwWXk5kFRtqX6rbfObmwepuKrKXNxK9RLSlavXnoTSfY-VpAdd93JEsy72y9AgddpK6gUiH3JjlFYlABIoMJgHxe--Ox1Oj5Fjs1_tk_xtZTlzNJ_iczUthQvv7pya_W7\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"28940\"><a data-nodeid=\"29842\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:XLHDJzmm4Br7odyOvG8SThcZLGGiLU60X6YhNhWCzh1hrR4jsu6k4F-zOpjXLqRQvX2D9-_DnvjnBaD47yT1jqrKKHCyqeio9E5N85WZlsuKRZmEi83lTlG3nKSAv5yJahcZHnFXohcsQHjDBn6Y1QyssmXIUH9HMTCsAABrqDrmPDy11lx6rgV_7WrkfYz3iLEuH4UpuQAwAlMFNOWqTF3UDi3F64YaKhjhQ_y0mazyrfIZFREZmZnuMbWloSCzeSuevobxAkGQZI0D9IccJZ9QP7U5BIqSOiD1EmLSKQx6k2KJbS18IUxIFxBtIyLMK0ZmWBk12QNaOjSXdTCxdbWGTkInhEtefgBbvAi8jsWaw_iRUVOgbD1lq-6mw1EuCqAFai2JBkrjbGjmolr9v27kpWem2GxBPP_xW0jOhLGXzdq1p5eV1HM9ZqAAi4SXLKMJPFyjwWXk5kFRtqX6rbfObmwepuKrKXNxK9RLSlavXnoTSfY-VpAdd93JEsy72y9AgddpK6gUiH3JjlFYlABIoMJgHxe--Ox1Oj5Fjs1_tk_xtZTlzNJ_iczUthQvv7pya_W7\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<hr data-nodeid=\"28941\"\/>\n<h3 data-nodeid=\"28942\">B\u01b0\u1edbc 4: OpenDocs \u2013 Trung t\u00e2m t\u00e0i li\u1ec7u s\u1ed1ng \u0111\u1ed9ng<\/h3>\n<p data-nodeid=\"28943\"><strong data-nodeid=\"29848\">M\u1ee5c ti\u00eau<\/strong>: Bi\u00ean t\u1eadp v\u00e0 xu\u1ea5t b\u1ea3n t\u00e0i li\u1ec7u s\u1ed1ng, n\u01a1i c\u00e1c bi\u1ec3u \u0111\u1ed3 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt khi m\u00f4 h\u00ecnh ngu\u1ed3n thay \u0111\u1ed5i.<\/p>\n<p data-nodeid=\"28944\"><strong data-nodeid=\"29853\">Quy tr\u00ecnh l\u00e0m vi\u1ec7c<\/strong>:<\/p>\n<ol data-nodeid=\"28945\">\n<li data-nodeid=\"28946\">\n<p data-nodeid=\"28947\"><strong data-nodeid=\"29858\">M\u1edf s\u1ed5 tay k\u1ef9 thu\u1eadt c\u1ee7a b\u1ea1n<\/strong>trong tr\u00ecnh so\u1ea1n th\u1ea3o t\u00e0i li\u1ec7u OpenDocs<\/p>\n<\/li>\n<li data-nodeid=\"28948\">\n<p data-nodeid=\"28949\"><strong data-nodeid=\"29863\">\u0110\u1ecbnh v\u1ecb con tr\u1ecf<\/strong>t\u1ea1i \u0111i\u1ec3m ch\u00e8n mong mu\u1ed1n<\/p>\n<\/li>\n<li data-nodeid=\"28950\">\n<p data-nodeid=\"28951\"><strong data-nodeid=\"29868\">Ch\u00e8n \u0111\u1ed1i t\u01b0\u1ee3ng Pipeline<\/strong>:<\/p>\n<ul data-nodeid=\"28952\">\n<li data-nodeid=\"28953\">\n<p data-nodeid=\"28954\">Thanh c\u00f4ng c\u1ee5 \u2192 <strong data-nodeid=\"29878\">Ch\u00e8n<\/strong> \u2192 <strong data-nodeid=\"29879\">Pipeline<\/strong>(thanh b\u00ean tr\u00e1i)<\/p>\n<\/li>\n<li data-nodeid=\"28955\">\n<p data-nodeid=\"28956\">Duy\u1ec7t qua b\u1ed9 s\u01b0u t\u1eadp chung c\u1ee7a nh\u00f3m<\/p>\n<\/li>\n<li data-nodeid=\"28957\">\n<p data-nodeid=\"28958\">L\u1ecdc theo nh\u1eadn x\u00e9t, ng\u00e0y th\u00e1ng ho\u1eb7c n\u1ec1n t\u1ea3ng ngu\u1ed3n<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28959\">\n<p data-nodeid=\"28960\"><strong data-nodeid=\"29886\">Hi\u1ec3n th\u1ecb n\u1ed9i tuy\u1ebfn<\/strong>: Bi\u1ec3u \u0111\u1ed3 xu\u1ea5t hi\u1ec7n ngay l\u1eadp t\u1ee9c v\u1edbi \u0111\u1ed9 ph\u00e2n gi\u1ea3i \u0111\u1ea7y \u0111\u1ee7 v\u00e0 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng t\u00e1c<\/p>\n<\/li>\n<li data-nodeid=\"28961\">\n<p data-nodeid=\"28962\"><strong data-nodeid=\"29891\">Vi\u1ebft ng\u1eef c\u1ea3nh xung quanh<\/strong>s\u1eed d\u1ee5ng Markdown v\u1edbi b\u1ea3n xem tr\u01b0\u1edbc tr\u1ef1c ti\u1ebfp:<\/p>\n<ul data-nodeid=\"28963\">\n<li data-nodeid=\"28964\">\n<p data-nodeid=\"28965\">So\u1ea1n th\u1ea3o v\u0103n b\u1ea3n gi\u00e0u \u0111\u1ecbnh d\u1ea1ng<\/p>\n<\/li>\n<li data-nodeid=\"28966\">\n<p data-nodeid=\"28967\">B\u1ea3ng, kh\u1ed1i m\u00e3, th\u01b0 m\u1ee5c ph\u00e2n c\u1ea5p<\/p>\n<\/li>\n<li data-nodeid=\"28968\">\n<p data-nodeid=\"28969\">T\u1ea5t c\u1ea3 trong khi c\u00e1c bi\u1ec3u \u0111\u1ed3 v\u1eabn gi\u1eef \u0111\u01b0\u1ee3c t\u00ednh t\u01b0\u01a1ng t\u00e1c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li data-nodeid=\"28970\">\n<p data-nodeid=\"28971\"><strong data-nodeid=\"29899\">Qu\u1ea3n l\u00fd c\u1eadp nh\u1eadt<\/strong>:<\/p>\n<ul data-nodeid=\"28972\">\n<li data-nodeid=\"28973\">\n<p data-nodeid=\"28974\">M\u1ed9t bi\u1ec3u t\u01b0\u1ee3ng n\u1ed5i<strong data-nodeid=\"29905\">Ch\u1ec9 b\u00e1o phi\u00ean b\u1ea3n (\ud83d\udd04)<\/strong>xu\u1ea5t hi\u1ec7n b\u00ean c\u1ea1nh c\u00e1c bi\u1ec3u \u0111\u1ed3 nh\u00fang khi c\u00f3 phi\u00ean b\u1ea3n Pipeline m\u1edbi h\u01a1n<\/p>\n<\/li>\n<li data-nodeid=\"28975\">\n<p data-nodeid=\"28976\">Nh\u1ea5p v\u00e0o ch\u1ec9 b\u00e1o \u0111\u1ec3 xem \u0111\u1ed3ng h\u1ed3 th\u1eddi gian theo th\u1ee9 t\u1ef1, ghi ch\u00fa commit v\u00e0 n\u1ec1n t\u1ea3ng ngu\u1ed3n c\u1ea1nh nhau<\/p>\n<\/li>\n<li data-nodeid=\"28977\">\n<p data-nodeid=\"28978\">Chuy\u1ec3n \u0111\u1ed5i phi\u00ean b\u1ea3n \u0111\u1ec3 c\u1eadp nh\u1eadt t\u00e0i li\u1ec7u ch\u00ednh c\u1ee7a b\u1ea1n ngay l\u1eadp t\u1ee9c<\/p>\n<\/li>\n<li data-nodeid=\"28979\">\n<p data-nodeid=\"28980\">C\u00e1c phi\u00ean b\u1ea3n tr\u01b0\u1edbc v\u1eabn c\u00f3 th\u1ec3 truy c\u1eadp \u0111\u01b0\u1ee3c cho m\u1ee5c \u0111\u00edch ki\u1ec3m to\u00e1n ho\u1eb7c c\u00e1c t\u00ecnh hu\u1ed1ng ho\u00e0n t\u00e1c<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<blockquote data-nodeid=\"28981\">\n<p data-nodeid=\"28982\"><strong data-nodeid=\"29913\">\ud83d\udca1 Kh\u00e1i ni\u1ec7m ch\u00ednh<\/strong>: Kh\u00f4ng gi\u1ed1ng nh\u01b0 c\u00e1c n\u1ec1n t\u1ea3ng v\u0103n b\u1ea3n ti\u00eau chu\u1ea9n n\u01a1i h\u00ecnh \u1ea3nh l\u00e0 c\u00e1c b\u1ea3n ch\u1ee5p t\u0129nh, c\u00e1c h\u00ecnh \u1ea3nh nh\u00fang trong OpenDocs v\u1eabn l\u00e0 c\u00e1c vect\u01a1 s\u1ed1ng \u0111\u1ed9ng. Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1ea5p tr\u1ef1c ti\u1ebfp v\u00e0o ph\u1ea7n t\u1eed b\u00ean trong t\u00e0i li\u1ec7u \u0111\u1ec3 m\u1edf m\u00f4 h\u00ecnh ngu\u1ed3n v\u00e0 c\u1eadp nh\u1eadt n\u00f3.<\/p>\n<\/blockquote>\n<h4 data-nodeid=\"28983\">C\u1ea5u tr\u00fac n\u1ed9i dung m\u1eabu c\u1ee7a OpenDocs<\/h4>\n<pre class=\"lang-text\" data-nodeid=\"28984\"><code data-language=\"text\">\ud83d\udcc1 T\u00e0i li\u1ec7u d\u1ef1 \u00e1n\r\n\u251c\u2500\u2500 \ud83d\udcc4 01 - T\u00f3m t\u1eaft \u0111i\u1ec1u h\u00e0nh\r\n\u2502   \u2514\u2500\u2500 [T\u00f3m t\u1eaft c\u00e1c b\u00ean li\u00ean quan do AI t\u1ea1o v\u1edbi s\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh h\u1ec7 th\u1ed1ng]\r\n\u251c\u2500\u2500 \ud83d\udcc4 02 - T\u1ed5ng quan ki\u1ebfn tr\u00fac\r\n\u2502   \u251c\u2500\u2500 [S\u01a1 \u0111\u1ed3 ng\u1eef c\u1ea3nh C4 - Tr\u1ef1c tuy\u1ebfn]\r\n\u2502   \u251c\u2500\u2500 [S\u01a1 \u0111\u1ed3 container C4 - Tr\u1ef1c tuy\u1ebfn]\r\n\u2502   \u2514\u2500\u2500 C\u00e1c quy\u1ebft \u0111\u1ecbnh v\u1ec1 c\u00f4ng ngh\u1ec7\r\n\u251c\u2500\u2500 \ud83d\udcc4 03 - Thi\u1ebft k\u1ebf chi ti\u1ebft\r\n\u2502   \u251c\u2500\u2500 [S\u01a1 \u0111\u1ed3 th\u00e0nh ph\u1ea7n - Tr\u1ef1c tuy\u1ebfn]\r\n\u2502   \u251c\u2500\u2500 [S\u01a1 \u0111\u1ed3 tr\u00ecnh t\u1ef1 - Tr\u1ef1c tuy\u1ebfn]\r\n\u2502   \u2514\u2500\u2500 \u0110\u1eb7c t\u1ea3 API\r\n\u251c\u2500\u2500 \ud83d\udcc4 04 - Ki\u1ebfn tr\u00fac tri\u1ec3n khai\r\n\u2502   \u251c\u2500\u2500 [S\u01a1 \u0111\u1ed3 tri\u1ec3n khai - Tr\u1ef1c tuy\u1ebfn]\r\n\u2502   \u2514\u2500\u2500 Y\u00eau c\u1ea7u c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng\r\n\u2514\u2500\u2500 \ud83d\udcc4 05 - \u0110\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng\r\n    \u251c\u2500\u2500 [C\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed t\u1eeb b\u1ed9 t\u1ea1o AI]\r\n    \u2514\u2500\u2500 Ch\u1ec9 s\u1ed1 bao ph\u1ee7\r\n<\/code><\/pre>\n<hr data-nodeid=\"28985\"\/>\n<h3 data-nodeid=\"28986\">B\u01b0\u1edbc 5: \u0110\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng v\u00e0 ki\u1ec3m th\u1eed<\/h3>\n<p data-nodeid=\"28987\"><strong data-nodeid=\"29920\">M\u1ee5c ti\u00eau<\/strong>: T\u1ef1 \u0111\u1ed9ng t\u1ea1o c\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed c\u00f3 th\u1ec3 truy v\u1ebft t\u1eeb c\u00e1c m\u00f4 h\u00ecnh c\u1ee7a b\u1ea1n.<\/p>\n<p data-nodeid=\"28988\"><strong data-nodeid=\"29925\">T\u00e0i s\u1ea3n ki\u1ec3m th\u1eed do AI t\u1ea1o<\/strong>:<\/p>\n<table data-nodeid=\"28990\">\n<thead data-nodeid=\"28991\">\n<tr data-nodeid=\"28992\">\n<th data-nodeid=\"28994\"><strong data-nodeid=\"29929\">S\u1ea3n ph\u1ea9m ki\u1ec3m th\u1eed<\/strong><\/th>\n<th data-nodeid=\"28995\"><strong data-nodeid=\"29933\">Ngu\u1ed3n<\/strong><\/th>\n<th data-nodeid=\"28996\"><strong data-nodeid=\"29937\">V\u00ed d\u1ee5<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29000\">\n<tr data-nodeid=\"29001\">\n<td data-nodeid=\"29002\">Tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed<\/td>\n<td data-nodeid=\"29003\">\u0110\u1eb7c t\u1ea3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, b\u1ea3ng quy\u1ebft \u0111\u1ecbnh, s\u01a1 \u0111\u1ed3 ho\u1ea1t \u0111\u1ed9ng\/tr\u00ecnh t\u1ef1<\/td>\n<td data-nodeid=\"29004\">TC-001 \u2013 \u0110\u01b0\u1eddng d\u1eabn th\u00e0nh c\u00f4ng, TC-002 \u2013 Thanh to\u00e1n th\u1ea5t b\u1ea1i<\/td>\n<\/tr>\n<tr data-nodeid=\"29005\">\n<td data-nodeid=\"29006\">\u0110i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft<\/td>\n<td data-nodeid=\"29007\">Lu\u1ed3ng tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/td>\n<td data-nodeid=\"29008\">\u201cKh\u00e1ch \u0111\u00e3 \u0111\u0103ng nh\u1eadp, b\u00e0n c\u00f2n tr\u1ed1ng, nh\u00f3m 4 ng\u01b0\u1eddi\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"29009\">\n<td data-nodeid=\"29010\">Li\u00ean k\u1ebft truy v\u1ebft<\/td>\n<td data-nodeid=\"29011\">Y\u00eau c\u1ea7u \u0111\u1ebfn c\u00e1c y\u1ebfu t\u1ed1 thi\u1ebft k\u1ebf \u0111\u1ebfn c\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed<\/td>\n<td data-nodeid=\"29012\">\u201cTruy v\u1ebft: C\u00e1c b\u01b0\u1edbc ch\u00ednh 1\u20137, Quy t\u1eafc B\u1ea3ng quy\u1ebft \u0111\u1ecbnh R1\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"29013\">\n<td data-nodeid=\"29014\">Ch\u1ec9 s\u1ed1 bao ph\u1ee7<\/td>\n<td data-nodeid=\"29015\">B\u1ea3ng \u0111i\u1ec1u khi\u1ec3n d\u1ef1 \u00e1n<\/td>\n<td data-nodeid=\"29016\">\u201c92% c\u00e1c quy t\u1eafc b\u1ea3ng quy\u1ebft \u0111\u1ecbnh \u0111\u00e3 \u0111\u01b0\u1ee3c ki\u1ec3m th\u1eed\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29017\"><strong data-nodeid=\"29960\">V\u00ed d\u1ee5 v\u1ec1 c\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed do AI t\u1ea1o<\/strong>:<\/p>\n<pre class=\"lang-text\" data-nodeid=\"29018\"><code data-language=\"text\">TC-001 \u2013 \u0110\u01b0\u1eddng d\u1eabn th\u00e0nh c\u00f4ng \u2013 Kh\u00f4ng c\u1ea7n \u0111\u1eb7t c\u1ecdc\r\nM\u1ee9c \u0111\u1ed9 \u01b0u ti\u00ean: Cao\r\n\u0110i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft: Kh\u00e1ch \u0111\u00e3 \u0111\u0103ng nh\u1eadp (th\u00e0nh vi\u00ean V\u00e0ng), b\u00e0n c\u00f2n tr\u1ed1ng, gi\u1edd kh\u00f4ng cao \u0111i\u1ec3m, nh\u00f3m 4 ng\u01b0\u1eddi\r\nC\u00e1c b\u01b0\u1edbc:\r\n  1. T\u00ecm b\u00e0n \u2192 ch\u1ecdn khung gi\u1edd\r\n  2. Xem t\u00f3m t\u1eaft (kh\u00f4ng hi\u1ec3n th\u1ecb \u0111\u1eb7t c\u1ecdc)\r\n  3. X\u00e1c nh\u1eadn \u0111\u1eb7t ch\u1ed7\r\nK\u1ebft qu\u1ea3 mong \u0111\u1ee3i: \u0110\u1eb7t ch\u1ed7 \u0111\u01b0\u1ee3c x\u00e1c nh\u1eadn, th\u00f4ng b\u00e1o \u0111\u00e3 g\u1eedi, kh\u00f4ng hi\u1ec3n th\u1ecb m\u00e0n h\u00ecnh thanh to\u00e1n\r\nTruy v\u1ebft: C\u00e1c b\u01b0\u1edbc ch\u00ednh 1\u20137, Quy t\u1eafc B\u1ea3ng quy\u1ebft \u0111\u1ecbnh R1\r\n\r\nTC-002 \u2013 C\u1ea7n \u0111\u1eb7t c\u1ecdc \u2013 Thanh to\u00e1n th\u1ea5t b\u1ea1i\r\nM\u1ee9c \u0111\u1ed9 \u01b0u ti\u00ean: Cao\r\n\u0110i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft: Nh\u00f3m 10 ng\u01b0\u1eddi, gi\u1edd cao \u0111i\u1ec3m, kh\u00f4ng ph\u1ea3i th\u00e0nh vi\u00ean V\u00e0ng, th\u1ebb h\u1ee3p l\u1ec7 nh\u01b0ng kh\u00f4ng \u0111\u1ee7 ti\u1ec1n\r\nC\u00e1c b\u01b0\u1edbc:\r\n  1. Ch\u1ecdn khung gi\u1edd \u2192 chuy\u1ec3n sang thanh to\u00e1n\r\n  2. Nh\u1eadp th\u1ebb \u2192 g\u1eedi\r\nK\u1ebft qu\u1ea3 mong \u0111\u1ee3i: Th\u00f4ng b\u00e1o l\u1ed7i \"Thanh to\u00e1n b\u1ecb t\u1eeb ch\u1ed1i\", \u0111\u1eb7t ch\u1ed7 kh\u00f4ng \u0111\u01b0\u1ee3c t\u1ea1o, quay l\u1ea1i ch\u1ecdn khung gi\u1edd\r\nTruy v\u1ebft: Quy t\u1eafc B\u1ea3ng quy\u1ebft \u0111\u1ecbnh R5, Lu\u1ed3ng ngo\u1ea1i l\u1ec7 4b\r\n<\/code><\/pre>\n<hr data-nodeid=\"29019\"\/>\n<h3 data-nodeid=\"29020\">B\u01b0\u1edbc 6: \u0110\u1ed3ng b\u1ed9 h\u00f3a v\u00e0 c\u1eadp nh\u1eadt li\u00ean t\u1ee5c<\/h3>\n<p data-nodeid=\"29021\"><strong data-nodeid=\"29966\">M\u1ee5c ti\u00eau<\/strong>: Duy tr\u00ec m\u1ed9t ngu\u1ed3n s\u1ef1 th\u1eadt duy nh\u1ea5t tr\u00ean t\u1ea5t c\u1ea3 c\u00e1c t\u00e0i li\u1ec7u.<\/p>\n<p data-nodeid=\"29022\"><strong data-nodeid=\"29974\">Quy tr\u00ecnh v\u00f2ng k\u00edn<\/strong>:<br \/>\n<img alt=\"\" data-nodeid=\"29973\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc99b3ad7d.png\"\/><\/p>\n<p data-nodeid=\"29023\"><strong data-nodeid=\"29979\">L\u1ee3i \u00edch c\u1ee7a \u0111\u1ed3ng b\u1ed9 h\u00f3a hai chi\u1ec1u<\/strong>:<\/p>\n<ul data-nodeid=\"29024\">\n<li data-nodeid=\"29025\">\n<p data-nodeid=\"29026\">C\u1eadp nh\u1eadt m\u1ed9t l\u1edbp tr\u00ean Desktop \u2192 \u0111\u01b0\u1ee3c l\u00e0m m\u1edbi t\u1ef1 \u0111\u1ed9ng trong OpenDocs<\/p>\n<\/li>\n<li data-nodeid=\"29027\">\n<p data-nodeid=\"29028\">Tinh ch\u1ec9nh m\u1ed9t l\u1ec7nh nh\u1eafc trong Chatbot \u2192 \u0111\u1ea9y thay \u0111\u1ed5i tr\u1edf l\u1ea1i Studios<\/p>\n<\/li>\n<li data-nodeid=\"29029\">\n<p data-nodeid=\"29030\">\u0110\u1ed3ng b\u1ed9 h\u00f3a qua m\u1ed9t t\u00e0i kho\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"29031\">\n<p data-nodeid=\"29032\">L\u1ecbch s\u1eed phi\u00ean b\u1ea3n v\u00e0 kh\u1ea3 n\u0103ng truy v\u1ebft \u0111\u1ea7y \u0111\u1ee7<\/p>\n<\/li>\n<li data-nodeid=\"29033\">\n<p data-nodeid=\"29034\">Kh\u00f4ng c\u1ea7n s\u1eeda l\u1ea1i th\u1ee7 c\u00f4ng<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"29035\"\/>\n<h2 data-nodeid=\"29036\">Ph\u1ea7n 3: H\u01b0\u1edbng d\u1eabn v\u00e0 Th\u1ef1c ti\u1ec5n T\u1ed1t nh\u1ea5t<\/h2>\n<h3 data-nodeid=\"29037\">1. Th\u1ef1c ti\u1ec5n T\u1ed1t nh\u1ea5t cho Chatbot AI<\/h3>\n<p data-nodeid=\"29038\"><strong data-nodeid=\"29991\">K\u1ef9 thu\u1eadt t\u1ea1o l\u1ec7nh nh\u1eafc hi\u1ec7u qu\u1ea3<\/strong>:<\/p>\n<table data-nodeid=\"29040\">\n<thead data-nodeid=\"29041\">\n<tr data-nodeid=\"29042\">\n<th data-nodeid=\"29044\"><strong data-nodeid=\"29995\">N\u00ean l\u00e0m<\/strong><\/th>\n<th data-nodeid=\"29045\"><strong data-nodeid=\"30001\">Kh\u00f4ng n\u00ean l\u00e0m<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29048\">\n<tr data-nodeid=\"29049\">\n<td data-nodeid=\"29050\">X\u00e1c \u0111\u1ecbnh r\u00f5 t\u00ean c\u00e1c th\u00e0nh vi\u00ean ngay t\u1eeb \u0111\u1ea7u: \u201cNg\u01b0\u1eddi d\u00f9ng, Tr\u00ecnh duy\u1ec7t, D\u1ecbch v\u1ee5 X\u00e1c th\u1ef1c\u201d<\/td>\n<td data-nodeid=\"29051\">Y\u00eau c\u1ea7u m\u01a1 h\u1ed3 nh\u01b0 \u201cT\u1ea1o s\u01a1 \u0111\u1ed3 h\u1ec7 th\u1ed1ng\u201d<\/td>\n<\/tr>\n<tr data-nodeid=\"29052\">\n<td data-nodeid=\"29053\">S\u1eed d\u1ee5ng ng\u00f4n ng\u1eef \u0111i\u1ec1u khi\u1ec3n lu\u1ed3ng: \u201cn\u1ebfu\u2026th\u00ec\u2026ng\u01b0\u1ee3c l\u1ea1i\u201d, \u201ctrong khi\u201d, \u201csong song\u201d<\/td>\n<td data-nodeid=\"29054\">Gi\u1ea3 \u0111\u1ecbnh AI \u0111\u00e3 bi\u1ebft c\u00e1c l\u1edbp ki\u1ebfn tr\u00fac m\u00e0 b\u1ea1n ch\u01b0a \u0111\u1ec1 c\u1eadp<\/td>\n<\/tr>\n<tr data-nodeid=\"29055\">\n<td data-nodeid=\"29056\">X\u00e1c \u0111\u1ecbnh r\u00f5 c\u00e1c l\u1edbp ki\u1ebfn tr\u00fac: \u201cB\u1ed9 \u0111i\u1ec1u khi\u1ec3n \u2192 D\u1ecbch v\u1ee5 \u2192 Kho l\u01b0u tr\u1eef\u201d<\/td>\n<td data-nodeid=\"29057\">Tr\u1ed9n nhi\u1ec1u k\u1ecbch b\u1ea3n kh\u00f4ng li\u00ean quan v\u00e0o m\u1ed9t l\u1ec7nh nh\u1eafc<\/td>\n<\/tr>\n<tr data-nodeid=\"29058\">\n<td data-nodeid=\"29059\">Y\u00eau c\u1ea7u ch\u00fa th\u00edch: \u201cTh\u00eam ghi ch\u00fa cho c\u00e1c \u0111i\u1ec1u ki\u1ec7n ti\u00ean quy\u1ebft\u201d<\/td>\n<td data-nodeid=\"29060\">K\u1ef3 v\u1ecdng b\u1ed1 c\u1ee5c ho\u00e0n h\u1ea3o ngay t\u1eeb l\u1ea7n th\u1eed \u0111\u1ea7u ti\u00ean<\/td>\n<\/tr>\n<tr data-nodeid=\"29061\">\n<td data-nodeid=\"29062\">Y\u00eau c\u1ea7u c\u00e1c bi\u1ebfn th\u1ec3: \u201cHi\u1ec3n th\u1ecb \u0111\u01b0\u1eddng d\u1eabn l\u1ed7i ri\u00eang bi\u1ec7t\u201d<\/td>\n<td data-nodeid=\"29063\">Qu\u00ean l\u1eb7p l\u1ea1i v\u00e0 tinh ch\u1ec9nh<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29064\"><strong data-nodeid=\"30044\">L\u1ec7nh tinh ch\u1ec9nh l\u1eb7p l\u1ea1i<\/strong>:<\/p>\n<pre class=\"lang-text\" data-nodeid=\"29065\"><code data-language=\"text\">\"Th\u00eam v\u00f2ng l\u1eb7p th\u1eed l\u1ea1i n\u1ebfu x\u00e1c th\u1ef1c OTP th\u1ea5t b\u1ea1i (t\u1ed1i \u0111a 3 l\u1ea7n th\u1eed)\"\n\"Ch\u00e8n b\u01b0\u1edbc x\u00e1c th\u1ef1c hai y\u1ebfu t\u1ed1 ch\u1ec9 khi ng\u01b0\u1eddi d\u00f9ng \u0111\u00e3 b\u1eadt 2FA (s\u1eed d\u1ee5ng fragment t\u00f9y ch\u1ecdn)\"\n\"Hi\u1ec3n th\u1ecb th\u00f4ng b\u00e1o song song: sau khi thanh to\u00e1n th\u00e0nh c\u00f4ng, th\u00f4ng b\u00e1o cho kh\u00e1ch h\u00e0ng v\u00e0 c\u1eadp nh\u1eadt kho h\u00e0ng \u0111\u1ed3ng th\u1eddi\"\n\"Thay \u0111\u1ed5i \u0111\u01b0\u1eddng \u0111\u1eddi c\u1ee7a PaymentGateway \u0111\u1ec3 hi\u1ec3n th\u1ecb th\u1eddi gian ch\u1edd sau 30 gi\u00e2y\"\n\"Th\u00eam th\u00f4ng b\u00e1o t\u1ef1 g\u1ecdi tr\u00ean OrderService \u0111\u1ec3 t\u00ednh t\u1ed5ng tr\u01b0\u1edbc khi g\u1ecdi PaymentGateway\"\n<\/code><\/pre>\n<h3 data-nodeid=\"29066\">2. Th\u1ef1c ti\u1ec5n T\u1ed1t nh\u1ea5t cho M\u00f4 h\u00ecnh h\u00f3a C4<\/h3>\n<p data-nodeid=\"29067\"><strong data-nodeid=\"30050\">H\u01b0\u1edbng d\u1eabn theo t\u1eebng l\u1edbp<\/strong>:<\/p>\n<table data-nodeid=\"29069\">\n<thead data-nodeid=\"29070\">\n<tr data-nodeid=\"29071\">\n<th data-nodeid=\"29073\"><strong data-nodeid=\"30054\">L\u1edbp<\/strong><\/th>\n<th data-nodeid=\"29074\"><strong data-nodeid=\"30058\">Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29077\">\n<tr data-nodeid=\"29078\">\n<td data-nodeid=\"29079\"><strong data-nodeid=\"30062\">B\u1ed1i c\u1ea3nh<\/strong><\/td>\n<td data-nodeid=\"29080\">Ch\u1ec9 hi\u1ec3n th\u1ecb ranh gi\u1edbi h\u1ec7 th\u1ed1ng v\u00e0 c\u00e1c t\u01b0\u01a1ng t\u00e1c b\u00ean ngo\u00e0i tr\u1ef1c ti\u1ebfp; m\u1ed9t h\u1ed9p cho to\u00e0n b\u1ed9 h\u1ec7 th\u1ed1ng<\/td>\n<\/tr>\n<tr data-nodeid=\"29081\">\n<td data-nodeid=\"29082\"><strong data-nodeid=\"30067\">H\u1ed9p ch\u1ee9a<\/strong><\/td>\n<td data-nodeid=\"29083\">Hi\u1ec3n th\u1ecb c\u00e1c \u0111\u01a1n v\u1ecb c\u00f3 th\u1ec3 tri\u1ec3n khai (\u1ee9ng d\u1ee5ng, c\u01a1 s\u1edf d\u1eef li\u1ec7u, d\u1ecbch v\u1ee5); tr\u00e1nh hi\u1ec3n th\u1ecb chi ti\u1ebft c\u00f4ng ngh\u1ec7 trong c\u00e1c m\u1ed1i quan h\u1ec7<\/td>\n<\/tr>\n<tr data-nodeid=\"29084\">\n<td data-nodeid=\"29085\"><strong data-nodeid=\"30072\">Th\u00e0nh ph\u1ea7n<\/strong><\/td>\n<td data-nodeid=\"29086\">Hi\u1ec3n th\u1ecb nh\u00f3m logic c\u00e1c l\u1edbp; \u0111\u1ea3m b\u1ea3o m\u1ed7i th\u00e0nh ph\u1ea7n c\u00f3 tr\u00e1ch nhi\u1ec7m r\u00f5 r\u00e0ng<\/td>\n<\/tr>\n<tr data-nodeid=\"29087\">\n<td data-nodeid=\"29088\"><strong data-nodeid=\"30077\">Tri\u1ec3n khai<\/strong><\/td>\n<td data-nodeid=\"29089\">\u00c1nh x\u1ea1 c\u00e1c th\u00e0nh ph\u1ea7n v\u00e0o c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng th\u1ef1c t\u1ebf; bao g\u1ed3m th\u00f4ng tin v\u1ec1 d\u1ef1 ph\u00f2ng v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29090\"><strong data-nodeid=\"30083\">Nguy\u00ean t\u1eafc chung c\u1ee7a C4<\/strong>:<\/p>\n<ul data-nodeid=\"29091\">\n<li data-nodeid=\"29092\">\n<p data-nodeid=\"29093\">M\u1ed7i c\u1ea5p \u0111\u1ed9 n\u00ean cung c\u1ea5p m\u1ed9t g\u00f3c nh\u00ecn kh\u00e1c nhau, kh\u00f4ng ch\u1ec9 l\u00e0 nhi\u1ec1u chi ti\u1ebft h\u01a1n<\/p>\n<\/li>\n<li data-nodeid=\"29094\">\n<p data-nodeid=\"29095\">S\u01a1 \u0111\u1ed3 n\u00ean t\u1ef1 gi\u1ea3i th\u00edch v\u1edbi t\u1ed1i thi\u1ec3u v\u0103n b\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"29096\">\n<p data-nodeid=\"29097\">Duy tr\u00ec t\u00ednh nh\u1ea5t qu\u00e1n c\u1ee7a thu\u1eadt ng\u1eef tr\u00ean t\u1ea5t c\u1ea3 c\u00e1c c\u1ea5p \u0111\u1ed9<\/p>\n<\/li>\n<li data-nodeid=\"29098\">\n<p data-nodeid=\"29099\">S\u1eed d\u1ee5ng m\u00e3 m\u00e0u \u0111\u1ec3 ph\u00e2n bi\u1ec7t th\u00e0nh ph\u1ea7n h\u1ec7 th\u1ed1ng so v\u1edbi th\u00e0nh ph\u1ea7n b\u00ean ngo\u00e0i<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29100\">3. Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t cho quy tr\u00ecnh<\/h3>\n<p data-nodeid=\"29101\"><strong data-nodeid=\"30093\">Qu\u1ea3n l\u00fd si\u00eau d\u1eef li\u1ec7u<\/strong>:<\/p>\n<table data-nodeid=\"29103\">\n<thead data-nodeid=\"29104\">\n<tr data-nodeid=\"29105\">\n<th data-nodeid=\"29107\"><strong data-nodeid=\"30097\">Th\u1ef1c h\u00e0nh<\/strong><\/th>\n<th data-nodeid=\"29108\"><strong data-nodeid=\"30101\">T\u1ea1i sao<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29111\">\n<tr data-nodeid=\"29112\">\n<td data-nodeid=\"29113\">Th\u00eam ghi ch\u00fa commit m\u00f4 t\u1ea3<\/td>\n<td data-nodeid=\"29114\">H\u1ed7 tr\u1ee3 nh\u1eadn di\u1ec7n phi\u00ean b\u1ea3n v\u00e0 theo d\u00f5i ki\u1ec3m to\u00e1n<\/td>\n<\/tr>\n<tr data-nodeid=\"29115\">\n<td data-nodeid=\"29116\">S\u1eed d\u1ee5ng quy \u01b0\u1edbc \u0111\u1eb7t t\u00ean nh\u1ea5t qu\u00e1n<\/td>\n<td data-nodeid=\"29117\">Cho ph\u00e9p l\u1ecdc v\u00e0 t\u00ecm ki\u1ebfm tr\u00ean b\u1ed9 s\u01b0u t\u1eadp c\u1ee7a nh\u00f3m<\/td>\n<\/tr>\n<tr data-nodeid=\"29118\">\n<td data-nodeid=\"29119\">Bao g\u1ed3m th\u00f4ng tin n\u1ec1n t\u1ea3ng ngu\u1ed3n<\/td>\n<td data-nodeid=\"29120\">Theo d\u00f5i ngu\u1ed3n g\u1ed1c c\u1ee7a s\u1ea3n ph\u1ea9m<\/td>\n<\/tr>\n<tr data-nodeid=\"29121\">\n<td data-nodeid=\"29122\">G\u1eafn th\u1ebb v\u1edbi \u0111\u1ecbnh danh sprint ho\u1eb7c ph\u00e1t h\u00e0nh<\/td>\n<td data-nodeid=\"29123\">H\u1ed7 tr\u1ee3 ho\u00e0n t\u00e1c v\u00e0 so s\u00e1nh<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29124\"><strong data-nodeid=\"30114\">Qu\u1ea3n l\u00fd phi\u00ean b\u1ea3n<\/strong>:<\/p>\n<ul data-nodeid=\"29125\">\n<li data-nodeid=\"29126\">\n<p data-nodeid=\"29127\">Xem x\u00e9t c\u00e1c b\u1ea3n s\u1eeda \u0111\u1ed5i tr\u01b0\u1edbc khi thay th\u1ebf trong t\u00e0i li\u1ec7u<\/p>\n<\/li>\n<li data-nodeid=\"29128\">\n<p data-nodeid=\"29129\">Gi\u1eef c\u00e1c phi\u00ean b\u1ea3n tr\u01b0\u1edbc \u0111\u00f3 c\u00f3 th\u1ec3 truy c\u1eadp \u0111\u1ec3 ph\u1ee5c v\u1ee5 ki\u1ec3m to\u00e1n<\/p>\n<\/li>\n<li data-nodeid=\"29130\">\n<p data-nodeid=\"29131\">S\u1eed d\u1ee5ng ch\u1ec9 b\u00e1o phi\u00ean b\u1ea3n (\ud83d\udd04) \u0111\u1ec3 x\u00e1c \u0111\u1ecbnh c\u00e1c s\u01a1 \u0111\u1ed3 \u0111\u00e3 l\u1ed7i th\u1eddi<\/p>\n<\/li>\n<li data-nodeid=\"29132\">\n<p data-nodeid=\"29133\">C\u1eadp nh\u1eadt theo l\u00f4 khi c\u00f3 th\u1ec3 \u0111\u1ec3 duy tr\u00ec t\u00ednh nh\u1ea5t qu\u00e1n c\u1ee7a t\u00e0i li\u1ec7u<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29134\">4. Th\u1ef1c ti\u1ec5n t\u1ed1t nh\u1ea5t c\u1ee7a OpenDocs<\/h3>\n<p data-nodeid=\"29135\"><strong data-nodeid=\"30124\">C\u1ea5u tr\u00fac t\u00e0i li\u1ec7u<\/strong>:<\/p>\n<table data-nodeid=\"29137\">\n<thead data-nodeid=\"29138\">\n<tr data-nodeid=\"29139\">\n<th data-nodeid=\"29141\"><strong data-nodeid=\"30128\">Th\u1ef1c h\u00e0nh<\/strong><\/th>\n<th data-nodeid=\"29142\"><strong data-nodeid=\"30132\">M\u00f4 t\u1ea3<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29145\">\n<tr data-nodeid=\"29146\">\n<td data-nodeid=\"29147\">S\u1eed d\u1ee5ng kh\u00f4ng gian c\u00f3 c\u1ea5u tr\u00fac c\u00e2y<\/td>\n<td data-nodeid=\"29148\">T\u1ed5 ch\u1ee9c t\u00e0i li\u1ec7u b\u1eb1ng c\u00e1c th\u01b0 m\u1ee5c l\u1ed3ng nhau theo c\u1ea5p b\u1eadc; ph\u1ea3n \u00e1nh ki\u1ebfn tr\u00fac h\u1ec7 th\u1ed1ng<\/td>\n<\/tr>\n<tr data-nodeid=\"29149\">\n<td data-nodeid=\"29150\">Nh\u00fang, kh\u00f4ng \u0111\u00ednh k\u00e8m<\/td>\n<td data-nodeid=\"29151\">Ch\u00e8n c\u00e1c t\u00e0i nguy\u00ean Pipeline tr\u1ef1c ti\u1ebfp thay v\u00ec \u1ea3nh ch\u1ee5p m\u00e0n h\u00ecnh t\u0129nh<\/td>\n<\/tr>\n<tr data-nodeid=\"29152\">\n<td data-nodeid=\"29153\">Duy tr\u00ec s\u1ef1 t\u00e1ch bi\u1ec7t gi\u1eefa c\u00e1c m\u1ed1i quan t\u00e2m<\/td>\n<td data-nodeid=\"29154\">T\u00e1ch bi\u1ec7t s\u01a1 \u0111\u1ed3 ki\u1ebfn tr\u00fac kh\u1ecfi t\u00e0i li\u1ec7u tri\u1ec3n khai chi ti\u1ebft<\/td>\n<\/tr>\n<tr data-nodeid=\"29155\">\n<td data-nodeid=\"29156\">Cho ph\u00e9p c\u1ed9ng t\u00e1c<\/td>\n<td data-nodeid=\"29157\">Chia s\u1ebb li\u00ean k\u1ebft \u0111\u01a1n; c\u00e1c b\u00ean li\u00ean quan b\u00ecnh lu\u1eadn tr\u1ef1c ti\u1ebfp tr\u00ean s\u01a1 \u0111\u1ed3 ho\u1eb7c v\u0103n b\u1ea3n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29158\"><strong data-nodeid=\"30147\">\u0110\u01b0\u1eddng d\u1eabn nh\u00fang JIT (Just-in-Time)<\/strong>:<\/p>\n<ol data-nodeid=\"29159\">\n<li data-nodeid=\"29160\">\n<p data-nodeid=\"29161\"><strong data-nodeid=\"30152\">Nh\u00fang theo y\u00eau c\u1ea7u<\/strong>: Nh\u1ea5p v\u00e0o Ch\u00e8n &gt; S\u01a1 \u0111\u1ed3 tr\u1ef1c ti\u1ebfp trong trang t\u00e0i li\u1ec7u<\/p>\n<\/li>\n<li data-nodeid=\"29162\">\n<p data-nodeid=\"29163\"><strong data-nodeid=\"30157\">T\u1ea1o t\u1ef1 \u0111\u1ed9ng b\u1eb1ng AI<\/strong>: S\u1eed d\u1ee5ng ng\u00f4n ng\u1eef t\u1ef1 nhi\u00ean \u0111\u1ec3 t\u1ea1o s\u01a1 \u0111\u1ed3 b\u00ean trong n\u1ed9i dung v\u0103n b\u1ea3n<\/p>\n<\/li>\n<li data-nodeid=\"29164\">\n<p data-nodeid=\"29165\"><strong data-nodeid=\"30162\">\u0110\u01b0\u1eddng d\u1eabn t\u00e0i s\u1ea3n trung t\u00e2m<\/strong>: \u0110\u1ea9y t\u1eeb Desktop\/Online v\u00e0o Pipeline; k\u00e9o v\u00e0o t\u00e0i li\u1ec7u<\/p>\n<\/li>\n<\/ol>\n<h3 data-nodeid=\"29166\">5. Th\u1ef1c ti\u1ec5n t\u1ed1t nh\u1ea5t v\u1ec1 \u0111\u1ea3m b\u1ea3o ch\u1ea5t l\u01b0\u1ee3ng<\/h3>\n<p data-nodeid=\"29167\"><strong data-nodeid=\"30168\">Y\u00eau c\u1ea7u v\u1ec1 kh\u1ea3 n\u0103ng truy v\u1ebft<\/strong>:<\/p>\n<table data-nodeid=\"29169\">\n<thead data-nodeid=\"29170\">\n<tr data-nodeid=\"29171\">\n<th data-nodeid=\"29173\"><strong data-nodeid=\"30172\">T\u00e0i s\u1ea3n<\/strong><\/th>\n<th data-nodeid=\"29174\"><strong data-nodeid=\"30176\">Y\u00eau c\u1ea7u truy xu\u1ea5t ngu\u1ed3n g\u1ed1c<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29177\">\n<tr data-nodeid=\"29178\">\n<td data-nodeid=\"29179\">Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/td>\n<td data-nodeid=\"29180\">Li\u00ean k\u1ebft \u0111\u1ebfn c\u00e1c y\u00eau c\u1ea7u v\u00e0 tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed<\/td>\n<\/tr>\n<tr data-nodeid=\"29181\">\n<td data-nodeid=\"29182\">B\u1ea3ng quy\u1ebft \u0111\u1ecbnh<\/td>\n<td data-nodeid=\"29183\">\u0110\u1ea3m b\u1ea3o m\u1ecdi quy t\u1eafc \u0111\u1ec1u \u0111\u01b0\u1ee3c bao ph\u1ee7 b\u1edfi \u00edt nh\u1ea5t m\u1ed9t b\u00e0i ki\u1ec3m th\u1eed<\/td>\n<\/tr>\n<tr data-nodeid=\"29184\">\n<td data-nodeid=\"29185\">S\u01a1 \u0111\u1ed3 ho\u1ea1t \u0111\u1ed9ng\/Chu\u1ed7i<\/td>\n<td data-nodeid=\"29186\">Li\u00ean k\u1ebft c\u00e1c b\u01b0\u1edbc ki\u1ec3m th\u1eed v\u1edbi c\u00e1c ph\u1ea7n t\u1eed c\u1ee5 th\u1ec3 c\u1ee7a s\u01a1 \u0111\u1ed3<\/td>\n<\/tr>\n<tr data-nodeid=\"29187\">\n<td data-nodeid=\"29188\">C\u00e1c kh\u00eda c\u1ea1nh phi ch\u1ee9c n\u0103ng<\/td>\n<td data-nodeid=\"29189\">\u0110\u01b0a v\u00e0o ghi ch\u00fa ho\u1eb7c r\u00e0ng bu\u1ed9c; ki\u1ec3m th\u1eed ri\u00eang bi\u1ec7t<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p data-nodeid=\"29190\"><strong data-nodeid=\"30189\">Ch\u1ec9 s\u1ed1 bao ph\u1ee7 ki\u1ec3m th\u1eed<\/strong>:<\/p>\n<ul data-nodeid=\"29191\">\n<li data-nodeid=\"29192\">\n<p data-nodeid=\"29193\">Gi\u00e1m s\u00e1t t\u00ednh \u0111\u1ea7y \u0111\u1ee7 qua B\u1ea3ng \u0111i\u1ec1u khi\u1ec3n D\u1ef1 \u00e1n<\/p>\n<\/li>\n<li data-nodeid=\"29194\">\n<p data-nodeid=\"29195\">Theo d\u00f5i m\u1ee9c \u0111\u1ed9 bao ph\u1ee7 tr\u00ean: tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, b\u1ea3ng quy\u1ebft \u0111\u1ecbnh, k\u1ecbch b\u1ea3n (\u0111\u01b0\u1eddng th\u00e0nh c\u00f4ng, ph\u01b0\u01a1ng \u00e1n thay th\u1ebf, ngo\u1ea1i l\u1ec7, tr\u01b0\u1eddng h\u1ee3p bi\u00ean)<\/p>\n<\/li>\n<li data-nodeid=\"29196\">\n<p data-nodeid=\"29197\">S\u1eafp x\u1ebfp \u01b0u ti\u00ean c\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed c\u00f2n l\u1ea1i d\u1ef1a tr\u00ean r\u1ee7i ro<\/p>\n<\/li>\n<\/ul>\n<h3 data-nodeid=\"29198\">6. Th\u1ef1c h\u00e0nh t\u1ed1t nh\u1ea5t v\u1ec1 b\u00e1o c\u00e1o v\u00e0 t\u00e0i li\u1ec7u<\/h3>\n<p data-nodeid=\"29199\"><strong data-nodeid=\"30198\">C\u1ea5u tr\u00fac b\u00e1o c\u00e1o do AI t\u1ea1o ra<\/strong>:<\/p>\n<table data-nodeid=\"29201\">\n<thead data-nodeid=\"29202\">\n<tr data-nodeid=\"29203\">\n<th data-nodeid=\"29205\"><strong data-nodeid=\"30202\">Ph\u1ea7n<\/strong><\/th>\n<th data-nodeid=\"29206\"><strong data-nodeid=\"30206\">N\u1ed9i dung<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29209\">\n<tr data-nodeid=\"29210\">\n<td data-nodeid=\"29211\">T\u00f3m t\u1eaft \u0111i\u1ec1u h\u00e0nh<\/td>\n<td data-nodeid=\"29212\">T\u00f3m t\u1eaft c\u1ea5p cao v\u1ec1 m\u1ee5c ti\u00eau c\u1ee7a h\u1ec7 th\u1ed1ng<\/td>\n<\/tr>\n<tr data-nodeid=\"29213\">\n<td data-nodeid=\"29214\">M\u00f4 h\u00ecnh logic tr\u1ef1c quan<\/td>\n<td data-nodeid=\"29215\">S\u01a1 \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, ho\u1ea1t \u0111\u1ed9ng v\u00e0 chu\u1ed7i \u0111\u00e3 \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb<\/td>\n<\/tr>\n<tr data-nodeid=\"29216\">\n<td data-nodeid=\"29217\">Th\u00f4ng s\u1ed1 k\u1ef9 thu\u1eadt ch\u1ee9c n\u0103ng<\/td>\n<td data-nodeid=\"29218\">Lu\u1ed3ng chi ti\u1ebft c\u1ee7a c\u00e1c s\u1ef1 ki\u1ec7n (\u0111\u01b0\u1eddng ch\u00ednh, \u0111\u01b0\u1eddng thay th\u1ebf, \u0111\u01b0\u1eddng ngo\u1ea1i l\u1ec7)<\/td>\n<\/tr>\n<tr data-nodeid=\"29219\">\n<td data-nodeid=\"29220\">Ma tr\u1eadn truy xu\u1ea5t ngu\u1ed3n g\u1ed1c<\/td>\n<td data-nodeid=\"29221\">Y\u00eau c\u1ea7u \u2192 Thi\u1ebft k\u1ebf \u2192 Tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed<\/td>\n<\/tr>\n<tr data-nodeid=\"29222\">\n<td data-nodeid=\"29223\">S\u01a1 \u0111\u1ed3 d\u1eef li\u1ec7u<\/td>\n<td data-nodeid=\"29224\">S\u01a1 \u0111\u1ed3 Quan h\u1ec7 &#8211; Th\u1ef1c th\u1ec3 v\u00e0 c\u1ea5u tr\u00fac l\u1edbp<\/td>\n<\/tr>\n<tr data-nodeid=\"29225\">\n<td data-nodeid=\"29226\">K\u1ebf ho\u1ea1ch tri\u1ec3n khai<\/td>\n<td data-nodeid=\"29227\">Y\u00eau c\u1ea7u c\u01a1 s\u1edf h\u1ea1 t\u1ea7ng v\u00e0 ki\u1ebfn tr\u00fac m\u1ea1ng<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"29228\"\/>\n<h2 data-nodeid=\"29229\">Ph\u1ea7n 4: V\u00ed d\u1ee5 v\u1ec1 quy tr\u00ecnh l\u00e0m vi\u1ec7c t\u1eeb \u0111\u1ea7u \u0111\u1ebfn cu\u1ed1i<\/h2>\n<h3 data-nodeid=\"29230\">K\u1ecbch b\u1ea3n: X\u00e2y d\u1ef1ng H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd Kho<\/h3>\n<p data-nodeid=\"29231\"><strong data-nodeid=\"30224\">B\u01b0\u1edbc 1: Chatbot AI \u2013 \u00dd t\u01b0\u1edfng h\u00f3a<\/strong><\/p>\n<pre class=\"lang-text\" data-nodeid=\"29232\"><code data-language=\"text\">L\u1ec7nh: \"T\u1ea1o s\u01a1 \u0111\u1ed3 Ng\u1eef c\u1ea3nh H\u1ec7 th\u1ed1ng C4 cho H\u1ec7 th\u1ed1ng Qu\u1ea3n l\u00fd Kho \r\nt\u00edch h\u1ee3p v\u1edbi ERP v\u00e0 Qu\u1ea3n l\u00fd \u0110\u01a1n h\u00e0ng\"\r\n<\/code><\/pre>\n<p data-nodeid=\"29233\"><strong data-nodeid=\"30229\">K\u1ebft qu\u1ea3<\/strong>: S\u01a1 \u0111\u1ed3 Ng\u1eef c\u1ea3nh ban \u0111\u1ea7u hi\u1ec3n th\u1ecb ng\u01b0\u1eddi d\u00f9ng (Nh\u00e2n vi\u00ean Kho, Qu\u1ea3n l\u00fd, H\u1eadu c\u1ea7n) v\u00e0 c\u00e1c h\u1ec7 th\u1ed1ng b\u00ean ngo\u00e0i (ERP, OMS).<\/p>\n<p data-nodeid=\"29234\"><strong data-nodeid=\"30233\">B\u01b0\u1edbc 2: C4-PlantUML Studio \u2013 Tinh ch\u1ec9nh c\u00f3 h\u01b0\u1edbng d\u1eabn<\/strong><\/p>\n<ul data-nodeid=\"29235\">\n<li data-nodeid=\"29236\">\n<p data-nodeid=\"29237\">X\u00e1c \u0111\u1ecbnh tuy\u00ean b\u1ed1 v\u1ea5n \u0111\u1ec1 v\u1edbi s\u1ef1 h\u1ed7 tr\u1ee3 c\u1ee7a AI<\/p>\n<\/li>\n<li data-nodeid=\"29238\">\n<p data-nodeid=\"29239\">T\u1ea1o s\u01a1 \u0111\u1ed3 Container: \u1ee8ng d\u1ee5ng Web (React), D\u1ecbch v\u1ee5 T\u1ed1i \u01b0u h\u00f3a L\u01b0u tr\u1eef (Spring Boot), C\u01a1 s\u1edf d\u1eef li\u1ec7u H\u00e0ng t\u1ed3n kho (PostgreSQL)<\/p>\n<\/li>\n<li data-nodeid=\"29240\">\n<p data-nodeid=\"29241\">T\u1ea1o s\u01a1 \u0111\u1ed3 Th\u00e0nh ph\u1ea7n: \u0110\u1ed9ng c\u01a1 Ph\u00e2n t\u00edch L\u01b0u tr\u1eef, C\u00f4ng c\u1ee5 T\u00ednh to\u00e1n K\u00edch th\u01b0\u1edbc M\u1eb7t h\u00e0ng, D\u1ecbch v\u1ee5 T\u1ea7n su\u1ea5t M\u1eb7t h\u00e0ng, D\u1ecbch v\u1ee5 T\u00e1i b\u1ed5 sung<\/p>\n<\/li>\n<li data-nodeid=\"29242\">\n<p data-nodeid=\"29243\">T\u1ea1o s\u01a1 \u0111\u1ed3 Tri\u1ec3n khai: Ki\u1ebfn tr\u00fac AWS v\u1edbi EC2, RDS, ElastiCache<\/p>\n<\/li>\n<li data-nodeid=\"29244\">\n<p data-nodeid=\"29245\">Th\u00eam Ch\u1ebf \u0111\u1ed9 xem \u0110\u1ed9ng: S\u01a1 \u0111\u1ed3 Chu\u1ed7i cho vi\u1ec7c theo d\u00f5i di chuy\u1ec3n h\u00e0ng t\u1ed3n kho<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"29246\"><strong data-nodeid=\"30244\">B\u01b0\u1edbc 3: Tinh ch\u1ec9nh M\u1ed1i quan h\u1ec7<\/strong><br \/>\nAI x\u00e1c \u0111\u1ecbnh v\u00e0 \u0111\u1ec1 xu\u1ea5t:<\/p>\n<ul data-nodeid=\"29247\">\n<li data-nodeid=\"29248\">\n<p data-nodeid=\"29249\">\u00abinclude\u00bb \u2192 X\u00e1c th\u1ef1c Ng\u01b0\u1eddi d\u00f9ng cho t\u1ea5t c\u1ea3 c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/p>\n<\/li>\n<li data-nodeid=\"29250\">\n<p data-nodeid=\"29251\">\u00abinclude\u00bb \u2192 X\u1eed l\u00fd Thanh to\u00e1n cho \u0110\u1eb7t b\u00e0n v\u00e0 \u0110\u1eb7t tr\u01b0\u1edbc b\u1eefa \u0103n<\/p>\n<\/li>\n<li data-nodeid=\"29252\">\n<p data-nodeid=\"29253\">\u00abextend\u00bb \u2192 \u00c1p d\u1ee5ng Phi\u1ebfu gi\u1ea3m gi\u00e1 (c\u00f3 \u0111i\u1ec1u ki\u1ec7n d\u1ef1a tr\u00ean m\u00e3 khuy\u1ebfn m\u00e3i)<\/p>\n<\/li>\n<li data-nodeid=\"29254\">\n<p data-nodeid=\"29255\">\u00abextend\u00bb \u2192 X\u1eed l\u00fd Danh s\u00e1ch ch\u1edd (c\u00f3 \u0111i\u1ec1u ki\u1ec7n khi kh\u00f4ng c\u00f2n b\u00e0n tr\u1ed1ng)<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"29256\"><strong data-nodeid=\"30252\">B\u01b0\u1edbc 4: OpenDocs \u2013 T\u00e0i li\u1ec7u S\u1ed1ng<\/strong><\/p>\n<ul data-nodeid=\"29257\">\n<li data-nodeid=\"29258\">\n<p data-nodeid=\"29259\">Ch\u00e8n t\u1ea5t c\u1ea3 c\u00e1c s\u1ea3n ph\u1ea9m c\u1ee7a Quy tr\u00ecnh v\u00e0o c\u00e1c trang t\u00e0i li\u1ec7u<\/p>\n<\/li>\n<li data-nodeid=\"29260\">\n<p data-nodeid=\"29261\">Vi\u1ebft gi\u1ea3i th\u00edch b\u1eb1ng Markdown v\u1edbi c\u00e1c s\u01a1 \u0111\u1ed3 nh\u00fang tr\u1ef1c ti\u1ebfp<\/p>\n<\/li>\n<li data-nodeid=\"29262\">\n<p data-nodeid=\"29263\">Th\u00eam c\u00e1c tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed \u0111\u01b0\u1ee3c t\u1ea1o t\u1ef1 \u0111\u1ed9ng t\u1eeb c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng v\u00e0 b\u1ea3ng quy\u1ebft \u0111\u1ecbnh<\/p>\n<\/li>\n<li data-nodeid=\"29264\">\n<p data-nodeid=\"29265\">Xu\u1ea5t b\u1ea3n l\u00ean c\u1ed5ng th\u00f4ng tin cho c\u00e1c b\u00ean li\u00ean quan qua li\u00ean k\u1ebft chia s\u1ebb an to\u00e0n<\/p>\n<\/li>\n<\/ul>\n<p data-nodeid=\"29266\"><strong data-nodeid=\"30260\">B\u01b0\u1edbc 5: \u0110\u1ed3ng b\u1ed9 h\u00f3a<\/strong><\/p>\n<ul data-nodeid=\"29267\">\n<li data-nodeid=\"29268\">\n<p data-nodeid=\"29269\">Hai tu\u1ea7n sau, b\u1ed9 ph\u1eadn k\u1ef9 thu\u1eadt thay \u0111\u1ed5i thu\u1eadt to\u00e1n t\u1ed1i \u01b0u h\u00f3a l\u01b0u tr\u1eef<\/p>\n<\/li>\n<li data-nodeid=\"29270\">\n<p data-nodeid=\"29271\">Ki\u1ebfn tr\u00fac s\u01b0 ch\u1ec9nh s\u1eeda s\u01a1 \u0111\u1ed3 tr\u00ean VP Desktop<\/p>\n<\/li>\n<li data-nodeid=\"29272\">\n<p data-nodeid=\"29273\">OpenDocs \u0111\u00e1nh d\u1ea5u thay \u0111\u1ed5i \u0111\u1ed3ng b\u1ed9 cho nh\u00f3m bi\u00ean t\u1eadp<\/p>\n<\/li>\n<li data-nodeid=\"29274\">\n<p data-nodeid=\"29275\">\u0110\u1ed9i nh\u00f3m chuy\u1ec3n sang phi\u00ean b\u1ea3n m\u1edbi m\u00e0 kh\u00f4ng l\u00e0m h\u1ecfng \u0111\u1ecbnh d\u1ea1ng th\u1ee7 c\u00f4ng<\/p>\n<\/li>\n<li data-nodeid=\"29276\">\n<p data-nodeid=\"29277\">T\u1ea5t c\u1ea3 c\u00e1c b\u00ean li\u00ean quan \u0111\u1ec1u th\u1ea5y t\u00e0i li\u1ec7u \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt ngay l\u1eadp t\u1ee9c<\/p>\n<\/li>\n<\/ul>\n<hr data-nodeid=\"29278\"\/>\n<h2 data-nodeid=\"29279\">Ph\u1ea7n 5: T\u00f3m t\u1eaft v\u00e0 Nh\u1eefng \u0110i\u1ec3m Ch\u00ednh C\u1ea7n Ghi Nh\u1edb<\/h2>\n<h3 data-nodeid=\"29280\">Gi\u00e1 Tr\u1ecb \u0110\u1ec1 Xu\u1ea5t<\/h3>\n<p data-nodeid=\"29281\">H\u1ec7 sinh th\u00e1i AI c\u1ee7a Visual Paradigm chuy\u1ec3n \u0111\u1ed5i c\u00e1c quy tr\u00ecnh l\u00e0m vi\u1ec7c r\u1eddi r\u1ea1c \u201cT\u1eeb \u00dd T\u01b0\u1edfng \u0110\u1ebfn T\u00e0i Li\u1ec7u\u201d th\u00e0nh m\u1ed9t quy tr\u00ecnh t\u1ef1 \u0111\u1ed9ng th\u1ed1ng nh\u1ea5t, n\u01a1i c\u00e1c m\u00f4 h\u00ecnh tr\u1ef1c quan v\u00e0 t\u00e0i li\u1ec7u c\u00f9ng ph\u00e1t tri\u1ec3n nh\u01b0 m\u1ed9t ngu\u1ed3n s\u1ef1 th\u1eadt duy nh\u1ea5t.<\/p>\n<p data-nodeid=\"29282\"><strong data-nodeid=\"30279\">L\u1ee3i \u00cdch Ch\u00ednh<\/strong>:<\/p>\n<table data-nodeid=\"29284\">\n<thead data-nodeid=\"29285\">\n<tr data-nodeid=\"29286\">\n<th data-nodeid=\"29288\"><strong data-nodeid=\"30283\">D\u00e0nh Cho \u0110\u1ed9i Nh\u00f3m K\u1ef9 Thu\u1eadt<\/strong><\/th>\n<th data-nodeid=\"29289\"><strong data-nodeid=\"30287\">D\u00e0nh Cho C\u00e1c B\u00ean Li\u00ean Quan Trong Kinh Doanh<\/strong><\/th>\n<th data-nodeid=\"29290\"><strong data-nodeid=\"30291\">D\u00e0nh Cho C\u00e1c T\u1ed5 Ch\u1ee9c<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29294\">\n<tr data-nodeid=\"29295\">\n<td data-nodeid=\"29296\">Gi\u1ea3m chi ph\u00ed b\u1ea3o tr\u00ec<\/td>\n<td data-nodeid=\"29297\">Hi\u1ec3u r\u00f5 h\u01a1n v\u1ec1 c\u00e1c h\u1ec7 th\u1ed1ng ph\u1ee9c t\u1ea1p<\/td>\n<td data-nodeid=\"29298\">M\u1ed9t ngu\u1ed3n s\u1ef1 th\u1eadt duy nh\u1ea5t<\/td>\n<\/tr>\n<tr data-nodeid=\"29299\">\n<td data-nodeid=\"29300\">\u0110\u1ed9 ch\u00ednh x\u00e1c \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n<\/td>\n<td data-nodeid=\"29301\">Ra quy\u1ebft \u0111\u1ecbnh nhanh h\u01a1n<\/td>\n<td data-nodeid=\"29302\">Lo\u1ea1i b\u1ecf c\u00e1c silo th\u00f4ng tin<\/td>\n<\/tr>\n<tr data-nodeid=\"29303\">\n<td data-nodeid=\"29304\">T\u0103ng c\u01b0\u1eddng h\u1ee3p t\u00e1c<\/td>\n<td data-nodeid=\"29305\">Gi\u1ea3m r\u1ee7i ro hi\u1ec3u l\u1ea7m<\/td>\n<td data-nodeid=\"29306\">Qu\u1ea3n tr\u1ecb tri th\u1ee9c c\u00f3 th\u1ec3 m\u1edf r\u1ed9ng<\/td>\n<\/tr>\n<tr data-nodeid=\"29307\">\n<td data-nodeid=\"29308\">Hi\u1ec7u su\u1ea5t \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI<\/td>\n<td data-nodeid=\"29309\">Th\u00f4ng tin lu\u00f4n \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt v\u00e0 s\u1eb5n s\u00e0ng<\/td>\n<td data-nodeid=\"29310\">Xu\u1ea5t b\u1ea3n b\u1ec1n v\u1eefng cho t\u01b0\u01a1ng lai<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 data-nodeid=\"29311\">T\u00f3m t\u1eaft Quy Tr\u00ecnh L\u00e0m Vi\u1ec7c Cu\u1ed1i C\u00f9ng<\/h3>\n<p data-nodeid=\"29312\"><img alt=\"\" data-nodeid=\"30306\" decoding=\"async\" src=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6a4cc9f44192b.png\"\/><\/p>\n<h3 data-nodeid=\"29313\">Tra C\u1ee9u Nhanh: C\u00f4ng C\u1ee5 N\u00e0o Cho Nhi\u1ec7m V\u1ee5 N\u00e0o<\/h3>\n<table data-nodeid=\"29315\">\n<thead data-nodeid=\"29316\">\n<tr data-nodeid=\"29317\">\n<th data-nodeid=\"29319\"><strong data-nodeid=\"30311\">Nhi\u1ec7m V\u1ee5<\/strong><\/th>\n<th data-nodeid=\"29320\"><strong data-nodeid=\"30315\">C\u00f4ng C\u1ee5<\/strong><\/th>\n<th data-nodeid=\"29321\"><strong data-nodeid=\"30319\">T\u1ea1i Sao<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody data-nodeid=\"29325\">\n<tr data-nodeid=\"29326\">\n<td data-nodeid=\"29327\">\u0110\u1ed9ng n\u00e3o v\u00e0 t\u1ea1o m\u1eabu nhanh<\/td>\n<td data-nodeid=\"29328\">Chatbot AI<\/td>\n<td data-nodeid=\"29329\">C\u00e1ch nhanh nh\u1ea5t \u0111\u1ec3 chuy\u1ec3n t\u1eeb \u00fd t\u01b0\u1edfng sang h\u00ecnh \u1ea3nh tr\u1ef1c quan<\/td>\n<\/tr>\n<tr data-nodeid=\"29330\">\n<td data-nodeid=\"29331\">M\u00f4 h\u00ecnh h\u00f3a C4 c\u00f3 c\u1ea5u tr\u00fac<\/td>\n<td data-nodeid=\"29332\">C4-PlantUML Studio<\/td>\n<td data-nodeid=\"29333\">Quy tr\u00ecnh \u0111\u01b0\u1ee3c h\u01b0\u1edbng d\u1eabn \u0111\u1ea3m b\u1ea3o t\u00ednh \u0111\u1ea7y \u0111\u1ee7<\/td>\n<\/tr>\n<tr data-nodeid=\"29334\">\n<td data-nodeid=\"29335\">T\u00e0i li\u1ec7u s\u1ed1ng \u0111\u1ed9ng<\/td>\n<td data-nodeid=\"29336\">OpenDocs<\/td>\n<td data-nodeid=\"29337\">S\u01a1 \u0111\u1ed3 t\u1ef1 \u0111\u1ed9ng c\u1eadp nh\u1eadt; ngu\u1ed3n s\u1ef1 th\u1eadt duy nh\u1ea5t<\/td>\n<\/tr>\n<tr data-nodeid=\"29338\">\n<td data-nodeid=\"29339\">K\u1ef9 thu\u1eadt ch\u00ednh x\u00e1c<\/td>\n<td data-nodeid=\"29340\">VP Desktop<\/td>\n<td data-nodeid=\"29341\">X\u00e1c th\u1ef1c, t\u1ea1o m\u00e3, t\u00ednh n\u0103ng doanh nghi\u1ec7p<\/td>\n<\/tr>\n<tr data-nodeid=\"29342\">\n<td data-nodeid=\"29343\">T\u1ea1o tr\u01b0\u1eddng h\u1ee3p ki\u1ec3m th\u1eed<\/td>\n<td data-nodeid=\"29344\">AI Use Case Studio<\/td>\n<td data-nodeid=\"29345\">T\u1eeb c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng v\u00e0 b\u1ea3ng quy\u1ebft \u0111\u1ecbnh \u0111\u1ebfn t\u00e0i s\u1ea3n ki\u1ec3m th\u1eed<\/td>\n<\/tr>\n<tr data-nodeid=\"29346\">\n<td data-nodeid=\"29347\">B\u00e1o c\u00e1o<\/td>\n<td data-nodeid=\"29348\">B\u00e1o c\u00e1o AI<\/td>\n<td data-nodeid=\"29349\">T\u00f3m t\u1eaft \u0111i\u1ec1u h\u00e0nh, h\u01b0\u1edbng d\u1eabn k\u1ef9 thu\u1eadt, h\u1ed3 s\u01a1 ki\u1ec3m to\u00e1n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr data-nodeid=\"29350\"\/>\n<h2 data-nodeid=\"29351\">Ph\u1ee5 l\u1ee5c: Tham kh\u1ea3o nhanh c\u00e1c \u0111o\u1ea1n m\u00e3 PlantUML<\/h2>\n<h3 data-nodeid=\"29352\">C4 Context<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TKwx3e904En9-0UaWaIunieMwTGG3JKvZerSSg_SBH7_taM8bLQpEu_TsKaZr3H0CYAwS6JCysVva3XE_HJ02siG39R2QkOKDpXfLGGSbEnPTIYQXMelPwPvGF14TTMIcB5qv8oZ1dom9bjExPEq9KW9Jn24bmwbDMaUH_SNXNKMFa3okYTNhk6lkwjdpEWFUCCLcUfjJ5RvH-u6QklnVKHzmk9il4Khh4hpDm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYdK4wAahq2e0gURa2KekAy_CqG4RfA2ZvfH_Ry73tt4o5bCCxyzALW2A-XxSeb3pSjLX9avShk19eHgv6CPW2oeKSNfMdaF5mTxj22P2SY4j3l6j5YGRGnjIYlCGSe0eF91qAII0pyjBp3o_8HDSTb9e3THVSnk27kzSgf3pSlHHYbtjcOZxOf9N9Ife0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29353\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Context.puml\r\nPerson(user, \"Ng\u01b0\u1eddi d\u00f9ng\", \"M\u00f4 t\u1ea3\")\r\nSystem(system, \"T\u00ean h\u1ec7 th\u1ed1ng\", \"M\u00f4 t\u1ea3\")\r\nSystem_Ext(external, \"H\u1ec7 th\u1ed1ng b\u00ean ngo\u00e0i\", \"M\u00f4 t\u1ea3\")\r\nRel(user, system, \"S\u1eed d\u1ee5ng\", \"Giao th\u1ee9c\")\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYdK4wAahq2e0gURa2KekAy_CqG4RfA2ZvfH_Ry73tt4o5bCCxyzALW2A-XxSeb3pSjLX9avShk19eHgv6CPW2oeKSNfMdaF5mTxj22P2SY4j3l6j5YGRGnjIYlCGSe0eF91qAII0pyjBp3o_8HDSTb9e3THVSnk27kzSgf3pSlHHYbtjcOZxOf9N9Ife0\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TKwx3e904En9-0UaWaIunieMwTGG3JKvZerSSg_SBH7_taM8bLQpEu_TsKaZr3H0CYAwS6JCysVva3XE_HJ02siG39R2QkOKDpXfLGGSbEnPTIYQXMelPwPvGF14TTMIcB5qv8oZ1dom9bjExPEq9KW9Jn24bmwbDMaUH_SNXNKMFa3okYTNhk6lkwjdpEWFUCCLcUfjJ5RvH-u6QklnVKHzmk9il4Khh4hpDm00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29354\"><a data-nodeid=\"30342\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:TKwx3e904En9-0UaWaIunieMwTGG3JKvZerSSg_SBH7_taM8bLQpEu_TsKaZr3H0CYAwS6JCysVva3XE_HJ02siG39R2QkOKDpXfLGGSbEnPTIYQXMelPwPvGF14TTMIcB5qv8oZ1dom9bjExPEq9KW9Jn24bmwbDMaUH_SNXNKMFa3okYTNhk6lkwjdpEWFUCCLcUfjJ5RvH-u6QklnVKHzmk9il4Khh4hpDm00\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h3 data-nodeid=\"29355\">C4 Container<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JOpB2i8m44NtWlyGish1DXjNRjjbbKfrBNaCRI0laYdYtvi85dTpphrt3jf9ioeW2s98PyOYVxMpncKLQu8elKDms4flMJ3SuMfDar0PBLXtQiQY7fU1MPuGObRFBY-uTX3RaBlxtSQL_5r7GZTBhjm2pUOESd7U-FbTg8SaemwelQFrtvDUL4gKd2CNF7sNeqyuHvXkGw49VOH4L2xG-WC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JOoz3e8m54Pt4z_XoeI9qCN95KT8CEfi-6cWIIcalOsFu6COu-QY0vEC9Bm7Rs8xIDZkEJdVNJ6HSPrJA14RjID49bU_O5ZgL2igireW5UXdTKKQdWZK5VSKvfob9DXwiLNdA2HLef1Aeow1MIHCKEatfbqk9dQp_xK1vzI_14p2CIReMr60ACgnkrcE-XPm_3wTzUp7FdNprCR30zJOtI4VkpTmPZRQZk9QOI7fyH1Q2eUF1fGscNVh7m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29356\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Container.puml\r\nContainer(container, \"T\u00ean container\", \"C\u00f4ng ngh\u1ec7\", \"M\u00f4 t\u1ea3\")\r\nContainerDb(db, \"C\u01a1 s\u1edf d\u1eef li\u1ec7u\", \"PostgreSQL\", \"L\u01b0u tr\u1eef d\u1eef li\u1ec7u\")\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JOoz3e8m54Pt4z_XoeI9qCN95KT8CEfi-6cWIIcalOsFu6COu-QY0vEC9Bm7Rs8xIDZkEJdVNJ6HSPrJA14RjID49bU_O5ZgL2igireW5UXdTKKQdWZK5VSKvfob9DXwiLNdA2HLef1Aeow1MIHCKEatfbqk9dQp_xK1vzI_14p2CIReMr60ACgnkrcE-XPm_3wTzUp7FdNprCR30zJOtI4VkpTmPZRQZk9QOI7fyH1Q2eUF1fGscNVh7m00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JOpB2i8m44NtWlyGish1DXjNRjjbbKfrBNaCRI0laYdYtvi85dTpphrt3jf9ioeW2s98PyOYVxMpncKLQu8elKDms4flMJ3SuMfDar0PBLXtQiQY7fU1MPuGObRFBY-uTX3RaBlxtSQL_5r7GZTBhjm2pUOESd7U-FbTg8SaemwelQFrtvDUL4gKd2CNF7sNeqyuHvXkGw49VOH4L2xG-WC0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29357\"><a data-nodeid=\"30346\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:JOpB2i8m44NtWlyGish1DXjNRjjbbKfrBNaCRI0laYdYtvi85dTpphrt3jf9ioeW2s98PyOYVxMpncKLQu8elKDms4flMJ3SuMfDar0PBLXtQiQY7fU1MPuGObRFBY-uTX3RaBlxtSQL_5r7GZTBhjm2pUOESd7U-FbTg8SaemwelQFrtvDUL4gKd2CNF7sNeqyuHvXkGw49VOH4L2xG-WC0\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h3 data-nodeid=\"29358\">C4 Component<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:FSkn3i8m30JG7Ob_29b0eit2n5h6WbYOKPfQD59YMx4ZVfzqeDlTqzqXOaXr1hEeiboTA_xRVw8kTQe29H0geFQ1ikFaKMjEdUYSukI6I_TSwNKVNVQYK1gz1yfCk7wuRVUxhH_3FvsDtTGyV0RRv0OIIcIDXFRq0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYdVDp2_BpG7eAW6fvkU1yZMGOIqT1AUJmgZo5aep32_8o50eo7kvQdgS45FKzl4MXvE6knKgQ0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29359\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Component.puml\r\nComponent(component, \"T\u00ean th\u00e0nh ph\u1ea7n\", \"M\u00f4 t\u1ea3\")\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYdVDp2_BpG7eAW6fvkU1yZMGOIqT1AUJmgZo5aep32_8o50eo7kvQdgS45FKzl4MXvE6knKgQ0000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:FSkn3i8m30JG7Ob_29b0eit2n5h6WbYOKPfQD59YMx4ZVfzqeDlTqzqXOaXr1hEeiboTA_xRVw8kTQe29H0geFQ1ikFaKMjEdUYSukI6I_TSwNKVNVQYK1gz1yfCk7wuRVUxhH_3FvsDtTGyV0RRv0OIIcIDXFRq0m00\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29360\"><a data-nodeid=\"30350\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:FSkn3i8m30JG7Ob_29b0eit2n5h6WbYOKPfQD59YMx4ZVfzqeDlTqzqXOaXr1hEeiboTA_xRVw8kTQe29H0geFQ1ikFaKMjEdUYSukI6I_TSwNKVNVQYK1gz1yfCk7wuRVUxhH_3FvsDtTGyV0RRv0OIIcIDXFRq0m00\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h3 data-nodeid=\"29361\">Tri\u1ec3n khai C4<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:HOkn3W8X44Hx4_y1gJJnZiRALakzM6XzuM1paC0kWINc_bweR2PlNcOE7ase5eHZJkMgLDRVSVNiwb8BP4F8W3mQYYe5ZLnZ60hRu1TrkmolhZxFXugwCEIcvZkaG5lifzJ6-zrVp1DPE6ABiv2TnQGZo5RUO1nIe7MJfny0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYNL8BSl8hSq6Q2e2AURaG0l5--Icf6db0GaT1AUJmgZo5lCExIfI07EV3M_BI5VBICnxkRbVI1000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29362\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">!include https:\/\/raw.githubusercontent.com\/plantuml-stdlib\/C4-PlantUML\/master\/C4_Deployment.puml\r\nDeployment_Node(node, \"T\u00ean n\u00fat\", \"C\u00f4ng ngh\u1ec7\")\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:KypCIyufJKbLo2WfAIYsqjSlIYpNIyyioIXDAYrEBKhEpoj9pIlHIyxFrI_8ISmhAStDqIqkISd9JD9tDj4D00c5-lhevoOMbwGM0ONYNL8BSl8hSq6Q2e2AURaG0l5--Icf6db0GaT1AUJmgZo5lCExIfI07EV3M_BI5VBICnxkRbVI1000\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:HOkn3W8X44Hx4_y1gJJnZiRALakzM6XzuM1paC0kWINc_bweR2PlNcOE7ase5eHZJkMgLDRVSVNiwb8BP4F8W3mQYYe5ZLnZ60hRu1TrkmolhZxFXugwCEIcvZkaG5lifzJ6-zrVp1DPE6ABiv2TnQGZo5RUO1nIe7MJfny0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29363\"><a data-nodeid=\"30354\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:HOkn3W8X44Hx4_y1gJJnZiRALakzM6XzuM1paC0kWINc_bweR2PlNcOE7ase5eHZJkMgLDRVSVNiwb8BP4F8W3mQYYe5ZLnZ60hRu1TrkmolhZxFXugwCEIcvZkaG5lifzJ6-zrVp1DPE6ABiv2TnQGZo5RUO1nIe7MJfny0\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h3 data-nodeid=\"29364\">Bi\u1ec3u \u0111\u1ed3 tr\u00ecnh t\u1ef1<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK784Ktw9kQbA2ed52eaWBYzNGM9HIMPoPa5YNec2KW220rQ39CdB1TQWe6k7B6gbu9jQN9oOdWgMpYnBB4b5rOHil2vGBzWGAuMWr9BIeZnUhfHKRDe0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK0evl2fF8I_zs8Q7k-TcAfHaFDozCLaX8_FXxlOy9ON4OeL4a39UheB4efBCvCo2nBmI1IK_XFB4N8Nqp4ImIYGbl5nWRGgwTiYYLWeXcK2xCXxkMfy7Lf5PbbYIYgeFsHvTe7QmEK2DHGztBLOeUxYxaPSh9HMRLW00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29365\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">actor \"T\u00ean ng\u01b0\u1eddi th\u1ef1c hi\u1ec7n\" as actor\r\nparticipant \"Ng\u01b0\u1eddi tham gia\" as participant\r\nactor -&gt; participant: Tin nh\u1eafn\r\nactivate participant\r\nparticipant --&gt; actor: Tr\u1ea3 v\u1ec1\r\ndeactivate participant\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK0evl2fF8I_zs8Q7k-TcAfHaFDozCLaX8_FXxlOy9ON4OeL4a39UheB4efBCvCo2nBmI1IK_XFB4N8Nqp4ImIYGbl5nWRGgwTiYYLWeXcK2xCXxkMfy7Lf5PbbYIYgeFsHvTe7QmEK2DHGztBLOeUxYxaPSh9HMRLW00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK784Ktw9kQbA2ed52eaWBYzNGM9HIMPoPa5YNec2KW220rQ39CdB1TQWe6k7B6gbu9jQN9oOdWgMpYnBB4b5rOHil2vGBzWGAuMWr9BIeZnUhfHKRDe0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29366\"><a data-nodeid=\"30358\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK784Ktw9kQbA2ed52eaWBYzNGM9HIMPoPa5YNec2KW220rQ39CdB1TQWe6k7B6gbu9jQN9oOdWgMpYnBB4b5rOHil2vGBzWGAuMWr9BIeZnUhfHKRDe0\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<h3 data-nodeid=\"29367\">Bi\u1ec3u \u0111\u1ed3 tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng<\/h3>\n<div class=\"vpascode-viewer-container vpascode-fancy-active\">\n<div class=\"vpascode-header\">\n<span class=\"vpascode-lang-label\">PlantUML<\/span><br \/>\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK0ejJYrIKaWiLYW5CdYvW6HoOd4gM5p16SY2o2M3POeKT7Nj89na1JqzEuNClEISqfJK50Kh1HiRACVE3YnjewUda5fHafe7auPmxEm0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 8px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<div class=\"vpascode-code-wrapper\">\n            <div class=\"vpascode-viewer-container vpascode-fancy-active\">\r\n                                <div class=\"vpascode-header\">\r\n                    <span class=\"vpascode-lang-label\">PlantUML<\/span>\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIKF9BFxRXuUwvcGefXtVcfIif91Ohb1Qd5l5o0SdanE9K1QMG8h2Al7I5Z8Ux5nSe53_SlLOXvU7kfJ3boM35HGgwkdOGJhA2dfwTGcPUSavfIcgAWfM2ZGsKOsS7bhRHqrD8hIX9pOD9GpXsTW00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 8px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n                                <div class=\"vpascode-code-wrapper\">\r\n                    <pre class=\"lang-plantuml\" data-nodeid=\"29368\"><code class=\"language-plantuml\" data-language=\"plantuml\" class=\"language-plantuml\">actor \"Ng\u01b0\u1eddi d\u00f9ng\" as user\r\nusecase \"Tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng\" as uc\r\nuser --&gt; uc\r\nuc ..&gt; included : &lt;&lt;include&gt;&gt;\r\nuc &lt;.. extended : &lt;&lt;extend&gt;&gt;\r\n<\/code><\/pre>                <\/div>\r\n                <div class=\"vpascode-actions\">\r\n                    <a href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIKF9BFxRXuUwvcGefXtVcfIif91Ohb1Qd5l5o0SdanE9K1QMG8h2Al7I5Z8Ux5nSe53_SlLOXvU7kfJ3boM35HGgwkdOGJhA2dfwTGcPUSavfIcgAWfM2ZGsKOsS7bhRHqrD8hIX9pOD9GpXsTW00\" \r\n                       target=\"_blank\" \r\n                       rel=\"noopener noreferrer\" \r\n                       class=\"vpascode-fancy-btn\">\r\n                        <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"margin-right: 6px;\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg>\r\n                        <span>Edit PlantUML in VPasCode<\/span>\r\n                    <\/a>\r\n                <\/div>\r\n            <\/div>\r\n            \n<\/p><\/div>\n<div class=\"vpascode-actions\">\n<a class=\"vpascode-fancy-btn\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK0ejJYrIKaWiLYW5CdYvW6HoOd4gM5p16SY2o2M3POeKT7Nj89na1JqzEuNClEISqfJK50Kh1HiRACVE3YnjewUda5fHafe7auPmxEm0\" rel=\"noopener noreferrer\" target=\"_blank\"><br \/>\n<svg fill=\"none\" height=\"14\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2.5\" style=\"margin-right: 6px;\" viewbox=\"0 0 24 24\" width=\"14\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"><\/path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"><\/path><\/svg><br \/>\n<span>Ch\u1ec9nh s\u1eeda PlantUML trong VPasCode<\/span><br \/>\n<\/a>\n<\/div>\n<\/div>\n<p data-nodeid=\"29369\"><a data-nodeid=\"30362\" href=\"https:\/\/www.vpascode.com\/editor\/#plantuml:IqmkoIzIK0ejJYrIKaWiLYW5CdYvW6HoOd4gM5p16SY2o2M3POeKT7Nj89na1JqzEuNClEISqfJK50Kh1HiRACVE3YnjewUda5fHafe7auPmxEm0\">Ch\u1ec9nh s\u1eeda Plantuml trong VPasCode<\/a><\/p>\n<hr data-nodeid=\"29370\"\/>\n<h2 data-nodeid=\"29371\">K\u1ebft lu\u1eadn<\/h2>\n<p data-nodeid=\"29372\">H\u1ec7 sinh th\u00e1i \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm \u0111\u1ea1i di\u1ec7n cho m\u1ed9t b\u01b0\u1edbc nh\u1ea3y v\u1ecdt \u0111\u00e1ng k\u1ec3 trong c\u00e1ch c\u00e1c nh\u00f3m k\u1ef9 thu\u1eadt qu\u1ea3n l\u00fd s\u1ef1 ph\u1ee9c t\u1ea1p. B\u1eb1ng c\u00e1ch t\u00edch h\u1ee3p t\u01b0 duy s\u00e1ng t\u1ea1o do AI d\u1eabn d\u1eaft, m\u00f4 h\u00ecnh h\u00f3a C4 c\u00f3 c\u1ea5u tr\u00fac v\u00e0 t\u00e0i li\u1ec7u s\u1ed1ng v\u00e0o m\u1ed9t quy tr\u00ecnh duy nh\u1ea5t, n\u00f3 lo\u1ea1i b\u1ecf s\u1ef1 ma s\u00e1t truy\u1ec1n th\u1ed1ng gi\u1eefa thi\u1ebft k\u1ebf v\u00e0 t\u00e0i li\u1ec7u.<\/p>\n<p class=\"\" data-nodeid=\"29373\">Cho d\u00f9 b\u1ea1n \u0111ang brainstorm ki\u1ebfn tr\u00fac vi d\u1ecbch v\u1ee5 m\u1edbi, tinh ch\u1ec9nh chi\u1ebfn l\u01b0\u1ee3c tri\u1ec3n khai \u1edf c\u1ea5p doanh nghi\u1ec7p, hay \u0111\u1ea3m b\u1ea3o t\u00e0i li\u1ec7u h\u01b0\u1edbng d\u1eabn s\u1eed d\u1ee5ng lu\u00f4n c\u1eadp nh\u1eadt, quy tr\u00ecnh l\u00e0m vi\u1ec7c n\u00e0y \u0111\u1ea3m b\u1ea3o r\u1eb1ng c\u00e1c m\u00f4 h\u00ecnh tr\u1ef1c quan v\u00e0 gi\u1ea3i th\u00edch v\u0103n b\u1ea3n c\u1ee7a b\u1ea1n lu\u00f4n \u0111\u01b0\u1ee3c \u0111\u1ed3ng b\u1ed9 h\u00f3a, ch\u00ednh x\u00e1c v\u00e0 d\u1ec5 truy c\u1eadp. B\u1eaft \u0111\u1ea7u v\u1edbi AI Chatbot \u0111\u1ec3 t\u01b0 duy s\u00e1ng t\u1ea1o nhanh ch\u00f3ng, s\u1eed d\u1ee5ng C4-PlantUML Studio \u0111\u1ec3 tinh ch\u1ec9nh c\u00f3 c\u1ea5u tr\u00fac, v\u00e0 ho\u00e0n t\u1ea5t v\u00f2ng l\u1eb7p v\u1edbi OpenDocs \u0111\u1ec3 c\u00f3 t\u00e0i li\u1ec7u s\u1ed1ng t\u1ef1 \u0111\u1ed9ng \u0111\u1ed3ng b\u1ed9 v\u1edbi ki\u1ebfn tr\u00fac \u0111ang ph\u00e1t tri\u1ec3n c\u1ee7a b\u1ea1n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gi\u1edbi thi\u1ec7u Trong k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i, kho\u1ea3ng c\u00e1ch gi\u1eefa thi\u1ebft k\u1ebf ki\u1ebfn tr\u00fac v\u00e0 t\u00e0i li\u1ec7u k\u1ef9<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","source_url":"","source_h1_title":"","fifu_image_url":"","fifu_image_alt":"","_fifu_image_alt":"","fifu_alt":"","_fifu_alt":"","fifu_image_title":"","_fifu_image_title":"","fifu_input_alt":"","vp_image_hash":"","footnotes":""},"categories":[82,108,120],"tags":[],"asset-category":[],"class_list":["post-12333","post","type-post","status-publish","format-standard","hentry","category-ai","category-c4-model","category-vpascode-editor"],"source_url":"","source_h1_title":"","fifu_image_url":"","fifu_image_alt":"","vp_image_hash":"","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\" \/>\n<meta property=\"og:locale\" content=\"vi_VN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian\" \/>\n<meta property=\"og:description\" content=\"Gi\u1edbi thi\u1ec7u Trong k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i, kho\u1ea3ng c\u00e1ch gi\u1eefa thi\u1ebft k\u1ebf ki\u1ebfn tr\u00fac v\u00e0 t\u00e0i li\u1ec7u k\u1ef9\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\" \/>\n<meta property=\"og:site_name\" content=\"Cybermedian\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T05:20:02+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-29T05:29:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\" \/>\n<meta name=\"author\" content=\"curtis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi\" \/>\n\t<meta name=\"twitter:data1\" content=\"curtis\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 ph\u00fat\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\"},\"author\":{\"name\":\"curtis\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"headline\":\"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm\",\"datePublished\":\"2026-10-29T05:20:02+00:00\",\"dateModified\":\"2026-10-29T05:29:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\"},\"wordCount\":6587,\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\",\"articleSection\":[\"AI\",\"C4 Model\",\"VPasCode Editor\"],\"inLanguage\":\"vi\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\",\"url\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\",\"name\":\"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian\",\"isPartOf\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\",\"datePublished\":\"2026-10-29T05:20:02+00:00\",\"dateModified\":\"2026-10-29T05:29:23+00:00\",\"author\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#breadcrumb\"},\"inLanguage\":\"vi\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage\",\"url\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\",\"contentUrl\":\"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.cybermedian.com\/vn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#website\",\"url\":\"https:\/\/www.cybermedian.com\/vn\/\",\"name\":\"Cybermedian\",\"description\":\"H\u1ecdc m\u1ed9t \u0111i\u1ec1u m\u1edbi m\u1ed7i ng\u00e0y\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.cybermedian.com\/vn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"vi\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d\",\"name\":\"curtis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"vi\",\"@id\":\"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g\",\"caption\":\"curtis\"},\"url\":\"https:\/\/www.cybermedian.com\/vn\/author\/curtis\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/","og_locale":"vi_VN","og_type":"article","og_title":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian","og_description":"Gi\u1edbi thi\u1ec7u Trong k\u1ef9 thu\u1eadt ph\u1ea7n m\u1ec1m hi\u1ec7n \u0111\u1ea1i, kho\u1ea3ng c\u00e1ch gi\u1eefa thi\u1ebft k\u1ebf ki\u1ebfn tr\u00fac v\u00e0 t\u00e0i li\u1ec7u k\u1ef9","og_url":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/","og_site_name":"Cybermedian","article_published_time":"2026-10-29T05:20:02+00:00","article_modified_time":"2026-10-29T05:29:23+00:00","og_image":[{"url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png","type":"","width":"","height":""}],"author":"curtis","twitter_card":"summary_large_image","twitter_misc":{"\u0110\u01b0\u1ee3c vi\u1ebft b\u1edfi":"curtis","\u01af\u1edbc t\u00ednh th\u1eddi gian \u0111\u1ecdc":"12 ph\u00fat"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#article","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/"},"author":{"name":"curtis","@id":"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"headline":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm","datePublished":"2026-10-29T05:20:02+00:00","dateModified":"2026-10-29T05:29:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/"},"wordCount":6587,"image":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png","articleSection":["AI","C4 Model","VPasCode Editor"],"inLanguage":"vi"},{"@type":"WebPage","@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/","url":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/","name":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm - Cybermedian","isPartOf":{"@id":"https:\/\/www.cybermedian.com\/vn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage"},"image":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage"},"thumbnailUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png","datePublished":"2026-10-29T05:20:02+00:00","dateModified":"2026-10-29T05:29:23+00:00","author":{"@id":"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d"},"breadcrumb":{"@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#breadcrumb"},"inLanguage":"vi","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/"]}]},{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#primaryimage","url":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png","contentUrl":"https:\/\/www.cybermedian.com\/wp-content\/uploads\/2026\/10\/img_6ae2d830db3d7.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.cybermedian.com\/vn\/from-prompt-to-living-docs-mastering-visual-paradigms-ai-powered-c4-workflow\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.cybermedian.com\/vn\/"},{"@type":"ListItem","position":2,"name":"T\u1eeb Prompt \u0111\u1ebfn T\u00e0i li\u1ec7u S\u1ed1ng: L\u00e0m ch\u1ee7 Quy tr\u00ecnh C4 \u0111\u01b0\u1ee3c H\u1ed7 tr\u1ee3 b\u1edfi AI c\u1ee7a Visual Paradigm"}]},{"@type":"WebSite","@id":"https:\/\/www.cybermedian.com\/vn\/#website","url":"https:\/\/www.cybermedian.com\/vn\/","name":"Cybermedian","description":"H\u1ecdc m\u1ed9t \u0111i\u1ec1u m\u1edbi m\u1ed7i ng\u00e0y","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.cybermedian.com\/vn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"vi"},{"@type":"Person","@id":"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/016578d8c88d35825fd3fbafc4f76b4d","name":"curtis","image":{"@type":"ImageObject","inLanguage":"vi","@id":"https:\/\/www.cybermedian.com\/vn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6910084565fcc601ec03c6693bb8ea480c1e52ccaa0efb299eb038bb6a1edc87?s=96&d=mm&r=g","caption":"curtis"},"url":"https:\/\/www.cybermedian.com\/vn\/author\/curtis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/posts\/12333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/comments?post=12333"}],"version-history":[{"count":0,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/posts\/12333\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/media?parent=12333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/categories?post=12333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/tags?post=12333"},{"taxonomy":"asset-category","embeddable":true,"href":"https:\/\/www.cybermedian.com\/vn\/wp-json\/wp\/v2\/asset-category?post=12333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}