Diving into Elixir & Phoenix by building an app

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

Objectives

  • 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.

Future improvements

  • Add D3 charts for showing historic data
  • Add Genserver for Portfolio ( can identify portfolio as a saved url which can be retrieved later )

Learning material

Show Comments