No Description

Frederic G. MARAND def93ac2ae Moved from Github to code.osinet.fr 6 years ago
command a142e6531a Added a CLI command hierarchy using spf13/cobra. Storage WIP. 9 years ago
data d42e1996ff WIP on eventinfo, with generic setUp()/tearDown() methods for DB. 9 years ago
doc def93ac2ae Moved from Github to code.osinet.fr 6 years ago
storage a142e6531a Added a CLI command hierarchy using spf13/cobra. Storage WIP. 9 years ago
strategy def93ac2ae Moved from Github to code.osinet.fr 6 years ago
url def93ac2ae Moved from Github to code.osinet.fr 6 years ago
web 6484db1121 Some structural and commenting cleanup. 9 years ago
.gitignore d42e1996ff WIP on eventinfo, with generic setUp()/tearDown() methods for DB. 9 years ago
LICENSE.txt 5ba5ac0c61 First commit: README, GPLv3 license, .gitignore. 9 years ago
Makefile d42e1996ff WIP on eventinfo, with generic setUp()/tearDown() methods for DB. 9 years ago
README.md ecf5044df5 Working alias generation, inserts into DB, some integration tests. 9 years ago
default.kurz.js a142e6531a Added a CLI command hierarchy using spf13/cobra. Storage WIP. 9 years ago
kurz.go def93ac2ae Moved from Github to code.osinet.fr 6 years ago

README.md

 #    #  #    #  #####   ######
 #   #   #    #  #    #      #
 ####    #    #  #    #     #
 #  #    #    #  #####     #
 #   #   #    #  #   #    #
 #    #   ####   #    #  ######

Kurz is yet another URL shortener/aliaser.

  • built as a Go data model API, for internal site use as well as public use
  • web front end separate from data logic
  • multiple aliasing strategies. provided:
    • identity
    • 32-bits hexa string, leading 0s omitted
    • manual selection
    • easy to extend, by registering additional AliasStrategy objects
  • supporting
    • vanity domains
    • relative paths (API only, no Web UI), for use within web sites
    • "slug"-type multipart aliasing for SEO
  • usage statistics
  • some tests available

It is currently available under the General Public License version 3 or later.

Using Kurz

The main Kurz command show how to initialize the package and access statistics.

You can find usage examples in strategy_test.go:

  • TestBaseAlias() shows how to generate aliases
  • TestUseCounts() show how to query strategy statistics

Running tests

Currently, only the strategy package has tests, and these need some setup, as they touch the database:

  • either redefine the credentials in strategy_test.go#initTestStorage()
  • or create a database with privileges appropriate for them
  • or send a PR submitting a better DB initialization mechanism for tests