Project Structure
Root
.
├─ docs # documentations
├─ cmd # command-line tool
├─ app # app build with vue 3
├─ server # backend build with golang
├─ resources # additional resources, not for build
├─ template # templates for nginx
├─ app.example.ini # example configuration file
├─ main.go # entry point for server
└─ ...
Documentations
.
├─ docs
│ ├─ .vitepress # configurations directory
│ │ ├─ config
│ │ └─ theme
│ ├─ public # resources
│ ├─ [language code] # translations, e.g. zh_CN, zh_TW
│ ├─ guide
│ │ └─ *.md # guide markdown files
│ └─ index.md # index markdown
└─ ...
Frontend
.
├─ app
│ ├─ public # public resources
│ ├─ src # source code
│ │ ├─ api # api to backend
│ │ ├─ assets # public assets
│ │ ├─ components # vue components
│ │ ├─ language # translations, use vue3-gettext
│ │ ├─ layouts # vue layouts
│ │ ├─ lib # librarys, such as helper
│ │ ├─ pinia # state management
│ │ ├─ routes # vue routes
│ │ ├─ views # vue views
│ │ ├─ gettext.ts # define translations
│ │ ├─ style.less # global style, using less syntax
│ │ ├─ dark.less # dark style, using less syntax
│ │ └─ ...
│ └─ ...
└─ ...
Backend
.
├─ server
│ ├─ internal # internal packages
│ │ └─ ...
│ ├─ api # api to forntend
│ ├─ model # model for generate
│ ├─ query # generated request files by gen
│ ├─ router # routers and middleware
│ ├─ service # servie files
│ ├─ settings # settings interface
│ ├─ test # unit test
│ └─ ...
├─ main.go # entry point for server
└─ ...
Template
.
├─ template
│ ├─ block # template for Nginx block
│ ├─ conf # template for Nginx configuration
│ └─ template.go # embed template files to backend
└─ ...