What’s the plan ?
Build a phoenix web app which calculates the value of crypto holdings. Obviously I have made many a web app before, however this time I want to build it using the principles I picked it up from the book.
- Postpone Adding a Framework
- Postpone Adding Date Storage
- Learn elixir way of architecting applications
- Get comfortable with elixir syntax
- Learn how to use phoenix channels to build real time apps
- Learn concepts like genserver, agent, supervisor, applications etc.
Features of v0.1
- Show current value of crypto portfolio in USD only
- Have limited options for cryptocurrencies
- No database to be used in this version
Naive Solution Design
I plan to break the whole app into the following libraries/applications.
- ExCMC ( client library for the coin market api )
- Price ( application to fetch the price for a currency )
- CryptoCurrency ( library to store cryptocurrency data, might not be required )
- Portfolio ( contain all operations related to portfolio )
- Phoenix Web App which talks to the Portfolio library to fetch the data.
- Add D3 charts for showing historic data
- Add Genserver for Portfolio ( can identify portfolio as a saved url which can be retrieved later )