MCPcopy Index your code
hub / github.com/Adytm404/qris-dinamis-generator

github.com/Adytm404/qris-dinamis-generator @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
36 symbols 57 edges 11 files 0 documented · 0% updated 11mo ago★ 61
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

QRIS Dynamic Generator

This is a web-based tool to convert a static QRIS (Quick Response Code Indonesian Standard) into a dynamic one. Users can upload a static QRIS image, specify a payment amount and an optional transaction fee, and the application will generate a new, dynamic QRIS code ready for payment. The app also conveniently saves your previously used QRIS codes for quick access.

✨ Features

  • Static to Dynamic QRIS Conversion: The core feature is to generate a dynamic QRIS from a static one by embedding the payment amount.
  • QR Code Scanning: Upload a QRIS code image (PNG, JPG, GIF) to automatically scan its data.
  • Custom Amount & Fee: Set a specific payment amount for the dynamic QRIS.
  • Flexible Transaction Fees: Add a transaction fee, calculated either as a fixed amount (Rupiah) or a percentage.
  • QRIS History: The app saves up to 5 of your most recently used QRIS codes in your browser's local storage for easy reuse.
  • Payment-Ready Display: Shows the generated dynamic QRIS on a clean payment screen, complete with the merchant's name and the total amount.
  • Responsive Design: A mobile-first design that works smoothly on both desktop and mobile browsers.

🚀 How It Works

  1. Upload & Scan: The user uploads an image of a static QRIS code. The jsQR library is used to read the QR code from the image and extract the static QRIS string data.
  2. Input Data: The user enters the desired payment amount and, optionally, a transaction fee on the main form.
  3. Generate Dynamic QRIS: The application takes the static QRIS data and injects new tags for the payment amount (54) and transaction fee (55, 56, or 57). It then replaces the static QRIS indicator (010211) with the dynamic one (010212).
  4. Recalculate CRC: A new CRC-16 checksum is calculated for the modified QRIS string to ensure its validity.
  5. Render QR Code: The final dynamic QRIS string is rendered as a new QR code image on the payment page using the qrcode-generator library.

🛠️ Technologies Used

  • Frontend: React 19, TypeScript
  • Build Tool: Vite
  • Styling: Tailwind CSS
  • QR Code Reading: jsQR
  • QR Code Generation: qrcode-generator
  • Icons: Font Awesome

⚙️ Setup and Run Locally

Prerequisites: Node.js

  1. Clone the repository: bash git clone https://github.com/your-username/qris-dinamis-generator.git cd qris-dinamis-generator

  2. Install dependencies: bash npm install

  3. Run the development server: bash npm run dev

    The application will be running at http://localhost:5173 (or another port if 5173 is busy).

Extension points exported contracts — how you extend this code

DynamicQrisFormData (Interface)
(no doc)
types.ts
IconProps (Interface)
(no doc)
components/icons.tsx
HeaderProps (Interface)
(no doc)
components/Header.tsx
FormFieldProps (Interface)
(no doc)
components/FormField.tsx
ImageUploaderProps (Interface)
(no doc)
components/ImageUploader.tsx
HomePageProps (Interface)
(no doc)
pages/HomePage.tsx
PaymentPageProps (Interface)
(no doc)
pages/PaymentPage.tsx
PaymentData (Interface)
(no doc)
types.ts

Core symbols most depended-on inside this repo

parseMerchantName
called by 2
App.tsx
updateSavedQris
called by 2
pages/HomePage.tsx
crc16
called by 1
App.tsx
generateDynamicQris
called by 1
App.tsx
handleUseQris
called by 1
pages/HomePage.tsx
handleDeleteQris
called by 1
pages/HomePage.tsx
formatCurrency
called by 1
pages/PaymentPage.tsx
App
called by 0
App.tsx

Shape

Function 27
Interface 9

Languages

TypeScript100%

Modules by API surface

pages/HomePage.tsx8 symbols
components/icons.tsx8 symbols
App.tsx6 symbols
types.ts3 symbols
pages/PaymentPage.tsx3 symbols
components/ImageUploader.tsx3 symbols
components/Header.tsx2 symbols
components/FormField.tsx2 symbols
components/CountdownTimer.tsx1 symbols

For agents

$ claude mcp add qris-dinamis-generator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact