Demo Walkthrough
Experience Nivo’s features with pre-configured demo accounts.
The live demo has been archived. All URLs below refer to your local environment. See Quick Start to get the platform running locally.
Table of Contents
- Demo Accounts
- Guided Walkthrough
- Verify Portal
- Admin Dashboard
- Technical Features Demonstrated
- API Exploration
- Running Locally
- Troubleshooting
Demo Accounts
All demo accounts have verified KYC and active wallets ready to use:
| Persona | Password | Balance | Description | |
|---|---|---|---|---|
| Recommended | raj.kumar@gmail.com | raj123 | ₹50,000 | Regular user - best for exploring |
| Business Owner | priya.electronics@business.com | priya123 | ₹1,50,000 | Higher balance, business profile |
| Freelancer | arjun.design@freelance.com | arjun123 | ₹75,000 | Freelance designer profile |
| Student | neha.singh@student.com | neha123 | ₹25,000 | Lower balance account |
| Corporate | vikram.m@corporate.com | vikram123 | ₹2,00,000 | Highest balance account |
All data is synthetic. These are development-only credentials with dummy PII. No real money is involved.
Guided Walkthrough
Step 1: Login
- Go to localhost:5173
- Click Login or Get Started
- Enter credentials:
raj.kumar@gmail.com/raj123 - You’ll land on the dashboard
What to notice:
- JWT authentication (check Network tab for token)
- Role-based permissions embedded in token
Step 2: Explore the Dashboard
After login, the dashboard shows:
- Current Balance: ₹50,000.00 (from pre-seeded data)
- Recent Transactions: Initial balance deposit from seed
- Quick Actions: Send Money, Add Funds, View History
What to notice:
- Balance fetched from Wallet Service
- Real-time updates via SSE (Server-Sent Events)
Step 3: Send Money
Try a peer-to-peer transfer:
- Click Send Money
- Enter recipient:
priya.electronics@business.com - Enter amount:
1000(₹1,000) - Add a note: “Test transfer”
- Confirm the transfer
What to notice:
- Beneficiary lookup before transfer
- Idempotency key generated for safe retries
- Double-entry ledger creates balanced entries:
Debit: Raj's Wallet ₹1,000 Credit: Priya's Wallet ₹1,000
Step 4: View Transaction History
- Click Transactions in the navigation
- See the transfer you just made
- Click on a transaction for details
What to notice:
- Transaction status progression:
pending→completed - Reference numbers for each transaction
- Audit trail with timestamps
Step 5: Check Profile & KYC
- Click Profile or the user menu
- View your KYC status (pre-verified)
- See account details
What to notice:
- KYC fields: PAN, Aadhaar (masked), DOB, Address
- Account status:
active - India-specific validation (PAN format, Aadhaar masking)
Step 6: Try Another Account
Logout and login as a different persona to see varied balances:
- Click Logout
- Login as
priya.electronics@business.com/priya123 - Check the dashboard - you’ll see ₹1,51,000 (original + received transfer)
Verify Portal
The Verify Portal is for trusted verifiers (family members, guardians) who help paired users approve transactions:
- Go to localhost:5174 (verify portal)
- Login as
priya.electronics@business.com/priya123 - Explore:
- Pending verifications dashboard
- OTP codes for transaction approval
- Verification history
How it works:
- A paired user initiates a transaction requiring verification
- The OTP code appears in the Verify Portal
- Share the code with the paired user to complete the transaction
- Codes expire after 5 minutes
This accessibility feature allows shared account management for users who need assistance.
Admin Dashboard
For admin features, login to the admin app:
- Go to localhost:5175 (admin dashboard)
- Login with generated admin credentials (see below)
- Explore:
- User management
- KYC verification queue
- Transaction monitoring
- System health
Admin credentials are generated at seed time for security reasons. Run
make seedlocally to generate credentials, then check.secrets/credentials.txtfor the admin password. The admin email isadmin@nivo.local.
Technical Features Demonstrated
| Feature | Where to See It |
|---|---|
| JWT Authentication | Login flow, network requests |
| RBAC Permissions | Admin vs User capabilities |
| Double-Entry Ledger | Transaction details |
| Idempotency | Send money (retry safe) |
| Real-time Updates | Dashboard balance after transfer |
| KYC Workflow | Profile page status |
| Beneficiary Management | Send money flow |
API Exploration
Want to explore the APIs directly? Use the demo credentials with:
# Login and get JWT token (local)
curl -X POST http://localhost:8000/api/v1/identity/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "raj.kumar@gmail.com", "password": "raj123"}'
# Use the token for authenticated requests
curl http://localhost:8000/api/v1/wallet/wallets \
-H "Authorization: Bearer <your-token>"
Running Locally
To run the full stack locally for development:
# Start infrastructure
docker-compose up -d
# Seed the database
go run services/seed/cmd/server/main.go
# Start services
make run-all
# Start frontend
cd frontend/user-app && npm run dev
See Quick Start for detailed setup instructions.
Troubleshooting
“Invalid credentials”
Make sure you’re using the exact email and password from the table above.
Balance not updating
Wait a moment for SSE event propagation, or refresh the page.
Transfer fails
Check that:
- Recipient email exists (use another demo account)
- Amount doesn’t exceed your balance
- Amount is positive
Session expired
JWT tokens expire after 24 hours. Login again to get a fresh token.