A production-ready digital wallet application built with .NET 8 microservices backend and Angular 21 frontend.
WalletApp/
├── AuthService → JWT auth, KYC management
├── WalletService → Wallet, transfers, history
├── AdminService → KYC approval, support tickets
├── RewardService → Points system, tier management
├── NotificationService → MongoDB Atlas, RabbitMQ consumer
├── Gateway → Ocelot API Gateway
└── wallet-app → Angular 21 frontend
- .NET 8 — ASP.NET Core Web API (Controllers)
- Entity Framework Core 8 — Database first approach
- SQL Server — 5 separate databases (one per service)
- MongoDB Atlas — Notifications storage
- RabbitMQ — Async messaging between microservices
- Ocelot — API Gateway & routing
- JWT Bearer — Authentication & authorization
- BCrypt — Password hashing
- Angular 21 — Standalone components architecture
- Angular Material — UI component library
- Dark Mode — System-wide theme toggle
- Responsive Design — Mobile friendly
- ✅ Register and login with JWT authentication
- ✅ KYC submission from frontend
- ✅ Wallet top-up with quick amount selection
- ✅ Wallet-to-wallet transfer by email
- ✅ Transaction history with income/expense summary
- ✅ Rewards points system (Bronze/Silver/Gold tiers)
- ✅ Real-time notifications via MongoDB
- ✅ Support ticket submission and tracking
- ✅ Dark mode toggle
- ✅ KYC review and approval/rejection
- ✅ KYC auto-synced via RabbitMQ
- ✅ User auto-activated on KYC approval
- ✅ Wallet auto-created on KYC approval
- ✅ Support ticket management and replies
- ✅ Microservices architecture
- ✅ Event-driven communication via RabbitMQ
- ✅ API Gateway with Ocelot
- ✅ Database-per-service pattern
- ✅ JWT token validation across services
| Service | Port | Database |
|---|---|---|
| Gateway | 5000 | — |
| AuthService | 7264 | WalletAuth (SQL Server) |
| WalletService | 5163 | WalletWallet (SQL Server) |
| AdminService | 5292 | WalletAdmin (SQL Server) |
| RewardService | 5219 | WalletReward (SQL Server) |
| NotificationService | 5125 | MongoDB Atlas |
| Angular Frontend | 4200 | — |
- .NET 8 SDK
- SQL Server / SQL Server Express
- RabbitMQ (with Erlang)
- MongoDB Atlas account (free tier)
- Node.js 22+
- Angular CLI 21
- Clone the repository:
git clone https://github.com/yourusername/WalletApp.git
cd WalletApp- Create databases in SQL Server:
CREATE DATABASE WalletAuth;
CREATE DATABASE WalletWallet;
CREATE DATABASE WalletPayment;
CREATE DATABASE WalletAdmin;
CREATE DATABASE WalletReward;-
Copy
appsettings.template.jsontoappsettings.jsonin each service and update:- SQL Server connection strings
- MongoDB Atlas connection string
- JWT secret key
-
Open
WalletApp.slnxin Visual Studio -
Set all 6 projects as startup projects and press F5
cd wallet-app
npm install
ng serveOpen browser at http://localhost:4200
Email: admin@walletapp.com
Password: Admin@123
User submits KYC
→ AuthService publishes to kyc_submissions queue
→ AdminService consumer syncs to admin database
→ Admin approves KYC
→ AdminService publishes to kyc_decisions queue
→ AuthService consumer activates user
→ WalletService consumer creates wallet
→ NotificationService saves notification to MongoDB
MIT License — see LICENSE file for details.
Shreyansh Jain — Built with ❤️ using .NET 8 and Angular 21