Hart Refactor Improvements * Testing * Reviews * Image processing * Re-mapping schemas when we can specify once and use the spec * Re-mapping the API contract * We are overusing products as a context for items that don't belong there * We are under-using products as a context for accessing products/lacking a clear interface for working with Products. We have a large API module, but could instead * CMS HartToolsWeb huge view templates etc * Paul's "refactor" What are we trying to tackle first? Testing, and then: * The biggest problem first * Products/API * Reorg contexts * Remove API module * Images * Context Remapping * API contract * many of the smallest problems first * Codesmells * Credo recommendations Proposed process: * Analyze * Design * Test * Refactor Notes what I found reading through elixirforum was that most developers seem to deal with Jason serialization in one of two places: in the Phoenix View layer a la https://hexdocs.pm/phoenix/views.html#rendering-json deriving the Jason.Encoder protocol