• Stars
    star
    249
  • Rank 162,987 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Modern Web Application with Golang

big-gopher

License MIT Build Status Go Report Card

Go-Web

Modern Web Application with Golang "Keep it simple, stupid"

Stack

Backend

Frontend

Getting Started

Project structure

Follows https://github.com/golang-standards/project-layout

Building From Source

This project requires Go +1.13 and Go module support.

To build the project run:

make

Bootstrap infrastructure and run application

This project requires docker and docker compose to run the required services.

  1. To run the services:
docker-compose up
  1. To create database
docker run --network="host" -it cockroachdb/cockroach:v19.2.1 sql --insecure -e "$(cat ./scripts/create.db.sql)"
  1. Build web application

  2. Start server

go run main.go
  1. Navigate to users list page

CI and Static Analysis

CI

All pull requests will run through CI, which is currently hosted by Github-CI. Community contributors should be able to see the outcome of this process by looking at the checks on their PR. Please fix any issues to ensure a prompt review from members of the team.

Static Analysis

This project uses the following static analysis tools. Failure during the running of any of these tools results in a failed build. Generally, code must be adjusted to satisfy these tools, though there are exceptions.

  • go vet checks for Go code that should be considered incorrect.
  • go fmt checks that Go code is correctly formatted.
  • golangci-lint checks for things like: unused code, code that can be simplified, code that is incorrect and code that will have performance issues.
  • go mod tidy ensures that the source code and go.mod agree.

Releasing

When a new tag is pushed, the version is released with goreleaser.

$ git tag -a v0.1.0 -m "First release"
$ git push origin v0.1.0 # => want to release v0.1.0

Tooling

Documentation

$ godoc github.com/starptech/go-web/pkg/controller
$ godoc -http=:6060

Visit localhost:6060 and search for go-web

Benchmarking

$ bombardier -c 10 -n 10000 http://localhost:8080/users

Cockroachdb Cluster overview

http://localhost:8111/

Deploy on Heroku

Heroku Deploy

Further reading

More Repositories

1

profiling-nodejs

🌌 Collection of articles and tools to efficiently profile Node.js
148
star
2

k-andy

Low cost Kubernetes stack for startups, prototypes, and playgrounds on Hetzner Cloud.
HCL
142
star
3

next-localization

Lightweight Internationalization (i18n) library for Next.js 10+
JavaScript
123
star
4

FastGraph

Smart GraphQL CDN on Cloudflare edges with zero configuration
TypeScript
108
star
5

graphql-registry

GraphQL registry - single source of truth for registering and tracking your graph.
TypeScript
86
star
6

apollo-datasource-http

Optimized JSON HTTP Data Source for Apollo Server
TypeScript
73
star
7

k8s-gitops

The GitOps workflow to manage Kubernetes applications at any scale (without server components).
40
star
8

branch-comparer

Checkout multiple git branches, execute scripts and log the results
JavaScript
26
star
9

graphql-parser-bench

GraphQL parser comparison in different languages
Go
23
star
10

gulp-prestashop

Gulp prestashop build system
JavaScript
14
star
11

fay

Stateless, Fast and Reliable PDF rendering service.
Go
13
star
12

prettyhtml-vscode

Visual Studio Code extension for Prettyhtml https://github.com/Prettyhtml/prettyhtml
TypeScript
10
star
13

bootme

Configurable and extendable Task pipeline. Define hooks and revert your changes on failure.
JavaScript
9
star
14

judge-framework

Judge-Framework for decision making in large teams - http://judge-framework.starptech.de/
JavaScript
9
star
15

sveltejs-brunch

Compile Svelte components inside Brunch projects
JavaScript
6
star
16

ghconfig

Manage Github Workflows and Dependabot files as a fleet.
Go
5
star
17

golang-examples

The Syntax of Go and especially inheritance, the type system and the object-oriented characteristics are very differently as in beginner languages like Java and PHP.
Go
5
star
18

dart-nodejs

Compare https://www.dartlang.org/ and Node.js for server-side development
Dart
4
star
19

shapeleak

Find subsequent changes in Objects which can result in unoptimized code
JavaScript
3
star
20

zkmicro

Zookeeper as Centralized configuration management & Group membership and name services for a microservice landscape
JavaScript
2
star
21

peerCam

WIP - Video Sharing over WebTorrent
JavaScript
2
star
22

parcel-plugin-razor

Parcel plugin to handle Razor templates as entry points
JavaScript
2
star
23

shikaka

Opinionated UI component library bundler
JavaScript
2
star
24

nextjs-rkoa-505

TypeScript
1
star
25

starptech.com

My personal website
TypeScript
1
star
26

ViRest

ViRest creates a simple virtual JSON-REST interface to test your frontend against a fault-resilient backend for development purpose.
JavaScript
1
star
27

GraphQL

Experimental Graph grammar to get the most of the line.
Java
1
star