Skip to main content

Acctz Ledger

Acctz Ledger is a multi-module Spring Boot project designed to create a general ledger and book of record for accounting applications.


Overview

↑ Back to top

This project implements a modular-first backend architecture for financial data management, featuring:

  • Double-entry bookkeeping with append-only ledger entries
  • Bank feed integration for transaction imports
  • Reconciliation workflows with period locking
  • Financial reporting (P&L, Balance Sheet, Trial Balance)
  • Full audit trail for compliance and traceability

Project Structure

↑ Back to top

acctz/
├── ledger/ # Core ledger module (Spring Boot)
├── docs-site/ # Project-level documentation (Docusaurus)
├── docker/ # Docker configuration
└── opt/ # Development scripts

Modules

↑ Back to top

Ledger Module

The ledger module is the core accounting engine, providing:

  • Chart of Accounts management
  • Journal entry creation and posting
  • Transaction normalization and categorization
  • Bank reconciliation
  • Period management and closing

Architecture Principles

↑ Back to top

  • Modular-first, service-ready boundaries
  • Single transactional system of record
  • Append-only financial data (corrections are new entries)
  • Strong tenant isolation
  • Explicit auditability

Quick Start

↑ Back to top

Prerequisites

  • Java 17+
  • Docker & Docker Compose
  • PostgreSQL (via Docker)

Run the Project

# Start infrastructure (PostgreSQL, pgAdmin)
source opt/docs-manager.sh
acctz start-infra

# Run the application locally
./gradlew :ledger:bootRun

# Or run in Docker
acctz build
acctz start-app

Access Points

ServiceURL
Ledger APIhttp://localhost:8080
Health Checkhttp://localhost:8080/actuator/health
pgAdminhttp://localhost:5050

Database

↑ Back to top

PostgreSQL 17 with four domain schemas (iam, ledger, banking, audit), UUIDv7 primary keys, Row Level Security for tenant isolation, and Flyway-managed migrations. See the Schema Design page for the full ERD, Firebase integration flow, RBAC model, and setup instructions.


Further Reading

↑ Back to top