(work in progress)
Akkauth is a simple webservice for registering and authenticating accounts through Facebook login and email address/password combinations. It is not a production-grade application, it only serves as a showcase of various Scala programming techniques (for now...)
This project is subdivided into three modules:
akkauth-core
- This contains the business logic of Akkauth. It has no dependencies other than Cats and Simulacrum. The code in this module aims to be as purely functional as possible. It exposes several tagless final algebras that define the "primitive" operations performed by the business logic.akkauth-impl
- This contains the implementations (a.k.a. algebra interpreters) of the algebras mentioned above, most of them using Akka.akkauth-webservice
- This is the webservice that ties the business logic inakkauth-core
and the interpreters inakkauth-impl
together. It uses MacWire to wire up all the components needed to run the webservice. The webservice endpoints setup and serving is done through finch.