Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sentenza/cats-http4s-crypto
:moneybag: A sample microservice written in Scala using Cats, HTTP4S, Doobie that implements an application to compute Crypto/Fiat currency conversion rates
https://github.com/sentenza/cats-http4s-crypto
cats-effect circe doobie fs2-grpc hacktoberfest http4s pureconfig scala
Last synced: 2 days ago
JSON representation
:moneybag: A sample microservice written in Scala using Cats, HTTP4S, Doobie that implements an application to compute Crypto/Fiat currency conversion rates
- Host: GitHub
- URL: https://github.com/sentenza/cats-http4s-crypto
- Owner: sentenza
- License: mit
- Created: 2021-09-27T17:29:59.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-12-21T17:03:50.000Z (11 months ago)
- Last Synced: 2023-12-22T19:12:50.319Z (11 months ago)
- Topics: cats-effect, circe, doobie, fs2-grpc, hacktoberfest, http4s, pureconfig, scala
- Language: Scala
- Homepage:
- Size: 242 KB
- Stars: 4
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Cats HTTP4S Crypto
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/sentenza/cats-http4s-crypto/scala-ci.yml)
[![Scala Steward badge](https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII=)](https://scala-steward.org)A sample microservice written in Scala using Cats, HTTP4S, Doobie that implements an application to compute Crypto/Fiat
currency conversion rates.This project is based upon the work that has been done in:
* [Scala Pet Store](https://github.com/pauljamescleary/scala-pet-store)
* [todo-http4s-doobie](https://github.com/jaspervz/todo-http4s-doobie/tree/master/src/main/scala)## Project stack
This project is meant to be implemented using the [TypeLevel stack](https://typelevel.org/) as much as possible.
* [Cats](https://typelevel.org/cats/) for FP type classes
* [Http4s](http://http4s.org/) to provide a minimal, idiomatic Scala interface for HTTP services
* [Circe](https://circe.github.io/circe/) for JSON serialization
* [Doobie](https://github.com/tpolecat/doobie) to persist data using relational databases like Postgres
* [Pure Config](https://github.com/pureconfig/pureconfig) to handle app configuration
* [FS2 gRPC]()
* Tagless Final wherever possible## How to run the project
Please read the
[CoinMarketCap API documentation](https://coinmarketcap.com/api/documentation/v1/#section/Quick-Start-Guide)
to understand how to consume their API. You can either define in application.conf your CoinMarketCap API KEY or set it
as an environment variable. For Linux systems you can simply export it:```bash
export CMC_API_KEY=""
```or you can even pass it to the binary (JAR) as a TypeLevel config (Java) parameter as `-Dcmc.apikey=""`
## Design principles
See [DOCS](/DOCS.md)
## Code of conduct
See the [Code of Conduct](/CODE_OF_CONDUCT.md)
## License
This project is released under the MIT license. See [LICENSE](/LICENSE).