Categorygithub.com/syahidfrd/go-boilerplate
module
3.0.0+incompatible
Repository: https://github.com/syahidfrd/go-boilerplate.git
Documentation: pkg.go.dev

# README

GO Boilerplate

Go Reference License: MIT Go Report Card

Directory Structure

├── cmd
│   └── api             // Main applications for this project
├── config              // Configuration app
├── delivery            // Delivery usefull to encode raw body, query params, make a response to client
│   ├── http
│   └── middleware
├── docs                // Design and user documents (in addition to your godoc generated documentation)
├── domain              // Domains is a struct to store any objects from database, example you have a products in your tables.
├── infrastructure
│   └── datastore       // Database configuration
├── migration           // Database migrations.
├── mocks               // Mock code, generated by mockery
├── repository          // Represents the behavior of the data store. It can be implemented using PostgreSQL, MongoDB, etc
│   ├── pgsql
│   └── redis
├── transport           // Request and response model
│   └── request
├── usecase             // Usecase contains all of business logic
└── utils               // Additional services
    ├── crypto
    ├── jwt
    └── logger

Prerequisite and full list what has been used

App requires 2 database (PostgreSQL and Redis server), run from your local machine or run it using docker with the following command

# run postgreSQL
docker run -d -p 5432:5432 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=go_boilerplate postgres

# run redis
docker run -d -p 6379:6379 redis

Migration

Run below command to run migration

migrate -path migration -database "${DATABASE_URL}" up

To create a new migration file

migrate create -ext sql -dir migration -seq name

Test

Run below command to run test, and make sure that all tests are passing

go test -v ./...

Running

Run below command to run app

go run ./cmd/api/main.go

Swagger URL

${BASE_URL}/swagger/index.html

You can find usefull commands in Makefile.

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
Package docs GENERATED BY SWAG; DO NOT EDIT This file was generated by swaggo/swag.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author