Inspiration
Statement Generator was inspired by the time and complexity involved in preparing long financial statements manually. Matching balances, distributing transactions, applying historical tax rules, avoiding restricted dates, and maintaining consistent formatting across Excel and Word can require hours of repetitive work. We wanted to create a single, responsive workspace that could automate these calculations while still giving users detailed control over statement rules, formatting, verification, and exports.
What it does
Statement Generator creates customizable single-year and multi-year financial statements with accurate running balances. Key features include: Custom minimum and maximum deposit and withdrawal amounts. Automatic and mixed amount-rounding rules. Custom transaction counts, including large multi-year statements. Historical interest and tax-rate calculations. Protected holidays, weekends, and posting dates. Earlier statement generation that matches an existing opening balance. Statement importing, checking, editing, and recalculation. Custom descriptions, names, labels, and extra text. Normal and customized print previews. Excel statement and Word certificate exports. Automatic expansion of custom Excel templates when more rows are required. Excel and Word-style browser editors with formatting tools. Portrait, landscape, zoom, fit-width, and full-screen views. User, Super Admin, and Admin access controls. Statement history, database backup, and schema export. The application is intended for authorized record preparation, internal workflows, demonstrations, and software testing.
How we built it
We created two independent versions of the application: A PHP and JavaScript version designed for shared web hosting. A Python and JavaScript version with Excel and Word automation support. The generation engines calculate transaction dates, debit and credit amounts, interest, tax, and running balances. A seed-based system allows statements to be reproduced consistently. The frontend was built as a responsive one-page application using HTML, CSS, and JavaScript. Custom Excel and Word files are scanned and presented through browser-based editors. The export pipeline identifies transaction sections inside custom templates. When the generated statement contains more transactions than the template supports, the system inserts additional rows using the formatting of the final transaction row. The PHP system supports MySQL with a JSON fallback. GitHub Actions handles automated FTP deployment to InfinityFree hosting while protecting live configuration and user data.
Challenges we ran into
The biggest challenge was matching an exact closing balance while simultaneously respecting: Deposit and withdrawal limits. Selected rounding denominations. Transaction-count requirements. Interest and historical tax rules. Protected dates and posting schedules. Natural-looking transaction distributions. Custom Excel templates were another major challenge. Different files use different row structures, merged cells, formulas, totals, and formatting. We needed to detect the correct transaction area and add rows without damaging summaries or styles. Keeping the PHP and Python systems functionally aligned also required careful testing because each system uses a different export implementation.
Accomplishments that we're proud of
We are especially proud that the project can: Generate long multi-year statements with exact balance reconciliation. Add earlier statement periods while preserving an existing statement. Produce genuine mixed-denomination transaction amounts. Expand short custom Excel templates automatically. Preserve cell colors, borders, number formats, and row structure. Provide Excel and Word-style editing directly in the browser. Support responsive desktop and mobile workflows. Protect passwords and existing data during database upgrades. Maintain matching functionality across PHP and Python. Deploy automatically through GitHub Actions and FTP.
What we learned
We learned how important it is to separate generation rules, financial calculations, interface behavior, and export formatting into clearly defined components. We also improved our understanding of: Deterministic financial-data generation. Exact balance-reconciliation algorithms. Historical date-based business rules. Excel and Word document structures. Dynamic spreadsheet row insertion. Responsive application design. Secure authentication and role-based permissions. Database migration and backup strategies. Automated testing and deployment. Most importantly, we learned that document automation requires more than producing correct values. The exported result must also preserve layout, formatting, formulas, and usability.
What's next for Statement Generator
The next development goals include: More Excel formulas and spreadsheet editing tools. Improved Word page-layout and section controls. Additional ready-to-use statement and certificate templates. Better template detection for unusual Excel formats. Faster generation and preview for very large statements. More detailed validation and correction suggestions. Version history and template recovery. Audit logs for sensitive administrative actions. More database migration and restoration tools. Expanded automated testing across browsers and hosting environments. Optional PDF export with print-quality page control. Continued alignment between the PHP and Python editions.
Login details for test: User: test Password: test123

Log in or sign up for Devpost to join the conversation.