How elpsycongroo75/rek-ektraktor works
Purpose and Entry Points
This is a static browser application for converting Indonesian bank transaction data into a normalized form. The main page is index.html; browser behavior is initialized in js/app.js. Styling is supplied by css/style.css. Deployment is configured for Vercel through vercel.json.
UI Application Controller
js/app.js is the client-side orchestration layer. It connects page inputs/actions to parser selection and conversion results, owns the interactive flow, and renders or exposes normalized output in the browser.
• index.html
• js/app.js
• css/style.css
Parser Abstraction Boundary
Bank-specific parsing is isolated behind a common base abstraction, preventing UI code from needing to understand each statement/export format. New banks should be integrated by implementing the shared parser contract and registering the parser.
• js/parsers/base-parser.js
• js/parsers/index.js
Parser Registry and Dispatch
js/parsers/index.js is the integration point that aggregates concrete parsers and makes the appropriate implementation available to the application. Control flow is: user-provided bank/source selection or recognizable input → parser registry → bank parser → normalized transaction result.
• js/parsers/index.js
• js/app.js
Bank Format Adapters
Each adapter translates one institution’s raw transaction layout into the shared representation. These are the core domain-specific components; their parsing logic must account for differences in column names, dates, debit/credit conventions, descriptions, and balance formats.
• js/parsers/bca-parser.js
• js/parsers/mandiri-parser.js
• js/parsers/bni-parser.js
• js/parsers/bsi-parser.js
• js/parsers/danamon-parser.js
• js/parsers/bankjakarta-parser.js
Conversion Data Flow
The application runs entirely in the browser: raw user data enters through the HTML UI, js/app.js delegates conversion to a parser obtained from js/parsers/index.js, and the parsed output returns to the UI for display/export/copy handling. The important boundary is between untrusted, bank-specific input and the parser layer’s normalized output; validation and malformed-row handling belong at this boundary.
• index.html
• js/app.js
• js/parsers/base-parser.js
Runtime and Infrastructure
There is no indicated backend, database, authentication system, or external API integration. The material runtime is the browser’s JavaScript/DOM environment. vercel.json indicates static hosting/deployment via Vercel. convert-parsers.js is a repository-level conversion/generation utility rather than part of the browser entry flow.
• vercel.json
• convert-parsers.js
• index.html
Main entry points: index.js Parser registry · base-parser.js Parser contract · app.js Application controller · index.html Main page
Components 15
Browser UI
- Main page
index.html - UI styles
css/style.css - Application controller · Coordinates input, parser dispatch, and output handling.
js/app.js - Raw bank data
- Normalized transactions
Parser Layer
- Parser contract · Shared normalized parsing abstraction.
js/parsers/base-parser.js - Parser registry · Selects and exposes the appropriate bank parser.
js/parsers/index.js - BCA parser
js/parsers/bca-parser.js - Mandiri parser
js/parsers/mandiri-parser.js - BNI parser
js/parsers/bni-parser.js - BSI parser
js/parsers/bsi-parser.js - Danamon parser
js/parsers/danamon-parser.js - Bank Jakarta parser
js/parsers/bankjakarta-parser.js
Deployment & Tooling
- Vercel static hosting
vercel.json - Parser conversion utility · Generation/conversion tool outside the browser runtime.
convert-parsers.js
Connections 19
- Vercel static hosting → Main page: serves
- Main page → UI styles: loads
- Main page → Application controller: initializes
- Raw bank data → Application controller: submitted data
- Application controller → Parser registry: selects parser
- Parser registry → BCA parser: dispatches
- Parser registry → Mandiri parser: dispatches
- Parser registry → BNI parser: dispatches
- Parser registry → BSI parser: dispatches
- Parser registry → Danamon parser: dispatches
- Parser registry → Bank Jakarta parser: dispatches
- BCA parser → Parser contract: implements
- Mandiri parser → Parser contract: implements
- BNI parser → Parser contract: implements
- BSI parser → Parser contract: implements
- Danamon parser → Parser contract: implements
- Bank Jakarta parser → Parser contract: implements
- Parser contract → Normalized transactions: normalized result
- Normalized transactions → Application controller: display, export, or copy