Learning Golang Language In Clean Structure

At this example project, I’m trying to learn Golang with Clean structure and come up with a reusable, nice and scalable structure for any other project of mine and everyone else and ofcourse reusable codes and packages. Just right after this example project passes all the tests and scenarios and all items of this list down here are marked as done, i create a repository and make a free open-source template out of it for usage of me and everyone else.

If you do love to contribute, please do, I appreciate it.

And ofcourse don’t forget to read CONTRIBUTING file to know about how to contribute in this project.


In this project, we are going to have signup, signin, order some books and rate some else but the purpose of doing this is to make a template out of it. (as i mentioned above)

Global Goals (pkg):

  • Add GRPC Package
  • Add Http And Https Package
  • Add Socket Package
  • Add Translator Package
  • Add Logger Package
  • Add Errors Package

Project Goals (internal):

  • Add Config Package
  • Add Services To Project
  • Add Multi Database Package To Database
  • Add Query Handler(Database) Feature To Database
  • Add Middleware Support To Project
  • Add A Way(A Tool Maybe) To Handle Cors Policy
  • Add Param Package To Handle Passed Params In Url

If you have more ideas to add in items of this list, please do inform me about them.