Generate a Full Stack Web project with Go, React, and MongoDB in seconds.
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 React
components, provides a Dockerfile for the application and creates
docker-compose files for convenient run in development and production
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
The generated project is ready to run with
cd my-app docker-compose up
After the build is completed, the application is accessible
You can find more details on how to work with the generated
project in its readme file.
Structure of a generated project
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
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. The only two dependencies are
mongo-go-driver on the
back end side and axios on the front
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.
Goxygen’s logo was created by Egon Elbre.