Skip to content

A monorepo for studying hexagonal architectures and effect systems in Scala 3

Notifications You must be signed in to change notification settings

ygunayer/scala3-tagless-final-hexagonal-monorepo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

Just a fun project where I explore effect systems (in this case, cats-effect), tagless final and hexagonal architecture in Scala 3 in order to stay up-to-date on the latest development practices in Scala.

I'm not using Scala in professional capacity at the moment, so please don't expect this repo to be a perfect representation of the current conventions.

Also, this repo only gets updated every now and then, so some features might be incomplete or outright broken.

Running

The project includes a Docker compose stack to run infrastructural components. Make sure that this stack is up and running before launching the project.

$ docker-compose up -d

Once the Docker compose stack is up, you can either run individual projects from your favorite IDE, or from the command line using sbt commands.

If you'd like to see what's stored in the database you can connect to it at postgres://localhost:5432/postgres with the username postgres and password postgres.

API Requests

As of right now there's a single API endpoint that is operational and that's the account registration endpoint.

To test it out, run the following request:

POST http://localhost:9000/api/v1/auth/register

Request Body:

{
  "firstName": "Foo",
  "lastName": "Bar",
  "organizationName": "Foo Bar Inc.",
  "gsmNumber": "905551111111",
  "email": "foo@bar.com",
  "password": "123",
  "passwordRepeat": "123"
}

Once you've sent out the request you should receive an HTTP 200 response with an empty JSON body (e.g. {}), and you should be able to see the newly inserted row in the account table.

License

MIT

About

A monorepo for studying hexagonal architectures and effect systems in Scala 3

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published