nivomoney

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 15, 2026 License: MIT

README

Nivo

A production-grade neobank platform demonstrating fintech architecture with Go microservices.

Documentation Go License

Overview

Nivo is a portfolio project implementing a complete digital banking system. It demonstrates microservices architecture, double-entry accounting, and fintech domain patterns in a working, deployable application.

What it includes:

  • 9 Go microservices with domain-driven boundaries
  • Double-entry ledger with balanced journal entries
  • JWT authentication with role-based access control
  • React frontends for users and admins
  • Full observability stack (Prometheus, Grafana)

Live Demo

Try it at nivomoney.com:

Email Password Balance
raj.kumar@gmail.com raj123 ₹50,000
priya.electronics@business.com priya123 ₹1,50,000

Admin access: Run make seed locally to generate admin credentials (see .secrets/credentials.txt).

All data is synthetic. No real money.

Architecture

services/
├── identity/       # Auth, users, KYC
├── ledger/         # Double-entry accounting
├── wallet/         # Balance management
├── transaction/    # Transfers, payments
├── rbac/           # Roles & permissions
├── risk/           # Fraud detection
├── notification/   # Alerts, messaging
├── simulation/     # Test data generation
└── seed/           # Database seeding

gateway/            # API Gateway with SSE
frontend/
├── user-app/       # Customer React app
└── admin-app/      # Admin dashboard

Quick Start

Prerequisites
  • Go 1.24+
  • Docker & Docker Compose
  • Node.js 18+
Setup
git clone https://github.com/1mb-dev/nivomoney.git
cd nivomoney
cp .env.example .env

# Start all services (postgres, redis, microservices, gateway)
make dev

# Seed database with demo data
make seed

# Start frontend (separate terminal)
cd frontend/user-app && npm install && npm run dev

Open http://localhost:5173 and login with demo credentials.

Tech Stack

Component Technology
Services Go 1.24, standard library net/http
Database PostgreSQL 15
Cache Redis
Auth JWT, bcrypt
Frontend React 19, TypeScript, Vite, TailwindCSS 4
Infrastructure Docker Compose
Monitoring Prometheus, Grafana

Key Patterns

  • Double-entry ledger - Every transaction creates balanced debit/credit entries
  • Idempotency keys - Safe retry handling for financial operations
  • RBAC - Granular permissions with role hierarchies
  • Circuit breakers - Fault isolation between services
  • Event-driven - Async processing with durable queues

Documentation

Full documentation: docs.nivomoney.com

Project Scope

Category Count
Microservices 9
API Endpoints 77+
Frontend Pages 17
Database Migrations 23

This is a portfolio demonstration, not a production bank. It shows how a neobank would be built.

Contributing

See CONTRIBUTING.md for development setup and guidelines.

License

MIT - see LICENSE

Directories

Path Synopsis
gateway
cmd/server command
services
rbac/cmd/server command
risk/cmd/server command
seed/cmd/server command
shared
cache
Package cache provides a cache interface and implementations for caching data.
Package cache provides a cache interface and implementations for caching data.
config
Package config provides centralized configuration management for Nivo services.
Package config provides centralized configuration management for Nivo services.
crypto
Package crypto provides cryptographic utilities for the application.
Package crypto provides cryptographic utilities for the application.
database
Package database provides PostgreSQL connection management and utilities for Nivo services.
Package database provides PostgreSQL connection management and utilities for Nivo services.
errors
Package errors provides custom error types and error handling utilities for Nivo services.
Package errors provides custom error types and error handling utilities for Nivo services.
events
Package events provides a simple Server-Sent Events (SSE) broker for real-time event streaming.
Package events provides a simple Server-Sent Events (SSE) broker for real-time event streaming.
handler
Package handler provides common utilities for HTTP handlers.
Package handler provides common utilities for HTTP handlers.
jwt
logger
Package logger provides structured logging for Nivo services using zerolog.
Package logger provides structured logging for Nivo services using zerolog.
middleware
Package middleware provides common HTTP middleware for Nivo services.
Package middleware provides common HTTP middleware for Nivo services.
models
Package models provides common domain types for Nivo services.
Package models provides common domain types for Nivo services.
pagination
Package pagination provides utilities for handling pagination in HTTP requests.
Package pagination provides utilities for handling pagination in HTTP requests.
response
Package response provides standardized HTTP response formats for Nivo APIs.
Package response provides standardized HTTP response formats for Nivo APIs.
server
Package server provides common bootstrapping for all Nivo services.
Package server provides common bootstrapping for all Nivo services.
validator
Package validator provides input validation for Nivo using gopantic.
Package validator provides input validation for Nivo using gopantic.
tests
helpers
Package helpers provides test utilities for HTTP handler testing.
Package helpers provides test utilities for HTTP handler testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL