Goxygen

用 Go 和 Angular、React 或 Vue 在几秒钟内生成一个现代 Web 项目。「Generate a modern Web project with Go and Angular, React or Vue in seconds 🎲」

Github星跟蹤圖

Generate a Web project with Go and Angular, React or Vue.

Goxygen aims at saving your time while setting up a new project. It
creates a skeleton of an application with all configuration done for
you. You can start implementing your business logic straight away.
Goxygen generates back end Go code, connects it with front end
components, provides a Dockerfile for the application and creates
docker-compose files for convenient run in development and production
environments.

How to use

You need to have Go 1.11 or newer on your machine.

go get -u github.com/shpota/goxygen
go run github.com/shpota/goxygen init my-app

This generates a project in my-app folder.

By default, it will use React and MongoDB. You can select
a different front end framework and a database using
--frontend and --db flags. For instance, this command
will create a project with Vue and PostgreSQL:

go run github.com/shpota/goxygen init --frontend vue --db postgres my-app

The --frontend flag accepts angular, react and vue.
The --db flag accepts mongo, mysql and postgres.

The generated project is ready to run with docker-compose:

cd my-app
docker-compose up

After the build is completed, the application is accessible
on http://localhost:8080.

You can find more details on how to work with the generated
project in its README file.

Showcase

Structure of a generated project (React/MongoDB example)

my-app
├── server                   # Go project files
│   ├── db                   # MongoDB communications
│   ├── model                # domain objects
│   ├── web                  # REST APIs, web server
│   ├── server.go            # the starting point of the server
│   └── go.mod               # server dependencies
├── webapp                    
│   ├── public               # icons, static files, and index.html
│   ├── src                       
│   │   ├── App.js           # the main React component
│   │   ├── App.css          # App component-specific styles
│   │   ├── index.js         # the entry point of the application          
│   │   └── index.css        # global styles
│   ├── package.json         # front end dependencies
│   ├── .env.development     # holds API endpoint for dev environment
│   └── .env.production      # API endpoint for prod environment
├── Dockerfile               # builds back end and front end together
├── docker-compose.yml       # prod environment deployment descriptor
├── docker-compose-dev.yml   # runs local MongoDB for development needs
├── init-db.js               # creates a MongoDB collection with test data
├── .dockerignore            # specifies files ignored in Docker builds
├── .gitignore
└── README.md                # guide on how to use the generated repo

Files such as unit tests or sample components are not included here
for simplicity.

Dependencies

Goxygen generates a basic structure of a project and doesn't force you
to use a specific set of tools. That's why it doesn't bring unneeded
dependencies to your project. It uses only a database driver on the
back end side and axios in React
and Vue projects. Angular projects use only Angular specific libraries.

How to contribute

If you found a bug or have an idea on how to improve the project
open an issue
and we will fix it as soon as possible. You can also propose your
changes via a Pull Request. Fork the repository, make changes, send
us a pull request and we'll review it shortly. We also have a
Gitter chat where we discuss
all the changes.

Credits

Goxygen's logo was created by Egon Elbre.

主要指標

概覽
名稱與所有者Shpota/goxygen
主編程語言Go
編程語言Go (語言數: 7)
平台
許可證Apache License 2.0
所有者活动
創建於2020-02-02 17:11:39
推送於2024-12-18 21:02:02
最后一次提交
發布數24
最新版本名稱v0.7.2 (發布於 )
第一版名稱v0.1.0 (發布於 )
用户参与
星數3.6k
關注者數55
派生數225
提交數166
已啟用問題?
問題數40
打開的問題數15
拉請求數94
打開的拉請求數1
關閉的拉請求數15
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?