No description
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| bun.lock | ||
| COOLIFY.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| index.html | ||
| metadata.json | ||
| package.json | ||
| portal-data.json | ||
| README.md | ||
| server.ts | ||
| tsconfig.json | ||
| vite.config.ts | ||
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
pgconnection pool with automatic fallback to JSON data persistence (/app/data/portal-data.json). - Containerized Deployment: Ready 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). |
docker-compose.yml |
Full-stack orchestration using expose: "3000" and expose: "5432" to prevent host port binding conflicts. |
.dockerignore |
Defines context exclusions for slim Docker image builds. |
.env.example |
Template environment variables (DATABASE_URL, PORT, DATA_PATH, SMTP_*). |
COOLIFY.md |
Complete deployment guide for Coolify platform & managed databases. |
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 (With PostgreSQL & Exposed Port 3000)
docker-compose up --build -d
The application container exposes port 3000 internally via Docker network expose configuration, avoiding host port allocation conflicts. Reverse proxies (Coolify, Traefik, Nginx) or container networks route directly to port 3000.
2. Run via Docker CLI
docker build -t balance-sheet-portal .
docker run -p 3000:3000 -v portal_data:/app/data balance-sheet-portal
3. Native Node.js Development
# Install dependencies
npm install
# Start development server (Express + Vite hot reload)
npm run dev
☁️ Deployment on Coolify
Refer to COOLIFY.md for step-by-step instructions on deploying via Docker Compose or Coolify Managed PostgreSQL.