How nosma/banktransactionsanalyzer works
Bank Transactions Analyzer is a web application for importing bank statements and Midata CSV files, browsing and tagging transactions, and viewing income and expense statistics. The main workflow is browser upload → server-side file validation and parsing → transaction persistence and monthly-stat recomputation; separate API paths serve transaction lists, tagging, and statistics. The graph reflects the supplied controller and service excerpts. Front-end wiring and other unsampled subsystem details are represented conservatively from the file tree and README.
Main entry points: BankTransactionDao.java Transaction repository · UploadController.java Upload API · app.js AngularJS app · MidataWriterService.java Midata writer
Components 23
Web interface
- AngularJS app
webApp/src/main/resources/static/scripts/app.js - Upload view
webApp/src/main/resources/static/scripts/controllers/upload.js - Transaction view
webApp/src/main/resources/static/scripts/controllers/transactions.js - Statistics view
webApp/src/main/resources/static/scripts/controllers/statistics.js
Transaction import
- Upload API
webApp/src/main/java/personal/bank/transaction/analyzer/web/controller/UploadController.java - File validation
webApp/src/main/java/personal/bank/transaction/analyzer/parser/FileParser.java - Statement CSV parser
webApp/src/main/java/personal/bank/transaction/analyzer/parser/StatementCsvParser.java - Midata CSV parser
webApp/src/main/java/personal/bank/transaction/analyzer/parser/MidataCsvParser.java - Statement writer
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/StatementWriterService.java - Midata writer
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/MidataWriterService.java
Transactions and statistics
- Transaction API
webApp/src/main/java/personal/bank/transaction/analyzer/web/controller/BankController.java - Transaction queries
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/BankService.java - Statistics API
webApp/src/main/java/personal/bank/transaction/analyzer/web/controller/BankStatisticsController.java - Statistics calculations
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/BankStatisticsService.java - Monthly aggregation
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/MonthStatService.java
Transaction tagging
- Tag API
webApp/src/main/java/personal/bank/transaction/analyzer/web/controller/TagController.java - Tag configuration
webApp/src/main/java/personal/bank/transaction/analyzer/web/service/TagLoader.java
Persistence
- Transaction repository
webApp/src/main/java/personal/bank/transaction/analyzer/database/dao/BankTransactionDao.java - Midata repository
webApp/src/main/java/personal/bank/transaction/analyzer/database/dao/MidataTransactionDao.java - Monthly-stat repository
webApp/src/main/java/personal/bank/transaction/analyzer/database/dao/MonthStatDao.java - Tag-rule repository
webApp/src/main/java/personal/bank/transaction/analyzer/database/dao/TagRuleDao.java - Application database
Other components
- User
Connections 31
- User → AngularJS app: uses
- AngularJS app → Upload view: routes to
- AngularJS app → Transaction view: routes to
- AngularJS app → Statistics view: routes to
- Upload view → Upload API: uploads files
- Transaction view → Transaction API: requests lists
- Statistics view → Statistics API: requests metrics
- Upload API → File validation: checks support
- Upload API → Statement CSV parser: parses statements
- Upload API → Midata CSV parser: parses Midata
- Upload API → Statement writer: dispatches statements
- Upload API → Midata writer: dispatches Midata
- Statement writer → Transaction repository: saves transactions
- Statement writer → Monthly aggregation: recomputes totals
- Midata writer → Midata repository: saves imports
- Midata writer → Transaction repository: saves transactions
- Midata writer → Monthly aggregation: recomputes totals
- Transaction API → Transaction queries: delegates queries
- Transaction queries → Transaction repository: reads transactions
- Statistics API → Statistics calculations: delegates calculations
- Statistics calculations → Transaction repository: reads transactions
- Statistics calculations → Monthly-stat repository: reads monthly stats
- Monthly aggregation → Transaction repository: reads transactions
- Monthly aggregation → Monthly-stat repository: rebuilds monthly stats
- Tag API → Transaction repository: reads and updates
- Tag API → Tag-rule repository: saves tag rules
- Tag API → Tag configuration: loads predefined tags
- Transaction repository → Application database: persists records
- Midata repository → Application database: persists records
- Monthly-stat repository → Application database: persists aggregates
- Tag-rule repository → Application database: persists rules