Tech Stack & Deployment
Derived from pom.xml and application.yml across all NeoCore services.
Showcase App
| Layer |
Technology |
| Runtime |
React 18.2 · TypeScript · Vite ~5 · Node |
| Routing |
react-router-dom v6 |
| Testing |
Playwright (E2E) · Vitest (unit) |
| Build |
npm run build → tsc && vite build |
| Deploy |
Static dist/ behind NGINX / Spring Cloud Gateway |
Arcat Portal (Dev Portal)
| Layer |
Technology |
| Runtime |
React 18.2 · TypeScript 5.3.3 · Vite 8.x · Node 18+ |
| Routing |
react-router-dom 6.21 |
| State |
@tanstack/react-query 5.17 |
| Diagrams |
mermaid 10.6 · reactflow 11.10 |
| API |
swagger-ui-react 5.11 |
| Markdown |
react-markdown 10.1 |
| Icons |
lucide-react 0.309 |
| Compression |
pako 2.1 |
| Build |
npm run build (prebuild zips DB artefacts) |
| Deploy |
Static or Docker |
Microservices Registry
| Service |
Port |
Context Path |
Kafka |
Redis |
Eureka |
| General Ledger Service |
8088 |
/api/v1/general-ledger |
✓ |
✓ |
✓ |
| Product Service |
8083 |
/api/v1/products |
— |
— |
✓ |
| Customer Service |
8082 |
/api/v1/customers |
✓ |
✓ |
✓ |
| Deposit Service |
8081 |
/api/v1/deposits |
✓ |
✓ |
✓ |
| Transaction Service |
8085 |
/api/v1/transactions |
✓ |
✓ |
✓ |
| Share Service |
8086 |
/api/v1/shares |
✓ |
✓ |
✓ |
| System Setup Service |
8089 |
/api/v1/system-setup |
— |
— |
— |
| Periodic Activity |
8087 |
/api/v1/periodic-activity |
✓ |
✓ |
✓ |
| Bank & Branch Service |
8090 |
/api/v1/bank-branch |
— |
— |
— |
| Common Service |
8091 |
/api/v1/common |
✓ |
✓ |
✓ |
Cross-cutting Stack
Database
| Detail |
Value |
| Engine |
PostgreSQL |
| Host |
103.216.94.145:5443 |
| Database |
neocoredb |
| Schema pattern |
{service-name}_db-linux |
| Exception |
common-service → localhost:5432/common_db |
| Migrations |
Flyway — every startup |
| Pool |
HikariCP · max 10 · min 5 · timeout 30s |
Infrastructure
| Service |
Host |
Used by |
| Kafka |
localhost:9092 |
7 / 10 services |
| Redis |
localhost:6379 |
8 / 10 services · TTL 600s |
| Eureka |
localhost:8761 |
7 / 10 services |
| Config Server |
localhost:8888 |
Disabled by default |
Quick Commands
# Package a service (skip tests)
mvn -q -DskipTests package
# Run a service
java -jar target/{service}-0.0.1-SNAPSHOT.jar
# Portal dev server
cd cbms-ai-dev-portal/arcat-portal && npm run dev
# Showcase dev server
cd cbms-ai-frontend && npm run dev
# Run Playwright E2E tests
npx playwright test
# Start backing services (Docker)
docker compose up -d postgres kafka redis
# Create common DB (one-time)
createdb -h localhost -U postgres common_db
# Override datasource (service startup)
java -jar target/{service}.jar \
--spring.datasource.url=jdbc:postgresql://103.216.94.145:5443/neocoredb \
--spring.datasource.username=neocore \
--spring.datasource.password=Admin1000
Environment Variables
| Variable |
Purpose |
SPRING_DATASOURCE_URL |
PostgreSQL JDBC URL |
SPRING_DATASOURCE_USERNAME |
DB username |
SPRING_DATASOURCE_PASSWORD |
DB password |
SPRING_KAFKA_BOOTSTRAP_SERVERS |
Kafka broker address |
SPRING_DATA_REDIS_HOST |
Redis host |
EUREKA_CLIENT_SERVICEURL_DEFAULTZONE |
Eureka server URL |
CONFIG_SERVER_ENABLED |
Enable/disable config server (false by default) |