# Commercial Banking Balance Sheet & Financial Reporting Portal A full-stack enterprise web application built for multi-branch balance sheet consolidation, trial balance ledger verification, automated accounting reconciliation, double-entry bookkeeping, and executive financial reporting. --- ## 🚀 Key Features - **Multi-Branch Operations**: Head Office Admin, Branch Users, Maker-Checker authorization matrix. - **Server-Side Architecture**: Express backend (`server.ts`) handling state management, calculations, audit logging, and email dispatches. - **PostgreSQL & Fallback Storage**: Connects to PostgreSQL via `pg` connection pool with automatic fallback to JSON data persistence (`/app/data/portal-data.json`). - **Containerized Deployment**: Built for Docker, Docker Compose, and **Coolify** self-hosting. --- ## 📁 Repository Structure & Key Configuration Files | File | Description | | :--- | :--- | | `Dockerfile` & `dockerfile` | Multi-stage production container build (Vite client + Express CJS server, exposing port 3000 with IPv4 health check). | | `docker-compose.yml` | Full-stack orchestration using `expose: "3000"` (eliminates `Bind for 0.0.0.0:3000 failed` host port conflicts). | | `.dockerignore` | Context exclusions for slim Docker image builds. | | `.env.example` | Template environment variables (`DATABASE_URL`, `PORT`, `DATA_PATH`, `SMTP_*`). | | `COOLIFY.md` | Deployment & port binding troubleshooting guide for Coolify platform & Traefik proxies. | | `server.ts` | Express server entry point with PostgreSQL initialization, environment SMTP dispatching, and REST API routes. | --- ## 🛠️ Local Development & Running via Docker ### 1. Run via Docker Compose ```bash docker-compose up --build -d ``` The application container exposes port `3000` via Docker's internal network (`expose: "3000"`), avoiding host interface port allocation collisions. ### 2. Run via Docker CLI ```bash docker build -t balance-sheet-portal . docker run -p 7000:3000 -v portal_data:/app/data balance-sheet-portal ``` --- ## ☁️ Deployment on Coolify Refer to [`COOLIFY.md`](./COOLIFY.md) for step-by-step instructions on deploying via Docker Compose or Coolify Managed PostgreSQL, and resolving Traefik port allocation issues.