Code Map explains how the codes are structured. This document will list down all folders or packages and their purpose.
This folder is used to define the Github Actions.
This folder contains the main.go
. The usecase may be run and serve in multi forms, such as API, cron, or fullstack web.
To cater that case, app
folder can contains subfolders with each folder named accordingly to the form and contain only main package.
e.g: app/api/main.go
, app/cron/main.go
, and app/web/main.go
This folder contains all database migration files.
This folder contains documents for some topics.
This folder contains the domain of the application. Mostly, this folders contains only structs, constants, global variables, and enumerations.
All APIs in the internal folder (and all if its subfolders) are designed to not be able to be imported.
This folder contains all detail implementation specified in the usecase
folder.
This folder contains the builder design pattern. It composes all codes needed to build a full usecase.
This folder contains configuration for the application.
This folder and all of its subfolders are the place to put all codes related to REST HTTP.
This folder contains the HTTP handlers.
This folder contains the HTTP middlewares.
This folder contains the form of HTTP response.
This folder contains the HTTP routes.
This folder contains the Echo HTTP server.
This folder contains codes that connect to the database.
This folder contains all codes that can support code the system.
This folder contains test related stuffs.
This folder contains a well defined support for test.
This folder contains mock for testing.
This folder contains the main business logic of the application. All interfaces and the business logic flows are defined here. If someone wants to know the flow of the application, they better start to open this folder.