PayWallet PayWallet is a java command-line financial application where users are provided with core digital banking capabilities like secure account registration, authenticated logins, funds deposits, withdrawals and user-to-user transfer transactions.
PayWallet utilizes 3 layer architecture: the outer presentation layer, the service layer and the data access layer. The presentation is a command-line interface written in Java that handles user inputs and menus, the service layer also written in Java handles the business logic that enforces banking rules, transaction validation and account security. The data access layer utilizes JDBC to interact with PostgreSQL database. The application is compiled using Maven and deployed using Docker.
Prerequisites to run PayWallet: 1. Java Development Kit (JDK) 11 2. Docker & Docker Compose 3. Apache Maven 4. Make utility
Steps to run the application using Docker Compose Up: 1. Go to the project's root directory and run "make up" 2. After step 1 is done run "make attach" and press Enter
Steps to run the application locally: 1. PostgreSQL Server installed natively on your machine (running on port 5432) 2. Configure your login credentials in "src/main/resources/application.properties" 3. Run this command in the project's root directory "mvn clean package" 4. Run this command "java -jar target/PayWallet-1.0-SNAPSHOT.jar"
How to run all the tests: 1. Run this command in the project's root directory "make test"
Data is maintained and stored in PostgreSQL.