gola

simple web app cli framework for go lang

Usage no npm install needed!

<script type="module">
  import gola from 'https://cdn.skypack.dev/gola';
</script>

README

Gola CLI

Simple web app CLI for Go lang

The Gola CLI is based on the Fiber, Mongo, Validator and Godotenv library.

It uses the Fiber web framework to manage the web app

and the Mongo package to handle the MongoDB query and connection

and the Validator to handle the validation of dtos

and Godotenv for the configuration.

It's very opinionated on how the code should be structured.

Prerequisite

Node.js v12+

Installation

npm install gola -g

Usage

To create a new project

gola init [project_name]

To add new resource in existing project

gola resource [resource_name]

To run a project

gola run

To build a project

gola build

Code Structure

myapp (folder) - App folder
│
│
└───.env (file) - Environment config file
│
│
└───main.go (file) - Entry file
│
│ 
└───global (folder) - Package for global util functions
│   │
│   │__ global.go (file) 
│    
│
└───server (folder) - Package for core web server files
│   │
│   │__ server.go (file)
│
│
└───[resource_name] (folder) - Resource package. e.g. (user, project, content)
│   │
│   │__ controller.go (file) - All routing for resource goes here
│   │
│   │__ service.go (file) - Business logic to handle all route goes here 
│   │
│   │__ dto.go (file) - Dto validation object goes here
│
│
└───bin (folder) - Executable file would be placed here after build command
│   │
│   │__ myapp (file) - Executable
│  
│
└───go.mod (file) - Go module registry like package.json for node.js
│  
│
│
└───go.sum (file)  - Go module registry like package-lock.json for node.js


Example Usage

$ gola init myapp
$ cd myapp
$ gola resource user
$ gola run

After gola run command, follow this link

http://localhost:3000/users

All Commands

Command Usage Description
Init gola init myapp Initialize new project
Resource gola resource user Creates new resource in existing app, it creates new route with its own controller, service and dto files
Run gola run Runs the project
Test gola test Run all tests
Build gola build Builds the project and place created executable in bin directory
Open gola open vscode Opens the project in vscode IDE