<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: dangkh0a</title>
    <description>The latest articles on DEV Community by dangkh0a (@dangkhoa2004).</description>
    <link>https://dev.to/dangkhoa2004</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3069024%2F33beb440-8f18-4096-bcb0-daa13a040202.png</url>
      <title>DEV Community: dangkh0a</title>
      <link>https://dev.to/dangkhoa2004</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dangkhoa2004"/>
    <language>en</language>
    <item>
      <title>🚀 ROAD-TO-FULLSTACK: Hành Trình Chinh Phục Lập Trình Fullstack Từ Zero Đến Hero! 🚀</title>
      <dc:creator>dangkh0a</dc:creator>
      <pubDate>Fri, 30 May 2025 14:12:39 +0000</pubDate>
      <link>https://dev.to/dangkhoa2004/road-to-fullstack-hanh-trinh-chinh-phuc-lap-trinh-fullstack-tu-zero-den-hero-49hd</link>
      <guid>https://dev.to/dangkhoa2004/road-to-fullstack-hanh-trinh-chinh-phuc-lap-trinh-fullstack-tu-zero-den-hero-49hd</guid>
      <description>&lt;p&gt;🚀 &lt;strong&gt;ROAD-TO-FULLSTACK: Hành Trình Chinh Phục Lập Trình Fullstack Từ Zero Đến Hero!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Xin chào cộng đồng Dev.to! 👋&lt;br&gt;
Hôm nay mình muốn chia sẻ với mọi người một dự án cá nhân mà mình đã dành rất nhiều tâm huyết: &lt;a href="https://github.com/dangkhoa2004/Road-to-Fullstack" rel="noopener noreferrer"&gt;&lt;strong&gt;ROAD-TO-FULLSTACK&lt;/strong&gt;&lt;/a&gt;. Đây không chỉ là một repo trên GitHub, mà còn là &lt;strong&gt;một hành trình phát triển bản thân&lt;/strong&gt; – từ những bước đi chập chững đầu tiên trong lập trình đến việc tự tin xây dựng một ứng dụng Fullstack hoàn chỉnh.&lt;/p&gt;

&lt;p&gt;💡 Dự án này là một &lt;strong&gt;tài liệu sống 📖&lt;/strong&gt;, tập hợp những thành quả và kinh nghiệm mình đã tích lũy trong suốt quá trình tự học và thực hành lập trình Fullstack. Nó không chỉ là một sản phẩm cuối cùng, mà là một &lt;strong&gt;minh chứng cho sự kiên trì và tinh thần học hỏi không ngừng&lt;/strong&gt; – từ việc nắm vững các khái niệm cơ bản nhất cho đến lúc tự tay xây dựng một hệ thống hoàn chỉnh, với backend mạnh mẽ và frontend tương tác trực quan.&lt;/p&gt;

&lt;p&gt;🔧 Mỗi dòng code 📝, mỗi cấu trúc thư mục 📁, và mỗi quyết định thiết kế trong dự án đều phản ánh một bài học – đôi khi là một thất bại nhỏ, đôi khi là một bước đột phá lớn. Mục tiêu chính của mình là &lt;strong&gt;xây dựng một môi trường học tập thực tế&lt;/strong&gt;, nơi lý thuyết và thực hành song hành, giúp mình phát triển tư duy giải quyết vấn đề và kỹ năng xây dựng phần mềm toàn diện.&lt;/p&gt;
&lt;h2&gt;
  
  
  Mục tiêu Chi tiết của Dự án 🎯
&lt;/h2&gt;

&lt;p&gt;Dự án này được xây dựng với những mục tiêu rõ ràng nhằm tối ưu hóa quá trình học tập và phát triển cá nhân:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Nắm vững Kiến trúc Fullstack:&lt;/strong&gt; Hiểu rõ cách các thành phần backend ⚙️, frontend 🖥️ và cơ sở dữ liệu 🗄️ phối hợp với nhau để tạo nên một ứng dụng hoàn chỉnh. Nghiên cứu sâu về kiến trúc RESTful APIs, quy trình giao tiếp giữa client-server và các mẫu thiết kế phổ biến.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Thực hành Phát triển Backend chuyên sâu:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ngôn ngữ và Framework:&lt;/strong&gt; Thành thạo Java ☕ và framework Spring Boot 🌱 để xây dựng các dịch vụ RESTful API mạnh mẽ, ổn định và có khả năng mở rộng.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quản lý Cơ sở dữ liệu:&lt;/strong&gt; Học cách thiết kế lược đồ cơ sở dữ liệu hiệu quả, sử dụng SQL để thao tác dữ liệu, và tích hợp các công cụ ORM (Object-Relational Mapping) như JPA/Hibernate để tương tác với cơ sở dữ liệu một cách linh hoạt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bảo mật:&lt;/strong&gt; Triển khai các biện pháp bảo mật cơ bản như xác thực (authentication) và ủy quyền (authorization) để bảo vệ dữ liệu và API 🔒.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Xử lý lỗi và Logging:&lt;/strong&gt; Xây dựng cơ chế xử lý lỗi hiệu quả và tích hợp logging để theo dõi hoạt động của ứng dụng 📊.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Xây dựng Giao diện Người dùng tương tác (Frontend):&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Framework hiện đại:&lt;/strong&gt; Sử dụng các framework JavaScript phổ biến như Vue 💚, hoặc Angular 🅰️ để xây dựng giao diện người dùng động, phản hồi nhanh và dễ bảo trì.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quản lý State:&lt;/strong&gt; Hiểu và áp dụng các mô hình quản lý state hiệu quả để duy trì trạng thái của ứng dụng phức tạp.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kết nối API:&lt;/strong&gt; Học cách gửi yêu cầu HTTP (GET, POST, PUT, DELETE) đến backend API và xử lý dữ liệu trả về để cập nhật giao diện người dùng 📡.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trải nghiệm người dùng (UX):&lt;/strong&gt; Chú trọng vào việc tạo ra giao diện trực quan, dễ sử dụng và có trải nghiệm người dùng tốt ✨.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Tối ưu hóa Quy trình Phát triển:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Quản lý Dependencies:&lt;/strong&gt; Sử dụng các công cụ quản lý gói như Maven (backend) 📦 và npm/Yarn (frontend) để quản lý các thư viện và dependency một cách hiệu quả.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Công cụ Build:&lt;/strong&gt; Hiểu và sử dụng các công cụ build hiện đại như Vite ⚡ để tối ưu hóa quá trình phát triển và triển khai frontend.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kiểm soát Phiên bản:&lt;/strong&gt; Áp dụng Git ➕ và GitHub 🐙 để quản lý mã nguồn, theo dõi lịch sử thay đổi và làm việc cộng tác (dù là với chính mình).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Phát triển Tư duy Giải quyết vấn đề:&lt;/strong&gt; Đối mặt và vượt qua các thách thức kỹ thuật, từ việc debug lỗi 🐛 đến việc tối ưu hóa hiệu suất, qua đó nâng cao khả năng phân tích và giải quyết vấn đề.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Xây dựng Portfolio:&lt;/strong&gt; Tạo ra một sản phẩm thực tế để trưng bày các kỹ năng và kiến thức đã học, là nền tảng vững chắc cho các dự án lớn hơn trong tương lai 💼.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;
  
  
  Cấu trúc Dự án Chi tiết 📂
&lt;/h2&gt;

&lt;p&gt;Dự án được tổ chức một cách logic, phản ánh các thành phần cơ bản của một ứng dụng Fullstack, giúp dễ dàng theo dõi quá trình phát triển và phân tách các module:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.vscode/&lt;/code&gt;: 💻 Chứa các file cấu hình dành riêng cho Visual Studio Code.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Database/&lt;/code&gt;: 🗄️

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pos_app_data.sql&lt;/code&gt;: Script SQL dùng để tạo lược đồ cơ sở dữ liệu ban đầu.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pos_app_modified.sql&lt;/code&gt;: Các script SQL chứa các thay đổi, cập nhật hoặc bổ sung cho lược đồ cơ sở dữ liệu sau này.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Document/&lt;/code&gt;: 📑 Thư mục quan trọng chứa các tài liệu thiết kế và yêu cầu của dự án:

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;TÀI LIỆU THIẾT KẾ API.docx&lt;/code&gt;: Mô tả chi tiết các endpoint API.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TÀI LIỆU THIẾT KẾ CƠ SỞ DỮ LIỆU.docx&lt;/code&gt;: Mô tả các bảng, mối quan hệ và sơ đồ ERD.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;TÀI LIỆU YÊU CẦU DỰ ÁN.docx&lt;/code&gt;: Tổng hợp các yêu cầu chức năng và phi chức năng.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pos-backend/&lt;/code&gt;: ⚙️ Chứa toàn bộ mã nguồn và cấu hình cho phần backend của ứng dụng.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.mvn/&lt;/code&gt;: 🛠️ Maven Wrapper.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/&lt;/code&gt;: ☕ Mã nguồn Java của ứng dụng Spring Boot.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;target/&lt;/code&gt;: 📦 Các file build đã biên dịch.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pom.xml&lt;/code&gt;: 📄 File cấu hình dự án Maven.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pos-frontend/&lt;/code&gt;: 🖥️ Chứa toàn bộ mã nguồn và cấu hình cho phần frontend của ứng dụng.

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;dist/&lt;/code&gt;: 🚀 Các file đã được tối ưu hóa sẵn sàng để triển khai.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;node_modules/&lt;/code&gt;: 🧩 Các thư viện và dependency Node.js.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;public/&lt;/code&gt;: 🖼️ Các tài nguyên tĩnh.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;src/&lt;/code&gt;: ✨ Mã nguồn của ứng dụng frontend (component, logic JS/TS, CSS).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;index.html&lt;/code&gt;: 🌐 File HTML chính của ứng dụng frontend.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;package.json&lt;/code&gt;: 📜 File cấu hình dự án Node.js.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;vite.config.js&lt;/code&gt;: ⚡ File cấu hình cho Vite.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;run.bat&lt;/code&gt;: ▶️ Một script batch để tự động hóa quá trình khởi chạy toàn bộ ứng dụng.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.gitignore&lt;/code&gt;: 🚫 File quy định các file và thư mục mà Git sẽ bỏ qua.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;README.md&lt;/code&gt;: 📖 File giới thiệu dự án này.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Các Công nghệ và Công cụ Chủ đạo 💻🛠️
&lt;/h2&gt;

&lt;p&gt;Dự án này là cơ hội để làm quen và thành thạo một loạt các công nghệ và công cụ hiện đại được sử dụng rộng rãi trong phát triển Fullstack:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phần Backend:&lt;/strong&gt; ⚙️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ngôn ngữ Lập trình:&lt;/strong&gt; &lt;code&gt;Java&lt;/code&gt; ☕&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework:&lt;/strong&gt; &lt;code&gt;Spring Boot&lt;/code&gt; 🌱&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Công cụ Build:&lt;/strong&gt; &lt;code&gt;Apache Maven&lt;/code&gt; 📦&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cơ sở dữ liệu:&lt;/strong&gt; &lt;code&gt;SQL&lt;/code&gt; 🗄️ (ví dụ: MySQL, PostgreSQL, H2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ORM:&lt;/strong&gt; JPA / Hibernate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web Server nhúng:&lt;/strong&gt; Tomcat / Jetty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Phần Frontend:&lt;/strong&gt; 🖥️&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ngôn ngữ Lập trình:&lt;/strong&gt; &lt;code&gt;JavaScript&lt;/code&gt; / &lt;code&gt;TypeScript&lt;/code&gt; 📜&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framework/Thư viện UI:&lt;/strong&gt; &lt;code&gt;Vue.js&lt;/code&gt; 💚 / &lt;code&gt;Angular&lt;/code&gt; 🅰️&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Công cụ Build &amp;amp; Dev Server:&lt;/strong&gt; &lt;code&gt;Vite&lt;/code&gt; ⚡&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quản lý Gói:&lt;/strong&gt; &lt;code&gt;npm&lt;/code&gt; 🧶&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Markup &amp;amp; Styling:&lt;/strong&gt; &lt;code&gt;HTML5&lt;/code&gt; &lt;code&gt;&amp;lt;&amp;gt;&lt;/code&gt; &amp;amp; &lt;code&gt;CSS3&lt;/code&gt; 🎨 &amp;amp; &lt;code&gt;TAILWINDCSS&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Công cụ Chung:&lt;/strong&gt; 🔗&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Môi trường Phát triển Tích hợp (IDE):&lt;/strong&gt; &lt;code&gt;Visual Studio Code&lt;/code&gt; VSCode&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hệ thống Kiểm soát Phiên bản:&lt;/strong&gt; &lt;code&gt;Git&lt;/code&gt; ➕&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nền tảng Lưu trữ Mã nguồn:&lt;/strong&gt; &lt;code&gt;GitHub&lt;/code&gt; 🐙&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Hướng dẫn Khởi chạy Dự án (Quick Start) ▶️
&lt;/h2&gt;

&lt;p&gt;Để bắt đầu và khám phá dự án này trên máy cục bộ của bạn, vui lòng làm theo các bước sau. Đảm bảo rằng bạn đã cài đặt các công cụ cần thiết trước khi bắt đầu.&lt;/p&gt;
&lt;h3&gt;
  
  
  Tiền điều kiện ✅
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Java Development Kit (JDK):&lt;/strong&gt; Phiên bản 11+ (khuyến nghị JDK 17).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apache Maven:&lt;/strong&gt; Phiên bản 3.6+.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js:&lt;/strong&gt; Phiên bản 16+ (bao gồm npm).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Một hệ quản trị cơ sở dữ liệu SQL:&lt;/strong&gt; (ví dụ: MySQL, PostgreSQL, H2).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Một IDE:&lt;/strong&gt; Visual Studio Code hoặc IntelliJ IDEA.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  1. Sao chép (Clone) Dự án 📥
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;URL_repository_của_bạn&amp;gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;ROAD-TO-FULLSTACK
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  2. Chuẩn bị Cơ sở dữ liệu 🗄️
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Tạo một cơ sở dữ liệu mới:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tên cơ sở dữ liệu:&lt;/strong&gt; Ví dụ: &lt;code&gt;pos_app_db&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tên người dùng và mật khẩu:&lt;/strong&gt; Ghi nhớ để cấu hình backend.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Chạy các script SQL:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Mở &lt;code&gt;Database/pos_app_data.sql&lt;/code&gt; và &lt;code&gt;Database/pos_app_modified.sql&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Thực thi các lệnh SQL để tạo bảng và nhập dữ liệu mẫu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lưu ý:&lt;/strong&gt; Chạy &lt;code&gt;pos_app_data.sql&lt;/code&gt; trước.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  3. Cấu hình và Khởi chạy Backend (&lt;code&gt;pos-backend&lt;/code&gt;) ⚙️
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Điều hướng đến thư mục backend:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;pos-backend
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Cấu hình kết nối Cơ sở dữ liệu:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mở &lt;code&gt;src/main/resources/application.properties&lt;/code&gt; (hoặc &lt;code&gt;application.yml&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cập nhật các thuộc tính kết nối cơ sở dữ liệu:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight properties"&gt;&lt;code&gt;&lt;span class="py"&gt;spring.application.name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;pos-backend&lt;/span&gt;
&lt;span class="py"&gt;server.port&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;8080&lt;/span&gt;
&lt;span class="py"&gt;spring.datasource.url&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;jdbc:mysql://localhost:3306/pos_app?useSSL=false&amp;amp;serverTimezone=UTC&amp;amp;createDatabaseIfNotExist=true&lt;/span&gt;
&lt;span class="py"&gt;spring.datasource.username&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;root&lt;/span&gt;
&lt;span class="py"&gt;spring.datasource.password&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;
&lt;span class="py"&gt;spring.datasource.driver-class-name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;com.mysql.cj.jdbc.Driver&lt;/span&gt;
&lt;span class="py"&gt;spring.jpa.hibernate.ddl-auto&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;update&lt;/span&gt;
&lt;span class="py"&gt;spring.jpa.show-sql&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;
&lt;span class="py"&gt;spring.jpa.properties.hibernate.format_sql&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;
&lt;span class="py"&gt;logging.level.org.hibernate.SQL&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;WARN&lt;/span&gt;
&lt;span class="py"&gt;logging.level.org.hibernate.type.descriptor.sql&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;WARN&lt;/span&gt;
&lt;span class="py"&gt;spring.web.resources.add-mappings&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;false&lt;/span&gt;
&lt;span class="py"&gt;jwt.secret&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Jg7KaDIbkEP+0RaMPoYz91Lo4hsRT7W2oHAfvZV5qL+JdngIFK5bKKg0RzP6KnPjmhxaVoiTDvp6bcT9s+PzwA==&lt;/span&gt;
&lt;span class="py"&gt;jwt.expiration&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;86400000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Build và chạy ứng dụng Backend:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;pre class="highlight shell"&gt;&lt;code&gt;./mvnw clean &lt;span class="nb"&gt;install&lt;/span&gt;
./mvnw spring-boot:run
&lt;/code&gt;&lt;/pre&gt;




&lt;/li&gt;

&lt;/ol&gt;
&lt;br&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * Backend sẽ khởi động, thường trên cổng &lt;code&gt;8080&lt;/code&gt;.&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  

&lt;ol&gt;
&lt;li&gt;Cấu hình và Khởi chạy Frontend (&lt;code&gt;pos-frontend&lt;/code&gt;) 🖥️
&lt;/li&gt;
&lt;/ol&gt;
&lt;/h3&gt;


&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Mở một terminal mới&lt;/strong&gt; (giữ cho backend đang chạy).&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Điều hướng đến thư mục frontend:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ../pos-frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cài đặt các dependencies:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="c"&gt;# hoặc yarn install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Cấu hình API Endpoint (nếu cần):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kiểm tra file cấu hình frontend để đảm bảo nó trỏ đến đúng URL của backend API (thường là &lt;code&gt;http://localhost:8080&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Chạy ứng dụng Frontend:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm run dev &lt;span class="c"&gt;# hoặc yarn dev&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  * Frontend sẽ khởi động, thường trên cổng &lt;code&gt;5173&lt;/code&gt;. Trình duyệt của bạn sẽ tự động mở trang web.&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
&lt;br&gt;
  &lt;br&gt;
  

&lt;ol&gt;
&lt;li&gt;Sử dụng Ứng dụng ✨
&lt;/li&gt;
&lt;/ol&gt;
&lt;/h3&gt;


&lt;ul&gt;
&lt;li&gt;Mở trình duyệt web của bạn và truy cập vào URL mà frontend đã khởi động (ví dụ: &lt;code&gt;http://localhost:5173&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Bây giờ bạn có thể tương tác với ứng dụng Fullstack của mình! 🎉&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Học hỏi từ Dự án 🧠
&lt;/h2&gt;

&lt;p&gt;Dự án này được thiết kế để trở thành một nguồn tài nguyên học tập phong phú. Hãy khám phá các phần sau:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mã nguồn:&lt;/strong&gt; Nghiên cứu mã nguồn trong &lt;code&gt;pos-backend/src/&lt;/code&gt; và &lt;code&gt;pos-frontend/src/&lt;/code&gt; để hiểu cách các tính năng được triển khai 🧩.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tài liệu:&lt;/strong&gt; Đọc các file tài liệu trong thư mục &lt;code&gt;Document/&lt;/code&gt; để nắm bắt các quyết định thiết kế và yêu cầu ban đầu 📚.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL Scripts:&lt;/strong&gt; Phân tích các file SQL trong &lt;code&gt;Database/&lt;/code&gt; để hiểu cấu trúc cơ sở dữ liệu và cách dữ liệu được quản lý 📊.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cấu hình:&lt;/strong&gt; Xem xét các file cấu hình để hiểu cách các công nghệ được cấu hình ⚙️.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Thử nghiệm:&lt;/strong&gt; Thử nghiệm các API bằng Postman/Insomnia và tương tác với giao diện người dùng để quan sát cách ứng dụng hoạt động 🧪.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Đóng góp và Phát triển trong Tương lai 💡
&lt;/h2&gt;

&lt;p&gt;Mặc dù đây là một dự án học tập cá nhân, mọi sự đóng góp và ý tưởng đều được chào đón. Nếu bạn có bất kỳ gợi ý nào để cải thiện mã nguồn, tài liệu hoặc cách tổ chức dự án, vui lòng mở một issue hoặc gửi pull request.&lt;/p&gt;

&lt;p&gt;Những ý tưởng cho phát triển tương lai có thể bao gồm:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Triển khai thêm các tính năng phức tạp hơn (ví dụ: quản lý người dùng 👥, phân quyền nâng cao).&lt;/li&gt;
&lt;li&gt;Thêm các bài kiểm thử tự động (unit tests, integration tests) ✅.&lt;/li&gt;
&lt;li&gt;Tối ưu hóa hiệu suất cho cả backend và frontend ⚡.&lt;/li&gt;
&lt;li&gt;Triển khai dự án lên một nền tảng cloud (AWS, Azure, GCP, Heroku) ☁️.&lt;/li&gt;
&lt;li&gt;Áp dụng các mẫu thiết kế phần mềm nâng cao 🏗️.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  💡 &lt;strong&gt;Cảm nhận của bạn?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Nếu bạn đang học lập trình Fullstack hoặc đang làm việc với Java, Spring Boot, Vue/Angular, mình rất muốn nghe ý kiến và trải nghiệm của bạn!&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Xem repo tại đây:&lt;/strong&gt; &lt;a href="https://github.com/dangkhoa2004/Road-to-Fullstack" rel="noopener noreferrer"&gt;https://github.com/dangkhoa2004/Road-to-Fullstack&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;💬 &lt;strong&gt;Bạn đang làm dự án tương tự?&lt;/strong&gt;&lt;br&gt;
💬 &lt;strong&gt;Bạn có mẹo hoặc bài học nào khi tự học Fullstack?&lt;/strong&gt;&lt;br&gt;
👉 Hãy chia sẻ trong phần bình luận nhé! Cùng nhau phát triển và lan toả đam mê lập trình! 🚀&lt;/p&gt;




&lt;h3&gt;
  
  
  🔖 &lt;strong&gt;Hashtags Đề xuất:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;#java #springboot #vue #angular #fullstack #webdev #learning #opensource #devto&lt;/code&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Building My Own POS System in Java Swing - From UI to Database</title>
      <dc:creator>dangkh0a</dc:creator>
      <pubDate>Sun, 20 Apr 2025 18:25:52 +0000</pubDate>
      <link>https://dev.to/dangkhoa2004/building-my-own-pos-system-in-java-swing-from-ui-to-database-1o9i</link>
      <guid>https://dev.to/dangkhoa2004/building-my-own-pos-system-in-java-swing-from-ui-to-database-1o9i</guid>
      <description>&lt;p&gt;A comprehensive &lt;strong&gt;Point of Sale Management Application&lt;/strong&gt; developed using &lt;strong&gt;Java Swing&lt;/strong&gt;, based on the &lt;strong&gt;MVC + UI Layered&lt;/strong&gt; architecture. The application includes fully functional modules for managing products, invoices, customers, employees, stock, and more — designed with modularity and extensibility in mind.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧰 Technologies &amp;amp; Development Environment
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🔧 Component&lt;/th&gt;
&lt;th&gt;⚙️ Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🖥️ &lt;strong&gt;Language&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Java 24&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧠 &lt;strong&gt;IDE&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;NetBeans 25 (Apache NetBeans)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎨 &lt;strong&gt;UI Toolkit&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Java Swing + FlatLaf&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗃️ &lt;strong&gt;Database&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;MySQL + JDBC (mysql-connector-j)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧩 &lt;strong&gt;Architecture&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;DAO – Model – View – Component Separation (MVC++)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🖌️ &lt;strong&gt;Theme&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;FlatLaf Light&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  💻 System Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;☕ Java JDK 17 or higher (Java 21+ recommended)&lt;/li&gt;
&lt;li&gt;💡 NetBeans 15+ or IntelliJ with Swing support&lt;/li&gt;
&lt;li&gt;🛢️ MySQL Server 5.7+ or 8.x&lt;/li&gt;
&lt;li&gt;🧑‍💻 Compatible with Windows / macOS / Linux&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📁 Project Structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pos_app/
├── dao/              &lt;span class="c"&gt;# Data access layer (Database Access)&lt;/span&gt;
├── icons/            &lt;span class="c"&gt;# UI icons (SVG/PNG)&lt;/span&gt;
├── models/           &lt;span class="c"&gt;# Data models: Product, Invoice, Customer, ...&lt;/span&gt;
├── pictures/         &lt;span class="c"&gt;# Static images for UI&lt;/span&gt;
├── sql/              &lt;span class="c"&gt;# SQL files (schema &amp;amp; data)&lt;/span&gt;
├── ui.components/    &lt;span class="c"&gt;# Reusable UI components: Button, Sidebar, Header,...&lt;/span&gt;
├── ui.dialog/        &lt;span class="c"&gt;# Forms for data input/edit&lt;/span&gt;
├── ui.panel/         &lt;span class="c"&gt;# Feature panels: Products, Invoices...&lt;/span&gt;
├── ui.table/         &lt;span class="c"&gt;# Custom table renderers/editors&lt;/span&gt;
├── util/             &lt;span class="c"&gt;# Utilities: DBConnection, IconUtil, ...&lt;/span&gt;
├── view/             &lt;span class="c"&gt;# Main application frame (MainFrame.java)&lt;/span&gt;
└── &lt;span class="nb"&gt;test&lt;/span&gt;/             &lt;span class="c"&gt;# Unit tests&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  📦 Dependencies
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;📚 Library&lt;/th&gt;
&lt;th&gt;📝 Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FlatLaf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modern look and feel, SVG support, IntelliJ/Dark mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;flatlaf-extras&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Easy theme/icon customization from SVG&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;darklaf-core&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;(Optional) Shadow, blur effects&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;darklaf-utils&lt;/code&gt;, &lt;code&gt;darklaf-property-loader&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Darklaf config utilities&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;mysql-connector-j&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;MySQL JDBC connector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;protobuf-java&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fallback for binary data storage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;jsvg&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Display SVG icons in UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;java-se&lt;/code&gt; (&lt;code&gt;core-3.5.3&lt;/code&gt;, &lt;code&gt;javase-3.5.3&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Image/webcam/barcode processing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;webcam-capture&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Webcam integration for scanning QR/barcodes or taking photos&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;slf4j-api&lt;/code&gt;, &lt;code&gt;slf4j-simple&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Simple system logging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;bridj&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Native Windows call for webcam&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gson&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Convert between JSON and Java objects&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  🖥️ Main Features
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;🧩 Feature&lt;/th&gt;
&lt;th&gt;📌 Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;🛒 &lt;strong&gt;Sales (POS)&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;POS UI, cart management, payment processing, invoice printing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📦 &lt;strong&gt;Product Management&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;CRUD products, update quantity/price/status, category management&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👤 &lt;strong&gt;Customer&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Manage customer info and grouping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🧾 &lt;strong&gt;Invoice&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;List, search, view and print invoices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📊 &lt;strong&gt;Statistics&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Sales summary with Pie/Bar charts &lt;em&gt;(in progress)&lt;/em&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚚 &lt;strong&gt;Stock In/Out&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Track inventory, create stock-in and stock-out slips&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👔 &lt;strong&gt;Employees/Roles&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Manage accounts, assign roles (Admin, Staff)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📋 &lt;strong&gt;Dashboard&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Aggregate system update logs from POS machines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⚙️ &lt;strong&gt;System Settings&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Configure theme, store info, currency, etc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  ✅ Getting Started
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clone the repository:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;   git clone https://github.com/dangkhoa2004/pos_app.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Open with IDE:&lt;/strong&gt;
👉 Preferably NetBeans 25 or IntelliJ (pre-configured with Maven/Ant)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Setup MySQL database:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;   &lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;pos_app&lt;/span&gt; &lt;span class="nb"&gt;CHARACTER&lt;/span&gt; &lt;span class="k"&gt;SET&lt;/span&gt; &lt;span class="n"&gt;utf8mb4&lt;/span&gt; &lt;span class="k"&gt;COLLATE&lt;/span&gt; &lt;span class="n"&gt;utf8mb4_unicode_ci&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then import &lt;code&gt;pos_app.sql&lt;/code&gt; from the &lt;code&gt;/sql&lt;/code&gt; folder.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Configure DB in &lt;code&gt;DBConnection.java&lt;/code&gt;:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;   &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="no"&gt;URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"jdbc:mysql://localhost:3306/pos_app"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="no"&gt;USER&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"root"&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
   &lt;span class="kd"&gt;private&lt;/span&gt; &lt;span class="kd"&gt;static&lt;/span&gt; &lt;span class="kd"&gt;final&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="no"&gt;PASSWORD&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Change to your password&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Run &lt;code&gt;MainFrame.java&lt;/code&gt;&lt;/strong&gt; to launch the application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notes:&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Add JDBC driver if &lt;code&gt;ClassNotFoundException&lt;/code&gt; occurs&lt;/li&gt;
&lt;li&gt;Use UTF-8 for proper Vietnamese character display&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  📌 Development Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;All icons are in &lt;code&gt;icons/&lt;/code&gt; as scalable SVGs&lt;/li&gt;
&lt;li&gt;To add new feature → Create &lt;code&gt;Panel&lt;/code&gt; in &lt;code&gt;ui.panel&lt;/code&gt; → Register via &lt;code&gt;SideBarMenu&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Under-construction features will show a &lt;code&gt;JOptionPane&lt;/code&gt; message&lt;/li&gt;
&lt;li&gt;The project is extensible: PDF invoice, cloud sync, etc. ready for integration&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📸 UI Screenshots
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌙 FlatLaf Dark Mode
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;⏳ &lt;em&gt;Coming soon&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  ☀️ FlatLaf Light Mode
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;⏳ &lt;em&gt;Coming soon&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  🔮 Roadmap
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;[ ] 🧾 Export invoice to PDF&lt;/li&gt;
&lt;li&gt;[ ] 📤 Google Sheets API integration&lt;/li&gt;
&lt;li&gt;[ ] 💾 Scheduled automatic backups&lt;/li&gt;
&lt;li&gt;[ ] 🔐 Advanced login &amp;amp; permission system&lt;/li&gt;
&lt;li&gt;[ ] ☁️ Firebase cloud sync (optional)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;We welcome contributions to improve this project!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🛠 Fork the repo&lt;/li&gt;
&lt;li&gt;🌱 Create a branch: &lt;code&gt;feature/&amp;lt;feature-name&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;📥 Submit a detailed Pull Request&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📚 Technical Docs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🧩 &lt;strong&gt;DB Schema &amp;amp; Sample Data:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;DATABASE&lt;/span&gt; &lt;span class="n"&gt;IF&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;EXISTS&lt;/span&gt; &lt;span class="n"&gt;pos_app&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;USE&lt;/span&gt; &lt;span class="n"&gt;pos_app&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;roles&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="n"&gt;AUTO_INCREMENT&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;TABLE&lt;/span&gt; &lt;span class="n"&gt;employees&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt; &lt;span class="n"&gt;AUTO_INCREMENT&lt;/span&gt; &lt;span class="k"&gt;PRIMARY&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;UNIQUE&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="nb"&gt;VARCHAR&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;255&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="n"&gt;role_id&lt;/span&gt; &lt;span class="nb"&gt;INT&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="k"&gt;FOREIGN&lt;/span&gt; &lt;span class="k"&gt;KEY&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;role_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;REFERENCES&lt;/span&gt; &lt;span class="n"&gt;roles&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;-- More tables...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="//./src/pos_app/sql/pos_app.sql"&gt;View full SQL file&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧩 &lt;strong&gt;ER Diagram:&lt;/strong&gt;
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fye2p8ae2zy4jddkhtia6.png" alt="DB Schema" width="800" height="459"&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;This project is currently &lt;strong&gt;not published under an open license&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;
Please contact the author for permission if you'd like to use or redistribute the code.&lt;/p&gt;




&lt;h2&gt;
  
  
  👤 Author &amp;amp; Contact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;👨‍💻 &lt;strong&gt;Author:&lt;/strong&gt; Đăng Khoa&lt;/li&gt;
&lt;li&gt;📧 &lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:04dkhoa04@gmail.com"&gt;04dkhoa04@gmail.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Facebook:&lt;/strong&gt; &lt;a href="https://www.facebook.com/dangkh0a2004" rel="noopener noreferrer"&gt;Đăng Khoa&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;⭐ If you like this project, give it a &lt;a href="https://github.com/dangkhoa2004/pos_app" rel="noopener noreferrer"&gt;star on GitHub&lt;/a&gt;!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>java</category>
      <category>beginners</category>
      <category>learning</category>
      <category>coding</category>
    </item>
  </channel>
</rss>
