From 6744d0ec0b1585ceaa0ccd76fad4d9cf8b866cee Mon Sep 17 00:00:00 2001 From: imamWahyudiz Date: Fri, 4 Sep 2026 20:20:52 +0700 Subject: [PATCH 1/4] feat: optimize SEO, PageSpeed, and Vercel deployment setup --- index.html | 177 +++++++++++++++++++++++++++++-------------- public/favicon.svg | 14 ++++ public/manifest.json | 17 +++++ robots.txt | 4 + sitemap.xml | 9 +++ src/css/style.css | 9 ++- src/js/bca-parser.js | 4 + vercel.json | 50 ++++++++++++ 8 files changed, 228 insertions(+), 56 deletions(-) create mode 100644 public/favicon.svg create mode 100644 public/manifest.json create mode 100644 robots.txt create mode 100644 sitemap.xml create mode 100644 vercel.json diff --git a/index.html b/index.html index 209ee53..6a92b7b 100644 --- a/index.html +++ b/index.html @@ -4,81 +4,156 @@ - Bank Statement Converter to Odoo / Excel - - - - - - + + + + - + + + + + + + + + + + + + + + + + + + -
-
+
+
Client-Side Multi-Bank Converter

Bank Statement Converter

-

Konversi mutasi rekening Bank menjadi format Odoo

-
+

Konversi mutasi rekening Bank Mandiri, BCA, BRI, dan BSI menjadi format siap impor Odoo Accounting & Excel Audit

+ -
- - - - -
+ -
- 📄 +
+ Pilih atau Seret File Rekening Koran Mandiri Format: .csv - -
+ + -
- - -
+ -
+
- + -
+
Preview Transaksi 0 baris @@ -117,30 +192,22 @@

Bank Statement Converter

-
+ -
+
Keterangan Format File Bank Mandiri:
    -
  • Mendukung file .csvasli unduhan Kopra
  • +
  • Mendukung file .csv asli unduhan Kopra / Mandiri Online.
  • Kolom otomatis terdeteksi: PostDate/Date, Remarks/Keterangan, Credit, Debit.
  • Mendukung ekspor ke Odoo Clean (.xlsx) dan Tabel Mutasi Lengkap (.xlsx).
-
- - -
- - - - - - - - + + + + diff --git a/public/favicon.svg b/public/favicon.svg new file mode 100644 index 0000000..85eb19b --- /dev/null +++ b/public/favicon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 0000000..f8e0410 --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "Bank Statement Converter to Odoo", + "short_name": "BankConverter", + "description": "Konversi mutasi rekening Bank Mandiri, BCA, BRI, dan BSI ke format Odoo Accounting & Excel.", + "start_url": "/", + "display": "standalone", + "background_color": "#0b0f19", + "theme_color": "#6366f1", + "icons": [ + { + "src": "/public/favicon.svg", + "sizes": "any", + "type": "image/svg+xml", + "purpose": "any maskable" + } + ] +} diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..7f0ed1d --- /dev/null +++ b/robots.txt @@ -0,0 +1,4 @@ +User-agent: * +Allow: / + +Sitemap: https://bankparsen.vercel.app/sitemap.xml diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..afc6b85 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,9 @@ + + + + https://bankparsen.vercel.app/ + 2026-09-04 + weekly + 1.0 + + diff --git a/src/css/style.css b/src/css/style.css index 38219aa..b3deea2 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -485,10 +485,17 @@ tr:hover td { } .footer-credit { - margin-top: 24px; + margin-top: 28px; text-align: center; font-size: 11.5px; color: var(--text-secondary); + border-top: 1px solid rgba(255, 255, 255, 0.05); + padding-top: 16px; +} + +.footer-credit p { + margin: 0; + line-height: 1.6; } /* Responsive Media Queries */ diff --git a/src/js/bca-parser.js b/src/js/bca-parser.js index d17d654..761b7fa 100644 --- a/src/js/bca-parser.js +++ b/src/js/bca-parser.js @@ -22,6 +22,10 @@ const BCAParser = { throw new Error("Library PDF.js belum dimuat. Pastikan koneksi internet aktif untuk memuat library."); } + if (!pdfjsLib.GlobalWorkerOptions.workerSrc) { + pdfjsLib.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/3.11.174/pdf.worker.min.js'; + } + const loadingTask = pdfjsLib.getDocument({ data: arrayBuffer }); const pdfDoc = await loadingTask.promise; const pageTexts = []; diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..49787a1 --- /dev/null +++ b/vercel.json @@ -0,0 +1,50 @@ +{ + "$schema": "https://openapi.vercel.sh/vercel.json", + "cleanUrls": true, + "trailingSlash": false, + "headers": [ + { + "source": "/(.*)", + "headers": [ + { + "key": "X-Content-Type-Options", + "value": "nosniff" + }, + { + "key": "X-Frame-Options", + "value": "DENY" + }, + { + "key": "X-XSS-Protection", + "value": "1; mode=block" + }, + { + "key": "Referrer-Policy", + "value": "strict-origin-when-cross-origin" + }, + { + "key": "Permissions-Policy", + "value": "camera=(), microphone=(), geolocation=()" + } + ] + }, + { + "source": "/public/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=31536000, immutable" + } + ] + }, + { + "source": "/src/(.*)", + "headers": [ + { + "key": "Cache-Control", + "value": "public, max-age=86400, stale-while-revalidate=604800" + } + ] + } + ] +} From 413720eb63c9ca7d3675ab23a9da58e927c5969c Mon Sep 17 00:00:00 2001 From: imamWahyudiz Date: Fri, 4 Sep 2026 20:21:56 +0700 Subject: [PATCH 2/4] fix(vercel): add explicit root rewrite to index.html --- vercel.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/vercel.json b/vercel.json index 49787a1..4f2f2b4 100644 --- a/vercel.json +++ b/vercel.json @@ -2,6 +2,12 @@ "$schema": "https://openapi.vercel.sh/vercel.json", "cleanUrls": true, "trailingSlash": false, + "rewrites": [ + { + "source": "/", + "destination": "/index.html" + } + ], "headers": [ { "source": "/(.*)", From 8f8298657cbe34aa559050793cebcef9419e9c68 Mon Sep 17 00:00:00 2001 From: imamWahyudiz Date: Fri, 4 Sep 2026 20:28:25 +0700 Subject: [PATCH 3/4] fix(vercel): set outputDirectory to root dot --- vercel.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/vercel.json b/vercel.json index 4f2f2b4..26bf84b 100644 --- a/vercel.json +++ b/vercel.json @@ -1,13 +1,6 @@ { "$schema": "https://openapi.vercel.sh/vercel.json", - "cleanUrls": true, - "trailingSlash": false, - "rewrites": [ - { - "source": "/", - "destination": "/index.html" - } - ], + "outputDirectory": ".", "headers": [ { "source": "/(.*)", From c9139190d9815e6475e37a445d2fc16bc68b5fb4 Mon Sep 17 00:00:00 2001 From: imamWahyudiz Date: Fri, 4 Sep 2026 20:40:07 +0700 Subject: [PATCH 4/4] feat: update favicon with modern convert loop vector logo --- public/favicon.svg | 42 ++++++++++++++++++++++++++++++++++-------- vercel.json | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/public/favicon.svg b/public/favicon.svg index 85eb19b..98a2f3e 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,14 +1,40 @@ - - - - + + + + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + diff --git a/vercel.json b/vercel.json index 26bf84b..b5e1da2 100644 --- a/vercel.json +++ b/vercel.json @@ -1,6 +1,6 @@ { "$schema": "https://openapi.vercel.sh/vercel.json", - "outputDirectory": ".", + "cleanUrls": true, "headers": [ { "source": "/(.*)",