sk

command module
v0.0.0-...-b1ede48 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2020 License: Apache-2.0 Imports: 16 Imported by: 0

README

Private Mentored Community Management Tool

GoDoc License Go Report Card Coverage

The sk command (and optional .bashrc function) make the life of a private mentored learning community manager easier but only for those who prefer a command-line interface.

The utility specifically focuses on the following needs:

  • Navigate into the YAML member, session, and other data directories quickly.
  • Quickly add invoice and session data during a text-edit session (vim-centric).
  • Print terminal views of member and session data for quick reference.
  • Automated email progress reporting to parents, sponsors, and members.

The command comes with built in tab completion using Complete Commander.

Ongoing Project

This particular tool is one that will be continually ongoing but is in production use now at SKILSTAK.

Admittedly the biggest thing missing right now is full documentation including specific examples of the YAML files used in the database.

Design Decisions

Most of the design decisions are based on the fundamental premise that this utility should be fast and easy to fork and customize for those who wish. Subcommands can be easily added or removed simply by adding and removing the <subcommand>.go file thanks to the use of Complete Commander.

  • Just YAML. No mentored community should ever grow bigger than 60 members and even that is pushing it. (Remember, the community mentor/leader must have mentoring sessions with each member about once a week and still do most of the work to manage the business and content of the community. 25 (5 hours a day) is a much healthier number. Based on this expectation there simply is no need for a complicated database system, just simple YAML files that are extremely easy for humans to read and write without errors. Loading every separate file for the community into memory --- even after several years of attendance records --- takes a few milliseconds. This also allows ultimate flexibility in what information is maintained for any specific community.

  • Go language. Go is simply the best language for this kind of utility for multiple reasons including YAML and JSON marshalling, ridiculously easy date and time function, built-in cryptography, cross compilation, simply concurrency, full Unicode support, strict typing, and fast development, compile, and execution time. Indeed this was the reason it was created originally at Google. There is simply no better language on the planet for such things at the moment, which is no surprise given that it was created by those involved in creating C, UNIX, UNICODE, and many of the modern Java fixes.

  • No separate library. Just no need. The model is simple and documented elsewhere. The view and controller are fused.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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