├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── README.md ├── mvnw ├── mvnw.cmd ├── pom.xml └── src ├── main ├── java │ └── com │ │ └── bitforge │ │ └── splitwise │ │ ├── SplitwiseApplication.java │ │ ├── commands │ │ ├── Command.java │ │ ├── CommandExecutor.java │ │ ├── SettleUpGroupCommand.java │ │ └── SettleUpUserCommand.java │ │ ├── controllers │ │ └── SettleUpController.java │ │ ├── dtos │ │ ├── SettleUpGroupRequestDTO.java │ │ ├── SettleUpGroupResponseDTO.java │ │ ├── SettleUpUserRequestDTO.java │ │ └── SettleUpUserResponseDTO.java │ │ ├── enums │ │ ├── ExpenseType.java │ │ ├── ExpenseUserType.java │ │ ├── ResponseStatus.java │ │ └── SettleUpStrategyType.java │ │ ├── exceptions │ │ ├── GroupNotFoundException.java │ │ ├── InvalidCommandException.java │ │ └── UserNotFoundException.java │ │ ├── factories │ │ └── SettleUpHeapStrategyFactory.java │ │ ├── models │ │ ├── BaseModel.java │ │ ├── Expense.java │ │ ├── ExpenseUser.java │ │ ├── Group.java │ │ └── User.java │ │ ├── repositories │ │ ├── ExpenseRepository.java │ │ ├── ExpenseUserRepository.java │ │ ├── GroupRepository.java │ │ └── UserRepository.java │ │ ├── services │ │ └── SettleUpService.java │ │ └── strategies │ │ ├── SettleUpHeapStrategy.java │ │ └── SettleUpStrategy.java └── resources │ └── application.properties └── test └── java └── com └── bitforge └── splitwise └── SplitwiseApplicationTests.java /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/.gitignore -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/.mvn/wrapper/maven-wrapper.properties -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/README.md -------------------------------------------------------------------------------- /mvnw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/mvnw -------------------------------------------------------------------------------- /mvnw.cmd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/mvnw.cmd -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/SplitwiseApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/SplitwiseApplication.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/commands/Command.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/commands/Command.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/commands/CommandExecutor.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/commands/CommandExecutor.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/commands/SettleUpGroupCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/commands/SettleUpGroupCommand.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/commands/SettleUpUserCommand.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/commands/SettleUpUserCommand.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/controllers/SettleUpController.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/controllers/SettleUpController.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/dtos/SettleUpGroupRequestDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/dtos/SettleUpGroupRequestDTO.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/dtos/SettleUpGroupResponseDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/dtos/SettleUpGroupResponseDTO.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/dtos/SettleUpUserRequestDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/dtos/SettleUpUserRequestDTO.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/dtos/SettleUpUserResponseDTO.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/dtos/SettleUpUserResponseDTO.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/enums/ExpenseType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/enums/ExpenseType.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/enums/ExpenseUserType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/enums/ExpenseUserType.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/enums/ResponseStatus.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/enums/ResponseStatus.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/enums/SettleUpStrategyType.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/enums/SettleUpStrategyType.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/exceptions/GroupNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/exceptions/GroupNotFoundException.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/exceptions/InvalidCommandException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/exceptions/InvalidCommandException.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/exceptions/UserNotFoundException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/exceptions/UserNotFoundException.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/factories/SettleUpHeapStrategyFactory.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/factories/SettleUpHeapStrategyFactory.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/models/BaseModel.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/models/BaseModel.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/models/Expense.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/models/Expense.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/models/ExpenseUser.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/models/ExpenseUser.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/models/Group.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/models/Group.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/models/User.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/models/User.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/repositories/ExpenseRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/repositories/ExpenseRepository.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/repositories/ExpenseUserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/repositories/ExpenseUserRepository.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/repositories/GroupRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/repositories/GroupRepository.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/repositories/UserRepository.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/repositories/UserRepository.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/services/SettleUpService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/services/SettleUpService.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/strategies/SettleUpHeapStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/strategies/SettleUpHeapStrategy.java -------------------------------------------------------------------------------- /src/main/java/com/bitforge/splitwise/strategies/SettleUpStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/java/com/bitforge/splitwise/strategies/SettleUpStrategy.java -------------------------------------------------------------------------------- /src/main/resources/application.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/main/resources/application.properties -------------------------------------------------------------------------------- /src/test/java/com/bitforge/splitwise/SplitwiseApplicationTests.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iTzTalha/splitwise/HEAD/src/test/java/com/bitforge/splitwise/SplitwiseApplicationTests.java --------------------------------------------------------------------------------