Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/georgysavva/generic-wallet
Generic wallet service
https://github.com/georgysavva/generic-wallet
Last synced: 19 days ago
JSON representation
Generic wallet service
- Host: GitHub
- URL: https://github.com/georgysavva/generic-wallet
- Owner: georgysavva
- Created: 2019-04-05T16:19:34.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-07-11T14:28:27.000Z (over 4 years ago)
- Last Synced: 2024-11-30T23:42:16.516Z (22 days ago)
- Language: Go
- Homepage:
- Size: 245 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Project description
This is a generic wallet service. It's designed to be used as a core service in a hypothetical fintech startup. Wallet provides following features:
- Send payment from one account to another.
- See all payments.
- See all accounts.
# Implementation details
- It's a domain driven microservice written in golang with [go-kit](https://github.com/go-kit/kit) library.
- Service functional available as a RESTful API. See [API docs](https://documenter.getpostman.com/view/865221/S1ETRGPW).
- Authentication not supported for simplicity sake.
- Service can be easily auto-scaled, since it's stateless.
- Postgres is used as persistence layer.
- Core business logic covered with tests.
- It uses [dep](https://github.com/golang/dep) as dependency management tool.
# Install and run
1. Download the repo: `git clone https://github.com/gazoon/generic-wallet.git`
2. Create config.json file in the project root, use config_exemple.json file as an example
3. Prepare postgres database and run `postgres/db_schema.sql` script to create db schema and add initial accounts
4. (Optional) Run test `go test ./...`
5. Run the server `go run main.go`