@AstonJ, here are the details of the book Mastering Phoenix Framework
Mastering Phoenix Framework
The book covers 24 user stories related to developing an Ecommerce site as use cases to teach Phoenix Framework.
As a customer, I want to
- See seasonal products
- Browse products by category
- Register for an account
- Login to my account
- Logout of my account
- Add products to cart
- View cart
- Update cart
- AJAX cart update
- Login during checkout if not already logged in
- Checkout products in cart
- See my order history (Exercise)
- Manage support tickets
- Browse the website in either English, French or German
As an admin, I want to
15. Manage users with admin rights
16. See a different layout for the admin dashboard
17. Use magic link to login .i.e., passwordless login
18. See orders (Exercise)
19. See customers (Exercise)
20. Manage warehouse items
21. Manage suppliers
Use channel-powered Mango Robot to
22. Get notified on chat when a customer orders on the web
23. Get order status by chat messages
24. Create POS orders through chat window.
Chapter 1 - Getting Started
Get introduced to Phoenix and learn Phoenix conventions, use of View modules, control flow for a simple page.
Chapter 2 - Just Enough Elixir
Learn minimal Elixir that’s just enough to work with Phoenix. Covers general expectations on Elixir language, Data types, Operators, Control structures, Modules and functions, OTP basics, Pattern matching
Chapter 3 - Kickstarting Mango
Setting up TDD and introduction to Hound
Chapter 4 - Product Catalog
Learn to create dynamic pages, introduction to Ecto and import seed data from CSV file.
Chapter 5 - Register, Login, Logout
Learn Ecto migrations, Ecto.Changeset, router pipeline, Phoenix HTML form helpers, writing module plugs and testing plugs.
Chapter 6 - Cart
Learn new concepts Ecto Embedded schema and associations and revisit all of the knowledge gained in Chapter 5 to create a full fledged cart with AJAX functionality.
Chapter 7 - Checkout
Learn to refactor routes for authenticated and unauthenticates routes, Ecto migrations for modifying existing schema and table, use of multiple changesets for a single schema.
Chapter 8 - My Profile and Preference
Learn Phoenix CRUD generator mix task phx.gen.html and why not to use them for most cases. Learn how to use Gettext for translating interface language.
Chapter 9 - Admin I
Learn how Phoenix.Token and how to generate and validate tokens. Create a passwordless login using Phoenix Token and learn to create and use function plugs.
Chapter 10 - Admin II
Explore how to customize the phx.gen.html generator templates and an introduction to multiple sources of truth with Phoenix Context.
Chapter 11 - Mango Robot
Learn basics of Channel communication and the various components involved in creating Phoenix channels. Learn to authenticate channels using Phoenix Token and use socket to persist data across multiple messages to the server.
Chapter 12 - Deployment
Learn to deploy in Ubuntu server using
- Mix
- Distillery Release
- Distillery Release with Docker
Covers complete deployment configurations such as Nginx, Systemctl, managing environment variables and creating custom Distillery commands to run database migrations.



















