app

package module
v0.0.0-...-608b5f9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

README

platform-app - An example platform application tree

This is an example titpetric/platform application tree.

It is built with:

It implements full applications to deploy via docker. The code here has been used to provide:

The example is a modular system with a structural linter to use as a guide.

Each module is expected to have it's own test suite with atkins.

Structural linter

There is a structural linter you can run in the project:

go run ./internal/cmd/structurelint

It will print the following output, giving a rudimentary maturity score.

folder README.md docs compose.yml docker cmd/* config model schema storage service service/* view *
blog [x] [x] [ ] [ ] blog, generate [ ] [x] [x] [x] [ ] [x] data, handlers, markdown, theme
cms [ ] [ ] [ ] [ ] [ ] [ ] [x] [ ] [ ] [ ] templates, testdata
daily [ ] [x] [ ] [ ] [ ] [x] [x] [x] [ ] [x] templates
email [x] [x] [ ] [ ] [ ] [x] [x] [x] [ ] [ ] smtp
expvar [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
internal [ ] [ ] [ ] [ ] structurelint [ ] [ ] [ ] [ ] [ ] [ ]
maillist [x] [x] [ ] [ ] [ ] [x] [x] [x] [ ] [ ]
pulse [x] [ ] [x] [x] pulse [x] [x] [x] [x] [x] keycounter [x] client
user [ ] [x] [ ] [ ] generate [ ] [x] [x] [x] [x] api, auth, passkey, web [x] opa

Modules

A module is created in the root folder.

For modules, the conventions followed are some subset of:

  • storage - provide database access APIs, repository
  • schema - database migration, single/multi DB
  • docs - any documentation, schema docs, technical
  • model - generated app data model
  • view - a view package for MVC components
  • templates - a templates package for Vuego templates
  • service - the module implementation, app
  • data - usually some source of local input
  • cmd - modules provide their cmd's
  • main.go in root of the module or expanded service/ (package encouraged)

Folder structure

This document serves as a structural guide for the repository:

  • ./docker - docker build environments for apps
  • ./docs - some generated docs, this structure guide

No other root packages except the modules are expected.

Experimental:

  • ./themes - experimental code for themes via go packages
  • ./cms - experimental code for a cms, non functional

The deprecated and experimental options are meant to be removed over time. No packages here are intended for use outside of the platform-app repository, and the tendency is to only keep the module packages in the root of the repo.

Docs

Documentation

Overview

This file is here to satisfy `go list .`

Directories

Path Synopsis
cmd/blog command
cmd/blog/server
Package server implements the blog HTTP server command.
Package server implements the blog HTTP server command.
cmd/generate command
internal
Package pulse provides keystroke activity tracking and reporting.
Package pulse provides keystroke activity tracking and reporting.
client
Package client provides an HTTP client for the pulse server API.
Package client provides an HTTP client for the pulse server API.
cmd/pulse command
cmd/pulse/login
Package login implements the pulse login command.
Package login implements the pulse login command.
cmd/pulse/record
Package record implements the pulse keystroke recording command.
Package record implements the pulse keystroke recording command.
cmd/pulse/register
Package register implements the pulse user registration command.
Package register implements the pulse user registration command.
cmd/pulse/server
Package server implements the pulse HTTP server command.
Package server implements the pulse HTTP server command.
service
Package service implements the pulse HTTP service module.
Package service implements the pulse HTTP service module.
storage
Package storage provides database persistence for pulse data.
Package storage provides database persistence for pulse data.
cmd/generate command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL