Skip to content

globaltrust-bank

End-to-end example project for the Apogee Framework. A fictional international bank built using every module: relational + NoSQL + vector storage, RBAC + MFA, RAG-powered compliance, multi-currency (USD/EUR/BRL/CNY) and multi-language (EN/PT/ES/ZH) support.

What this example demonstrates

Concern How it is shown
Clean Architecture One bounded context per banking concern: customers, accounts, transactions, fx, compliance
Relational data PostgreSQL — accounts, transactions, FX rates, ledger
NoSQL data MongoDB — audit log, KYC documents
Vector data Qdrant — RAG over T&Cs and regulations
LLM integration apogee-ai-providers — OpenRouter/Anthropic/OpenAI
Agent layer apogee-ai — compliance officer + FX advisor agents
Auth apogee-auth — RBAC (customer/teller/compliance/admin) + MFA
Frontend apogee-frontend — shadcn/ui SPA, i18n EN/PT/ES/ZH
Multi-currency USD, EUR, BRL, CNY — FX with locale-aware formatting
Multi-language UI, emails, T&Cs in 4 languages

How to use this site

  • Read the Overview to understand the architecture.
  • Run locally by following Run locally.
  • Read the rendered Notebooks here, or run them locally to interact with the example end-to-end.

Where the code lives

The implementation lives at app-tests-docs/globaltrust-bank/ in the Apogee Framework repository (versioned, public — distinct from the legacy internal app-tests/). The project was generated with:

apogee new globaltrust-bank
apogee make:domain banking
apogee make:context customers --domain banking
# ...one context per banking concern
apogee make:entity Customer --domain banking --context customers --fields ...
# ...one entity per concept
apogee add:postgres ; apogee add:mongo ; apogee add:qdrant ; apogee add:pgvector

That is all the manual code-gen — no domain/application/infrastructure code was hand-written for this example.