Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wesleybertipaglia/spring-bank
Spring Bank is a RESTful web service that provides banking services. It is built using Spring Boot, Spring Data JPA, PostgreSQL, and Docker.
https://github.com/wesleybertipaglia/spring-bank
docker java postgresql project spring
Last synced: about 4 hours ago
JSON representation
Spring Bank is a RESTful web service that provides banking services. It is built using Spring Boot, Spring Data JPA, PostgreSQL, and Docker.
- Host: GitHub
- URL: https://github.com/wesleybertipaglia/spring-bank
- Owner: wesleybertipaglia
- Created: 2024-06-28T16:41:08.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-07-21T15:21:12.000Z (4 months ago)
- Last Synced: 2024-07-21T16:42:21.080Z (4 months ago)
- Topics: docker, java, postgresql, project, spring
- Language: Java
- Homepage:
- Size: 117 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spring Bank
Spring Bank is a RESTful web service that provides banking services. It is built using Spring Boot, Spring Data JPA, PostgreSQL, and Docker.
## Table of Contents
- [Getting Started](#getting-started)
- [Features](#features)
- [ERD Diagram](#erd-diagram)
- [Contributing](#contributing)
- [License](#license)## Getting Started
### Running with Docker
The easiest way to run the application is with Docker.
```bash
docker-compose up -d
```### Running with Maven
Alternatively, you can run the application with Maven.
#### Prerequisites
- Java 22 or later (it's compatible with Java 17, but you may need to update the `sourceCompatibility` and `targetCompatibility` in the `build.gradle` file)
- Maven 3.8.1 or later```bash
mvn spring-boot:run
```> The application will be available at [http://localhost:8080](http://localhost:8080).
> The Adminer will be available at [http://localhost:8081](http://localhost:8081).
## Features
- Create a new account
- Get account details
- Deposit money
- Withdraw money
- Transfer money between accounts## ERD Diagram
The following Entity-Relationship Diagram (ERD) shows the relationships between the entities in the application:
```mermaid
classDiagram
class User {
uuid id
string name
string username
roles role
string password
datetime created_at
datetime updated_at
}class Agency {
uuid id
uuid bank_id
int number
string address
datetime created_at
datetime updated_at
}
class Account {
uuid id
uuid user_id
uuid agency_id
int number
float balance
datetime created_at
datetime updated_at
}
class Bank {
uuid id
string name
string code
datetime created_at
datetime updated_at
}class Transaction {
uuid id
uuid account_id
float value
transaction_type type
string description
datetime created_at
datetime updated_at
}User "1" -- "n" Account : owns
Agency "1" -- "n" Account : has
Bank "1" -- "n" Agency : has
User "1" -- "n" Transaction : makes
```## Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your changes.
## License
This project is licensed under the MIT License - see the [LICENSE](./LICENSE) file for details.