10 Company Information
This chapter describes an iteration that adds a company-level dashboard to the ACH processing application, turning previously file-centric capabilities into customer-focused insights for business clients. It lays out sprint goals and blockers, then incrementally delivers a Company Information view plus three operational widgets: Recent ACH Batches, Expected Files, and Company Limits. Along the way it highlights practical engineering choices—using Generative AI to seed realistic mock data, structuring isolated tests with Testcontainers, and balancing YAGNI/KISS against future extensibility—to keep development fast, testable, and user-centered.
The data foundation expands with normalized tables for companies, addresses, and phones, plus constrained enums for tax ID types, industries, address/phone/schedule types, and optional logo storage. The chapter shows how to expose this model through FastAPI and Pydantic, including list and detail endpoints, a flexible batches “search” endpoint, and SQL that leverages CTEs, JSON aggregation, and COALESCE for resilient joins when company context may be missing. It also covers building BDD inputs to generate company-specific ACH files, handling formatting issues like truncation/padding, reorganizing SQL bootstrap scripts for maintainability, and wiring a Next.js/Material UI interface that lists companies, validates base64 images, and uses route-driven navigation.
Each dashboard component is implemented end-to-end. Company Information returns a rich record with nested addresses and phones assembled either in application code or via SQL JSON aggregation. Recent Batches surfaces activity by company UUID, joining batch header/control data and fallback naming to handle non-customer batches. Expected Files introduces a schedule-driven tracker that computes next expected dates, marks whether a file arrived, and updates last-file timestamps on upload, with discussion of edge cases like weekends and holidays. Company Limits computes daily totals on the fly, flags breaches, and writes a structured exception during batch control parsing, then presents results with clear visual cues and an enhanced exception modal including company context and recovery guidance. The chapter closes by encouraging CRUD completion, performance profiling, and future extensions such as originating ACH files.
ACH Dashboard Enhancement Timeline
Component to list the companies
Recent Company Batches
Expected Files Component
Company Limits Component
Exception Details Modal
Summary
- Sprint planning focused on building key components: Company Information, Recent Batches, Expected Files, and Company Limits, emphasizing the importance of comprehensive data structure design.
- We explored creating a company-level dashboard to address the need for storing and displaying detailed company information beyond the initial project scope.
- Building robust company data management systems was underscored, providing a framework for enhancing ACH processing services for business customers who need detailed batch information.
- Designing foundational company information tables as blockers highlighted their dependency for further development and the consideration of early work on some components to reduce rework.
- Leveraging Generative AI helps create meaningful test data quickly, enhancing productivity by generating more than just typical name and address information, including logos.
- Implementing a Company Dashboard demonstrated the necessity of organizing UI structures for efficient navigation and detailed data presentation for specific company metrics.
- Creating detailed UI components for company overviews taught us the value of user-friendly interfaces facilitating seamless navigation and interaction at the company level.
- Designing the API for company data retrieval reinforced the importance of well-structured responses and validation mechanisms for dynamic user interaction with dashboards.
- Developing recent batch components highlighted the importance of flexible search functions for batch data retrieval to meet diverse business needs.
- Creating expected file components stressed the need for alerting mechanisms and schedule compliance to ensure timely processing of crucial documents and mitigate risks.
- Proactive monitoring of ACH files was explored to shift from reactive to proactive measures for improved customer service.
- Company limit components emphasized configurable alerts and thresholds to safeguard against unauthorized or unexpected financial transactions.
- We learned the importance of expanding exception functionality, such as alert generation, to notify customers through various channels if limits are exceeded.
- Utilizing Testcontainers enhances testing reliability by ensuring isolated environments, eliminating dependency on developer-specific configurations, and allowing robust and portable tests.
Build Financial Software with Generative AI (From Scratch) ebook for free