NeoCore
Next-generation cooperative banking platform. Replacing the CBMS Oracle monolith with Spring Boot microservices, a React frontend, and PostgreSQL — purpose-built for Indian cooperative banks.
Documentation¶
-
Overview
Project direction, team roles, delivery roadmap, and the AI-assisted development workflow.
-
Architecture
PostgreSQL schema topology, Oracle-to-PG migration strategy, and DB function design decisions.
-
Microservices
All 60+ services — ports, domain ownership, inter-service patterns, and standard structure.
-
Development
Local environment setup, Git workflow, CI/CD pipeline, and the structured AI-prompt approach.
-
Deployment
Bank-by-bank migration playbook, parallel-run strategy, and schema cutover process.
-
Reports
Jasper Reports architecture, GL reporting layer, and the banking report infrastructure plan.
System Architecture¶
graph LR
FE["React Frontend\nshowcase-app"] -->|JWT Bearer| GW["API Gateway\n:8080"]
GW --> CS["customer-service\n:8082"]
GW --> DS["deposit-service\n:8081"]
GW --> PS["product-service\n:8083"]
GW --> GL["generalledger-service\n:8088"]
GW --> SS["system-setup-service\n:8089"]
GW --> SH["share-service\n:8086"]
CS & DS & PS & GL & SS & SH --> DB[("PostgreSQL\nneocoredb")]
EUR["Eureka\nDiscovery"] -.- GW
classDef frontend fill:#dbeafe,color:#1e3a8a,stroke:#3b82f6,stroke-width:1.5px
classDef gateway fill:#e2e8f0,color:#0f172a,stroke:#475569,stroke-width:1.5px
classDef service fill:#ccfbf1,color:#134e4a,stroke:#0f766e,stroke-width:1px
classDef db fill:#0f766e,color:#ffffff,stroke:none
classDef infra fill:#e0f2fe,color:#075985,stroke:#38bdf8,stroke-width:1.5px
class FE frontend
class GW gateway
class CS,DS,PS,GL,SS,SH service
class DB db
class EUR infra
Platform Design Principles¶
| Principle | What It Means in Practice |
|---|---|
| Legacy-first reference | Every screen must match CBMS legacy UI and business logic exactly — no assumptions |
| Database-centric logic | Business rules live in PL/pgSQL functions; Java is a thin orchestration layer |
| AI-assisted development | Domain experts use structured prompts with legacy SQL screenshots as source material |
| Schema isolation | Each microservice owns its PostgreSQL schema — no shared tables across service boundaries |
| Incremental migration | Banks migrate one at a time with a parallel-run period before cutover |
- Java 17 + Spring Boot 3.2
- Spring Cloud Gateway — request routing, JWT auth
- Spring Data JPA + Flyway migrations
- Eureka service discovery
- Optional: Kafka messaging, Redis caching
- React 18.2 + TypeScript
- Vite build tool, React Router v6
- Bearer token auth via
AuthContext - Vitest (unit) + Playwright (e2e)
- PostgreSQL 13 — single instance (
neocoredb) - 640+ migrated Oracle functions via Flyway V7
- 69 stored procedures, 444 views
- Schema-per-microservice isolation
- Docker & Docker Compose (local dev stack)
- GitHub Actions (CI/CD pipeline)
- Kafka (async messaging, optional per service)
- Redis (session/cache, optional per service)