How geovanesv/carteira-financeira works
Carteira Financeira is a NestJS REST API for user accounts, JWT authentication, wallets, balances, and financial transactions. The main workflow starts with user registration, then login, and authenticated wallet operations or transaction creation, history, and reversal. Controllers delegate to use cases; repositories and TypeORM entities provide persistence. The README documents wallet updates and transaction capabilities, while transaction implementation details are only partly evidenced by the excerpts and index, so uncertain internal calls are omitted.
Main entry points: app.module.ts NestJS app · wallets.controller.ts Wallet endpoints · transactions.controller.ts Transaction endpoints · use-cases Wallet operations
Components 21
API entry
- NestJS app
src/app.module.ts
Identity
- User registration
src/modules/users/adapters/controllers/users.controller.ts - Create user
src/modules/users/application/use-cases/create-user.use-case.ts - Login endpoint
src/modules/auth/adapters/controllers/auth.controller.ts - Login
src/modules/auth/application/use-cases/login.use-case.ts - Validate user
src/modules/auth/application/use-cases/validate-user.use-case.ts - JWT strategy
src/modules/auth/infrastructure/strategies/jwt.strategy.ts
Wallets
- Wallet endpoints
src/modules/wallets/adapters/controllers/wallets.controller.ts - Wallet operations
src/modules/wallets/application/use-cases - Wallet rules
src/modules/wallets/domain/services/wallet.domain.service.ts
Transactions
- Transaction endpoints
src/modules/transactions/adapters/controllers/transactions.controller.ts - Transaction use cases
src/modules/transactions/application/use-cases - Transaction rules
src/modules/transactions/domain/services/transaction.domain.service.ts
Persistence
- User repository
src/modules/users/infrastructure/data/repositories/user.repository.ts - User record
src/modules/users/entities/user.entity.ts - Wallet repository
src/modules/wallets/infrastructure/data/repositories/wallet.repository.ts - Wallet record
src/modules/wallets/entities/wallet.entity.ts - Transaction repository
src/modules/transactions/infrastructure/data/repositories/transaction.repository.ts - Transaction record
src/modules/transactions/entities/transaction.entity.ts - TypeORM database
src/db/data-source.ts
Other components
- API client
Connections 23
- API client → User registration: registers
src/modules/users/adapters/controllers/users.controller.ts - User registration → Create user: executes
src/modules/users/adapters/controllers/users.controller.ts - Create user → User repository: uses
src/modules/users/application/use-cases/create-user.use-case.ts - API client → Login endpoint: logs in
src/modules/auth/adapters/controllers/auth.controller.ts - Login endpoint → Login: executes
src/modules/auth/adapters/controllers/auth.controller.ts - Login → Validate user: validates
src/modules/auth/application/use-cases/login.use-case.ts - Validate user → User record: finds user
src/modules/auth/application/use-cases/validate-user.use-case.ts - API client → Wallet endpoints: requests
src/modules/wallets/adapters/controllers/wallets.controller.ts - Wallet endpoints → Wallet operations: executes
src/modules/wallets/adapters/controllers/wallets.controller.ts - Wallet endpoints → JWT strategy: guards access
src/modules/wallets/adapters/controllers/wallets.controller.ts - Wallet operations → Wallet rules: applies rules
- Wallet operations → Wallet repository: uses
src/modules/wallets/application/use-cases/update-wallet.use-case.ts - Wallet repository → Wallet record: persists
src/modules/wallets/infrastructure/data/repositories/wallet.repository.ts - API client → Transaction endpoints: requests
src/modules/transactions/adapters/controllers/transactions.controller.ts - Transaction endpoints → Transaction use cases: executes
src/modules/transactions/adapters/controllers/transactions.controller.ts - Transaction endpoints → JWT strategy: guards access
src/modules/transactions/adapters/controllers/transactions.controller.ts - Transaction use cases → Transaction repository: uses
src/modules/transactions/application/use-cases/create-transaction.use-case.ts - Transaction use cases → Wallet repository: uses
src/modules/transactions/application/use-cases/create-transaction.use-case.ts - Transaction repository → Transaction record: persists
src/modules/transactions/infrastructure/data/repositories/transaction.repository.ts - NestJS app → TypeORM database: configures
src/app.module.ts - NestJS app → User registration: registers module
src/app.module.ts - NestJS app → Wallet endpoints: registers module
src/app.module.ts - NestJS app → Transaction endpoints: registers module
src/app.module.ts