Skip to content

fanchann/go-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go-Starter

App Screenshot

What is Go-Starter?

This tool helps you to do the tedious work of setting configuration and creating layers for the REST API

go-starter command

 go-starter help

	┌─┐┌─┐   ┌─┐┌┬┐┌─┐┬─┐┌┬┐┌─┐┬─┐
	│ ┬│ │───└─┐ │ ├─┤├┬┘ │ ├┤ ├┬┘
	└─┘└─┘   └─┘ ┴ ┴ ┴┴└─ ┴ └─┘┴└─
	 
Usage: go-starter [OPTIONS]

Options:
  -f string
    	starter configuration file (default "starter.yaml")
  help
    	show help message

Examples:
  go-starter new      Generate configuration file
  go-starter          Run the application
  go-starter -f=configuration.yaml[default: starter.yaml] Specify a custom configuration file

generate starter configuration

go-starter new

	┌─┐┌─┐   ┌─┐┌┬┐┌─┐┬─┐┌┬┐┌─┐┬─┐
	│ ┬│ │───└─┐ │ ├─┤├┬┘ │ ├┤ ├┬┘
	└─┘└─┘   └─┘ ┴ ┴ ┴┴└─ ┴ └─┘┴└─
	 
2024/01/18 16:46:54 Success generate starter.yaml

starter.yaml is a go-starter configuration:

version: "1"
package: your-name-app
database: database

database support :

  • mysql
  • mongodb
  • postgres

generate structure project

 go-starter

	┌─┐┌─┐   ┌─┐┌┬┐┌─┐┬─┐┌┬┐┌─┐┬─┐
	│ ┬│ │───└─┐ │ ├─┤├┬┘ │ ├┤ ├┬┘
	└─┘└─┘   └─┘ ┴ ┴ ┴┴└─ ┴ └─┘┴└─
	 
layer 'cmd' created successfully.
layer 'api' created successfully.
layer 'db/migrations' created successfully.
layer 'internals/config' created successfully.
layer 'internals/delivery/http' created successfully.
layer 'internals/delivery/messaging' created successfully.
layer 'internals/gateway' created successfully.
layer 'internals/models' created successfully.
layer 'internals/repository' created successfully.
layer 'internals/usecase' created successfully.
layer 'internals/helpers' created successfully.
layer 'tests' created successfully.

Structure

Structure reference

├── api
├── cmd
│   └── main.go
├── config.dev.yaml
├── db
│   └── migrations
├── docker-compose.yaml
├── go.mod
├── internals
│   ├── config
│   │   ├── mysql.go ## filename following the database
│   │   └── viper.go
│   ├── delivery
│   │   ├── http
│   │   └── messaging
│   ├── gateway
│   ├── helpers
│   │   └── error.go
│   ├── models
│   ├── repository
│   └── usecase
├── starter.yaml
└── tests

About go-starter

This tool adopt
gorm
mongo client
viper

Database support:

Database Support
MySQL
PostgreSQL
MongoDB

Installation

go install github.com/fanchann/go-starter@latest

see older version here version

Running Your App

After generating the template, enter the folder that has been generated by go-starter, and then add dependencies using the following command.

go mod tidy

This command will download and install the required dependencies for your project
After success install dependencies, run app with command :

go run cmd/main.go

Authors