/bookshelf

Ebook collection

Primary LanguageElixir

Bookshelf

Bookshelf is a tiny web app made to manage your collection of readings. Since I usually read series of book is usually create one Book per serie. When creating your book you can also upload a file to it, for me it's the zip file containing all serie's ebooks.

Books data include:

  • a title
  • an author
  • a comment
  • a note
  • a file to store ebook file
  • a reading state (still reading or finished)
  • a completion state (still begin written or finished)

You can search by author or title in realtime with liveview.

Technical details

Bookshelf is written in Elixir using Phoenix. Your bookshelf is protect behind a simple HTTP authentication (USERNAME and PASSWORD environment variable are used, defaulting to user / password) To keep things simple uploaded file are simply written directly into the database.

Development

To start your Phoenix server:

  • Setup a .env.dev file containing databse configuration variables: DB_USERNAME, DB_PASSWORD, DB_HOST
  • Source your env file
  • Install dependencies with mix deps.get
  • Create and migrate your database with mix ecto.setup
  • Start Phoenix endpoint with mix phx.server or inside IEx with iex -S mix phx.server

Now you can visit localhost:4000 from your browser.