Skip to content

elixirdrops/toolbox

 
 

Repository files navigation

The BEAM Toolbox

http://toolbox.elixir.pm

A site to list Hex packages by category.

Inspired by http://ruby-toolbox.com. Name borrowed from Josh Adams of Elixir Sips with his blessing.

Status

WIP: Categorizing works but isn't super smooth; not pretty; not many fancy features. See TODOs.

Contributions welcome.

Development

You are expected to have Elixir, Phoenix (including Node.js and npm) and Postgres installed.

If the default database user and password does not work for you, you can customize it by setting the POSTGRES_USER and/or POSTGRES_PASSWORD environment variables.

Then:

mix deps.get
mix ecto.setup
npm install

Populate the database from the Hex API:

mix run -e "Toolbox.PackageSync.run"

And start the web server:

mix phoenix.server

Now visit http://localhost:4000.

Want to wipe the DB and start over?

mix ecto.reset

Test

mix test

Production

Deployed to Dokku. This deploys and then runs migrations, if any:

script/deploy

Get a production console:

ssh dokku run toolbox "iex -S mix"

How it was set up

TODO:

Pre-MVP

  • List package names
  • Load packages into DB via some endpoint

MVP

  • Category CRU(D)
  • Assigning (flat: "Phoenix / Auth") categories to packages
  • Show grouped by category
  • Update packages on a schedule

Pre-launch

  • List package descriptions
  • Exception logging
  • Verify all packages are synced (e.g. count them)
  • ToC
  • Page titles
  • Rename? "Beambox"?
  • Prettify
    • Make categorize an icon
  • Improve UX
  • Honeypot for categories to avoid spam?

Nice-to-have

  • More integrated tests. Hound?
  • Show "last synced at"
  • Show stats from Hex
  • Show stats from GitHub
  • Sass
  • Slim
  • Favicon
  • CI
  • Handle renamed/removed packages

Inspired by

Possible future inspirations

License and credits

By Henrik Nyh 2015-11-08 under the MIT license.

About

A site to list Hex packages by category.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 78.4%
  • HTML 8.4%
  • JavaScript 7.1%
  • CSS 5.9%
  • Shell 0.2%