Athena is a Phoenix + Redux + React app for tracking and measuring books and online resource you consume which also serves as personal profile.
It's an MVP still to be validated
🤙 Usage (live demo)
Paste links you just read, give a summary and rate how much you have retained by memory (supports autocomplete).
Add books you are reading along with impressions (supports autocomplete for amazon book urls).
Database runs through docker
, BE through elixir
and FE through npm dev-server
- elixir
- npm
- docker & docker-compose
$ mix deps.get
$ mix ecto.create && mix ecto.migrate
$ mix phx.server
Install elixir & npm on the server you want to build your app (CI / local / production).
Add the following env vars in the production server:
export POSTGRES_PASSWORD=db_password
export ADMIN_PASSWORD=web_password
export PORT=80
Edit .deliver/config
, for the simplest case it might look like this:
APP="yourapp"
BUILD_HOST="your.ip"
BUILD_USER="root"
BUILD_AT="/root/web/app_build"
PRODUCTION_HOSTS="your.ip"
PRODUCTION_USER="root"
DELIVER_TO="/root/web/app_release"
Spin up the database in the production server with docker-compose up -d
(scp
the docker-compose file before).
Deploy through edeliver
:
mix edeliver deploy
Some other useful commands:
mix edeliver ping production # shows which nodes are up and running
mix edeliver version production # shows the release version running on the nodes
mix edeliver show migrations on production # shows pending database migrations
mix edeliver migrate production # run database migrations
mix edeliver restart production # or start or stop
Pull requests are welcome.
Please make sure to update tests as appropriate.
- Refactor
- Add meta tags for SEO
- Add GIF to README on how the app works
- Use env vars in
.deliver/config
- Add graph of last month performance (articles read, retention score, books read)
- Allow to choose the preview image after autocomplete for urls
- Make addition more user-friendly
- Add timing to measure how long reading an article takes
- Count words of articles automagically
- Embed mind maps for personal improvement
- Make generic for non-devs (easy setup & deploy)