A self-hostable URL shortener in Crystal (draft)
 
 
 
Go to file
glenux 3fcb5f9c06 Update 'README.md' 2022-08-15 19:54:41 +00:00
config Add files 2020-05-17 12:54:08 +02:00
db/migrations Add files 2020-05-17 12:54:08 +02:00
doc Add logo & update doc 2020-05-17 16:03:12 +02:00
docker Add files 2020-05-17 12:54:08 +02:00
script Add files 2020-05-17 12:54:08 +02:00
spec Add files 2020-05-17 12:54:08 +02:00
src Add files 2020-05-17 12:54:08 +02:00
tasks Add files 2020-05-17 12:54:08 +02:00
.crystal-version Add files 2020-05-17 12:54:08 +02:00
.editorconfig Add files 2020-05-17 12:54:08 +02:00
.gitignore Add files 2020-05-17 12:54:08 +02:00
.tool-versions Add files 2020-05-17 12:54:08 +02:00
.travis.yml Add files 2020-05-17 12:54:08 +02:00
Procfile Add files 2020-05-17 12:54:08 +02:00
Procfile.dev Add files 2020-05-17 12:54:08 +02:00
README.md Update 'README.md' 2022-08-15 19:54:41 +00:00
TODO.md Update README with roadmap 2020-05-17 17:57:50 +02:00
docker-compose.yml Disable app in docker-compose 2020-05-17 13:24:05 +02:00
shard.lock Add files 2020-05-17 12:54:08 +02:00
shard.yml Add files 2020-05-17 12:54:08 +02:00
tasks.cr Add files 2020-05-17 12:54:08 +02:00

README.md

Vitreous

GitHub license Donate on patreon

Vitreous is a self-hostable URL shortener written in Crystal.

For now, It is a toy project to improve author's skills with the language and its various libraries. It is very early stage and is not supposed to work (yet). Please don't use it in production. ⚠️

Roadmap

  • ➡️ Setup base server
    • ➡️ Run HTTP service
    • ➡️ Authenticate user
  • ➡️ Support persistent storage system
    • ➡️ use postgresql backend
    • use redis backend
  • Managing URLs
    • Create short URL
    • Read short URL
    • Delete short URL
    • List short URLs
    • Update short URLs
  • Support redirection
    • handle created short url and redirect to original url
  • Support global configuration
    • URL scheme setup (letters, numbers, etc.)
  • Add support for tracking
    • track links click
    • links per day (all time, last 30 days, last 14 days, last 7 days, last 24h, last hour)
    • links per weekday
    • links per hour
  • Add support for custom urls
    • request a custom url (ok / not-ok)
    • request a custom name (text is sanitized and the nearest available url is given)
  • Add frontend
    • Support user authentication + JWT
    • Support short URLs management actions (as user)
    • Support short URLs customization actions (as user)
    • Support system configuration (as admin)
    • Copy short url to clipboard
    • Generate QR code for URL

Documentation

Authors & contributors

Sponsors

Vitreous is an independent project whose development and maintenance is made possible thanks to the support of its patrons.

If you wish to join them and support the work of its author, just participate with this link:

>>> Become a patron or sponsor on Patreon <<<

License

Vitreous is Copyright © 2020 Glenn ROLLAND. It is free software, and may be redistributed under the terms specified in the LICENSE.txt file.

Alternatives and inspirations