https://github.com/Shpota/goxygen
Generate a modern Web project with Go and Angular, React, or Vue in seconds ๐ฒ
https://github.com/Shpota/goxygen
angular go golang javascipt mongodb mysql nodejs postgresql react typescript vue
Last synced: 8 months ago
JSON representation
Generate a modern Web project with Go and Angular, React, or Vue in seconds ๐ฒ
- Host: GitHub
- URL: https://github.com/Shpota/goxygen
- Owner: Shpota
- License: apache-2.0
- Created: 2020-02-02T17:11:39.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2024-12-18T21:02:02.000Z (11 months ago)
- Last Synced: 2025-03-05T04:07:04.905Z (9 months ago)
- Topics: angular, go, golang, javascipt, mongodb, mysql, nodejs, postgresql, react, typescript, vue
- Language: Go
- Homepage: https://goxygen.dev
- Size: 8.28 MB
- Stars: 3,560
- Watchers: 55
- Forks: 226
- Open Issues: 15
-
Metadata Files:
- Readme: docs/README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- go-awesome - goxygen - ๅบไบ Go, React, MongoDB ๆๆฏๅฎ็ฐ็ๅ จๆ ๅบ็จ็ๆๅจ (ๅผๆบ็ฑปๅบ / ไธๅกๆกๆถ)
- go-awesome - goxygen - A full stack application builder based on Go, React and MongoDB technologies (Open source library / Business Framework)
- awesome-angular - goxygen - This generates back-end Go code, connects it with front-end components, provides a Dockerfile for the application, and creates `docker-compose` files that run in development and production environments. (Development Utilities / Generators and Scaffolding)
- awesome-hacking-lists - Shpota/goxygen - Generate a modern Web project with Go and Angular, React, or Vue in seconds ๐ฒ (Go)
- awesome-tools - goxygen - Generate a modern Web project with Go and Angular, React or Vue in seconds. (Programming / Go)
- awesome-go - Shpota/goxygen
- awesome-golang-repositories - goxygen
- fucking-awesome-angular - goxygen - This generates back-end Go code, connects it with front-end components, provides a Dockerfile for the application, and creates `docker-compose` files that run in development and production environments. (Development Utilities / Generators and Scaffolding)
README
Goxygen

**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.
Supported Technologies
Front End
Angular
React
Vue
Back End
Go
Database
MongoDB
MySQL
PostgreSQL
## Requirements
You need to have Go 1.16 or newer on your machine.
## How to use
Run:
```go
go run github.com/shpota/goxygen@latest 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
go run github.com/shpota/goxygen@latest 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:
```sh
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.

## 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](https://github.com/axios/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](https://github.com/Shpota/goxygen/issues)
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](https://gitter.im/goxygen/community) where we discuss
all the changes.
## Credits
Goxygen's logo was created by [Egon Elbre](https://twitter.com/egonelbre).