A modern virtual wallet platform for managing finances across multiple currencies.
📱 Android Client - Kotlin · Jetpack Compose · MVVM
⚙️ Backend API - Spring Boot · REST · MySQL
📄 Docs & Assets - Figma · Screenshots · Design
| Layer | Technology |
|---|---|
| Mobile UI | Kotlin, Jetpack Compose |
| Architecture | MVVM, Repository Pattern |
| Networking | Retrofit, OkHttp |
| Backend | Java, Spring Boot |
| Security | Spring Security, JWT (HTTP Cookie) |
| ORM | Hibernate, Spring Data JPA |
| Database | MySQL |
| External API | ExchangeRate API, RestClient |
| UI Design | Figma |
| API Testing | Postman |
| Feature | Description |
|---|---|
| 👛 Multi-wallet management | Create and manage multiple wallets, each tied to a specific currency; set a default wallet used automatically in operations |
| 💳 Payment cards | Add, activate, deactivate, and remove cards; use them to top up wallet balances |
| 🔄 Transfers | Send funds to other users via QR code scanning; transfer funds between your own wallets |
| 📲 Payments | NFC-simulated payment flow with a POS terminal interface (Pay Mode) |
| 💱 Currency conversion | Automatic real-time conversion using live exchange rates |
| 📊 Transaction history | Full history with filtering by wallet, card, type, direction, date range and sorting options |
| 🔐 Role-based access | User and admin roles with controlled access to sensitive operations |
| 🌐 Bilingual UI | English and Bulgarian language support |
1. Complete all steps from Backend (service-api)
2. Complete all steps from Client (android)
Wallty follows a client-server architecture. The Android app communicates with a Spring Boot REST API over HTTP, which handles all business logic, security, and data persistence. An external exchange rate API is integrated on the backend side to support multi-currency operations.
✉️ todorkrushkov.1304@gmail.com
Developed as a course project @ Technical University of Sofia
Faculty of Computer Systems and Technologies — Computer & Software Engineering