todo

module
v0.0.0-...-9518a5e Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2021 License: MIT

README

Todo

dev dependencies

The following tools are prerequisites for development work:

  • mage
    • If you don't have mage installed, and you do have go installed, you can run go run mage.go ensureMage to install it.
    • If you don't have go installed, I can't help you.
  • go 1.16+
  • node.js and pnpm
  • docker
  • docker-compose
  • wire for dependency management

You can run mage -l to see a list of available targets and their descriptions.

dev setup

It's a good idea to run mage quicktest lintegrationTests before commits. You won't catch every error, but you'll catch the simplest ones that waste CI (and consequently your) time.

running the server

  1. clone this repository
  2. run mage run
  3. http://localhost:8888/

working on the frontend

  1. run mage run
  2. in a different terminal, run mage frontendAutoBuild
  3. edit and have fun

Directories

Path Synopsis
cmd
server
Command server is the main compilable application that runs an instance of the service
Command server is the main compilable application that runs an instance of the service
tools/config_gen
Command config_gen generates configuration files in the local repository, configured via the precise mechanism that parses them to guard against invalid configuration
Command config_gen generates configuration files in the local repository, configured via the precise mechanism that parses them to guard against invalid configuration
internal
authentication
Package authentication provides functions and structures to facilitate salting and authenticating passwords, as well as validating TOTP tokens.
Package authentication provides functions and structures to facilitate salting and authenticating passwords, as well as validating TOTP tokens.
build/server
Package server contains builders generated by dependency injection tools.
Package server contains builders generated by dependency injection tools.
build/worker
Package worker contains builders generated by dependency injection tools.
Package worker contains builders generated by dependency injection tools.
config
Package config provides configuration structs for every service
Package config provides configuration structs for every service
database
Package database provides interface abstractions for interacting with relational data stores
Package database provides interface abstractions for interacting with relational data stores
database/queriers/mysql
Package mysql provides an interface for writing to a MySQL instance.
Package mysql provides an interface for writing to a MySQL instance.
database/queriers/postgres
Package postgres provides an interface for writing to a Postgres instance.
Package postgres provides an interface for writing to a Postgres instance.
encoding
Package encoding provides HTTP response encoding abstractions
Package encoding provides HTTP response encoding abstractions
encoding/mock
Package mock provides mockable implementations of every interface defined in the outer encoding package.
Package mock provides mockable implementations of every interface defined in the outer encoding package.
observability/metrics
Package metrics provides metrics collection functions and structs
Package metrics provides metrics collection functions and structs
observability/metrics/mock
Package mock provides mockable implementations of every interface defined in the outer metrics package.
Package mock provides mockable implementations of every interface defined in the outer metrics package.
observability/tracing
Package tracing provides common functions for attaching values to trace spans
Package tracing provides common functions for attaching values to trace spans
search
Package search defines an interface for a search index management structure
Package search defines an interface for a search index management structure
search/elasticsearch
Package elasticsearch provides an interface-compatible wrapper around the elasticsearch indexer
Package elasticsearch provides an interface-compatible wrapper around the elasticsearch indexer
search/mock
Package mocksearch provides an interface-compatible search index mock
Package mocksearch provides an interface-compatible search index mock
server
Package server provides an HTTP server comprised of multiple HTTP services
Package server provides an HTTP server comprised of multiple HTTP services
services/accounts
Package accounts provides a series of HTTP handlers for managing accounts in a compatible database.
Package accounts provides a series of HTTP handlers for managing accounts in a compatible database.
services/admin
Package admin implements server administrator functions
Package admin implements server administrator functions
services/apiclients
Package apiclients provides a series of HTTP handlers for managing service API clients.
Package apiclients provides a series of HTTP handlers for managing service API clients.
services/authentication
Package authentication implements a user passwords layer for a web server, issuing cookies, validating requests via middleware
Package authentication implements a user passwords layer for a web server, issuing cookies, validating requests via middleware
services/items
Package items provides a series of HTTP handlers for managing items in a compatible database.
Package items provides a series of HTTP handlers for managing items in a compatible database.
services/users
Package users provides a series of HTTP handlers for managing users, passwords, and two factor secrets in a compatible database.
Package users provides a series of HTTP handlers for managing users, passwords, and two factor secrets in a compatible database.
services/webhooks
Package webhooks provides a series of HTTP handlers for managing webhooks in a compatible database.
Package webhooks provides a series of HTTP handlers for managing webhooks in a compatible database.
uploads/images
Package images is largely (and respectfully) inspired by/copied from this repo: github.com/olahol/go-imageupload
Package images is largely (and respectfully) inspired by/copied from this repo: github.com/olahol/go-imageupload
pkg
client/httpclient
Package httpclient provides an HTTP client that can communicate with and interpret the responses of an instance of the service.
Package httpclient provides an HTTP client that can communicate with and interpret the responses of an instance of the service.
types
Package types provides the core data types for the service
Package types provides the core data types for the service
types/fakes
Package fakes provides fakes model builders
Package fakes provides fakes model builders
types/mock
Package mock provides mockable implementations of every interface defined in the outer types package
Package mock provides mockable implementations of every interface defined in the outer types package
tests
frontend
Package frontend is a series of selenium tests which validate certain aspects of our frontend, to guard against failed contributions to the frontend code.
Package frontend is a series of selenium tests which validate certain aspects of our frontend, to guard against failed contributions to the frontend code.
integration
Package integration is a series of tests which utilize our HTTP client to talk to a running HTTP server to validate behaviors, inputs, and outputs.
Package integration is a series of tests which utilize our HTTP client to talk to a running HTTP server to validate behaviors, inputs, and outputs.
utils
Package testutils contains common functions for integration/load tests
Package testutils contains common functions for integration/load tests

Jump to

Keyboard shortcuts

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