Returner is a sample Elixir/Phoenix project that shows the past year returns for a bundle of stocks.
- Clone the repo
- Sign up for an Alpha Vantage API key
- Create
config/test.secret.exs
andconfig/dev.secret.exs
using the API key and samples - Install dependencies with
mix deps.get
- Install Node.js dependencies with
cd assets && npm install
- Start Phoenix endpoint with
mix phx.server
Now you can visit localhost:4000
from your browser.
Returner
exposes a simple API --fetch_returns/0
.- On app startup,
Returner
fetches the returns for the past year and caches them
- On app startup,
ReturnerWeb
handles web requests
- By default the test suite doesn't run any tests that query the Alpha Vantage API
- To run external tests, do
mix test --include external
- The Alpha Vantage API's free plan is rate-limited to five requests per minute
- Update the returns cache with new returns every evening after market close.
- Cache the returns in an external database or memory store, so that they aren't lost when the app shuts down
- Create a deployment strategy