Skip to content

JustFiesta/simple-go-invoice

Repository files navigation

Simple GO invoice

A simple single-page application (SPA) demonstrating a basic full-stack setup using Go (Gin) for the backend and Vue 3 + Vite + Vuetify for the frontend.

The project serves as a lightweight example of a RESTful API communicating with a modern JavaScript frontend.

The data is preserved in SQLite database (default /app/data/invoices.db), it is not made to be persistant!

For further information check individual folders.

UI


Deployment Status

CI Pipeline Terraform Apply Security Scanning

Stack

  • Backend: Go + Gin (REST API)
  • Frontend: Vue 3 + Vite + Vuetify
  • Database: SQLite
  • Containerization: Docker + Docker Compose
  • IaC: Terraform, K8 + Kustomize
  • CI/CD: Github Acitons with composite Actions, ArgoCD on K8, Annual Security Scanning with Trivy

Features

  • Simple REST API
  • Vue SPA with Vuetify UI components
  • Sort/Search/Filter/Pagination
  • Communication between frontend and backend via HTTP
  • Docker + Compose setup for local development
  • Treafig reverse proxy for one URL to backend/frontend
  • Kubernetes Deployment
  • Full CI/CD

Running the Project

Clone the repository

git clone https://github.com/<your-username>/invoice-spa-go.git

cd invoice-spa-go

Copy .env.example

cp .env.example .env

Start/Stop with Docker Compose

docker compose up --build -d .

docker compose down -v # -v is optional as it will remove volumes

Manual build

docker build --build-arg GO_VERSION=$GO_VERSION -t invoice-backend ./backend
docker build --build-arg NODE_VERSION=$NODE_VERSION -t invoice-frontend ./frontend

Debug

docker compose watch

Browser access

Frontend: http://localhost:80
Backend API: http://localhost:8080/api/health

Notes

The project is meant for educational or demo purposes.

It is ment to showcase usage of DevOps principals in simple manner.


Tool docs reference

Tool Description Link
Gin (Go) HTTP microframework for Go https://gin-gonic.com/docs/
Vue 3 Frontend framework JS https://vuejs.org/guide/introduction.html
Vite Bundler and dev server https://vitejs.dev/guide/
Vuetify Ready UI components https://next.vuetifyjs.com/
Docker Compose Containers definition https://docs.docker.com/compose/

About

Full-stack Vue SPA + Go REST API app showcasing full deployment automation with CI/CD

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors