{"repo":"wittiden/WalletManager","free":true,"listed":false,"github":"https://github.com/wittiden/WalletManager","clone":"git clone https://github.com/wittiden/WalletManager.git","description":"Backend service for managing users, wallets, balances, and transactions built with Clean Architecture / DDD-lite principles. The project features a strict separation of domain, application, and infrastructure layers, with extensible factories, mappers, and use-case driven design.","language":"Python","stars":37,"topics":["backend","clean-architecture","ddd-architecture","domain-driven-design","fintech","patterns","python","sqlalchemy","transactions","wallet-managment"],"license":null,"category":"trading","readme_excerpt":"🪙 WalletManager WalletManager is a backend service for managing users, wallets, balances, and transactions. The project is built using Clean Architecture / DDD-lite principles with a clear separation of domain logic, infrastructure, and application use cases. --- 🚀 Key Features 👤 User management (registration, login, blocking) 👛 Wallet management (creation, blocking, closing) 💰 Balance management: regular (single currency) multi-currency (multiple assets per wallet) 💳 Transaction management: deposit withdrawal exchange 🏭 Factory + Registry pattern for all domain entities 🔄 Mapper layer (domain ↔ database) 🧠 Domain invariants (DomainInvariant) 🪝 Event signaling via blinker 🗄 SQLAlchemy + PostgreSQL integration 📦 Facade layer for use cases --- 🧠 Project Architecture The project is structured according to Clean Architecture principles . --- 📌 Domain Layer Pure business logic. Does not depend on database, frameworks, or infrastructure. 👤 Users UserBase , Client , Admin domain invariants (email, name, password) user status handling 👛 Wallets DebitWallet , CreditWallet ownership relation blocking / closing logic 💰 Balances RegularBalance — single currency ForeignBalance — multiple currencies stored internally as dict[currency - amount] 💳 Transactions DepositTransaction WithdrawTransaction ExchangeTransaction 📌 Domain layer contains: no ORM no SQL only business rules and invariants --- 📌 Infrastructure Layer Handles persistence and external dependencies. 🗄 Datab","default_branch":null,"files":null,"tree":[],"storefront":"/r/wittiden","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/wittiden/WalletManager/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}