cyruzin / clean_architecture

Clean Architecture Simple App.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clean Architecture Simple App

Build Go Report Card GitHub license

This repo contains a simple command line tool and a rest server that checks the best price between two destinations.

Architecture

For the system architecture I have decided to use the Clean Architecture proposed by Robert C. Martin (Uncle Bob).

Pull requests are welcome.

Install

Make sure you have Git and Go installed in you machine.

Clone the repo:

 git clone git@github.com:cyruzin/clean_architecture.git

Install Go dependencies:

 go mod download

If you want to modify the default values, rename the .env.example file to .env and change the values if you want.

 mv .env.example .env

Running

Cli

Go to the cli folder:

 cd cmd/cli

Then, run the command below:

  go run main.go BBB AAA

Rest Server

Go to the routes folder:

 cd cmd/routes

Then, run the command below:

  go run main.go

Default Base URL: http://localhost:8000

End-points:

GET - /route

Params required: departure, destination

Eg: http://localhost:8000/route?departure=BBB&destination=AAA

POST - /route

Params required: departure, destination, price

Eg: http://localhost:8000/route

JSON Payload:

{
  "departure": "BBB",
  "destination": "AAA",
  "price": 76
}

Libs

  • go-chi
  • json-iterator
  • zerolog
  • envconfig

License

MIT

About

Clean Architecture Simple App.

License:MIT License


Languages

Language:Go 99.2%Language:Shell 0.8%