hophacker / go-pangu

Go web starter kit that every startup needs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Golang-pangu

中文文档

Go-pangu is a Go boilerplate which follows cutting-edge solutions already adopted by the industry, JWT(JSON Web Tokens), Postgres, Redis, Docker, Gin, Ginkgo, Gorm. It is a solid production-ready starting point for your new backend projects.

Features

Golang-pangu is based on following tools

name description
Go an open source programming language that makes it easy to build simple, reliable, and efficient software.
Gin web struct based on Go, flexible middleware,strong data binding and outstanding performance.
Gorm The fantastic ORM library for Golang aims to be developer friendly.
Ginkgo Ginkgo builds on Go's testing package, allowing expressive Behavior-Driven Development ("BDD") style tests.
JWT JSON Web Tokens. An open, industry standard RFC 7519 method for representing claims securely between two parties.
Postgres The world's most advanced open source relational database
Redis An open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker.
Docker Docker is a tool designed to make it easier to create, deploy, and run applications by using containers.

Struct

.
├── application.yml  
├── args
│   ├── args.go
│   └── cmd.go
├── conf  
│   ├── conf_debug.go
│   ├── conf.go
│   └── conf_release.go
├── controller
│   ├── application.go
│   ├── auth.go
│   ├── error.go
│   └── session.go
├── db  
│   └── db.go
├── Dockerfile
├── go.mod
├── go.sum
├── jwt  
│   └── jwt.go
├── main.go
├── Makefile  
├── middleware  
│   └── middleware.go
├── models  
│   ├── base_model.go
│   └── user.go
├── params  
│   └── params.go
├── README.md
├── redis
│   └── redis.go
├── routers  
│   └── router.go
├── test
│   ├── sign_in_test.go
│   └── test_suite_test.go
└── util
    └── util.go
file function
application.yml config file
args functions which can fetch params from request url
conf functions which can get configurations
controller handlers
db database operations like migrating database
jwt fuctions to create and check jwt
main.go main function.Call function with "--db" parameter, "create" to create database, "migrate" to migrate tables, "dorp" to delete database
middleware middleware
models base models and basic database operations
params struct used in data binding
redis redis connection and operations
router router
test test

Start

  1. install postgres, redis
  2. config application.yml
  3. go run main.go
  4. open http://localhost:3002/ping in web browser, and then you will get a "pong" response

Api examples

  • sign_up

    Post http://localhost:3002/users/sign_up

    params: email, password, password_confirm

    Register user

  • sign_in

    Post http://localhost:3002/users/sign_in

    params: email, password

    You will get a header with authorization parameter from response after logging in successfully

  • auth_ping

    Get http://localhost:3002/auth_ping

    Should add a valid user token to request this api

  • change_password

    Post http://localhost:3002/users/change_password

    params: origin_password, password, password_confirm

    Modify user's password, which needs authorization

other public library

Rails-pangu is a Rails 6(API Only) boilerplate which follows cutting-edge solutions already adopted by the industry, notablly, Devise, JWT(JSON Web Tokens), Postgres, Redis, Docker, Rspec, RuboCop, CircleCI. It is a solid production-ready starting point for your new backend projects.

Projects using Go-pangu

product description
eSheep Network booster which helps global users access better entertainment content from China.
cs-server agent server(Comming soon!)
soda-server Comming soon!

License

Code and documentation copyright 2020 the Golang-pangu Authors and ruilisi Network Code released under the MIT License.

hophacker

Contributors

Thanks goes to these wonderful people (emoji key):

hophacker
hophacker

💻 📖 🚇
caibiwsq
caibiwsq

💻 📖
Ganggou
Ganggou

💻 📖
ExcitingFrog
ExcitingFrog

💻 📖
Leo7991
Leo7991

💻 📖
Daxigua443
Daxigua443

💻 📖
Soryu23
Soryu23

💻 📖

This project follows the all-contributors specification. Contributions of any kind welcome!

About

Go web starter kit that every startup needs

License:MIT License


Languages

Language:Go 95.6%Language:Makefile 3.9%Language:Dockerfile 0.5%