Skip to content

georgysavva/generic-wallet

Repository files navigation

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 library.
  • Service functional available as a RESTful API. See API docs.
  • 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 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

About

Generic wallet service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages