Phoenix Inside Out (series of books/booklets) (self-published)

I am happy to announce that I am completing final rounds of my Phoenix book (which is now a series of books/booklets).


###Mastering Phoenix Framework

####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

  1. Mix
  2. Distillery Release
  3. Distillery Release with Docker

Total number of pages: 376 (in PDF format)
Available Format: PDF, EPUB, MOBI

See posts in this thread for details on the others :slight_smile:


Learn more at: Phoenix Inside Out Book by Shankar Dhanasekaran

27 Likes

It is nice to see more books coming out.

Would you be able to tell us what differentiates your book from the official Phoenix book?

4 Likes

Sounds like a good book. What version of Phoenix does it cover?

Thanks. The book covers Phoenix 1.3.

I am one of the early adopters of both Elixir and Phoenix and have read the book “Programming Phoenix” from the creators. It’s a good book and I love it. It demonstrates how to use Phoenix in your project by building an application from start to end.

When I started writing “Phoenix Inside Out”, it was also a challenge for me to NOT repeat the same stuff that the creators have well written. Fortunately, there is a plenty of stuffs yet to be covered for someone picking up Phoenix and I try to address them in my book. I consider the following points to be some of the differences in approach in my book and both books will complement each other.

  1. Part I. (Introduce) Readers might come to Phoenix without knowing Elixir. So teach them just enough basic to understand Phoenix code. Knowing the language fully well is indeed necessary for mastery but it’s very easy to get lost in learning Elixir.

  2. Part II. (Demystify) The book explains the internals of Phoenix by showing user how to create something like Phoenix. I believe the best way to learn how a framework works is to create it yourselves. And the best way to use it in your project is to learn how it works.

  3. Part III. (Empower) The book demonstrates building an commerce site using TDD. Hound is used for acceptance testing. This part also introduces Ecto and Contexts as in Phoenix 1.3. I also explain various deployment options that you can put to use in your project, which doesn’t have any mention in “Programming Phoenix”.

I consider all the three approaches above to be different from “Programming Phoenix” as it doesn’t cover them. (at least as of the latest published version). Please correct if I am wrong.

4 Likes

As an update to my Phoenix Inside Out book, I am happy to announce that a demo site is now available at http://mango.shankardevy.com

This is exactly the same commerce site that you will learn to build when you read my book Phoenix Inside Out apart from learning to build a mini-Phoenix framework and learning Practical Ecto.

Looking forward to your comments!

6 Likes

@MikeAnthony The book is currently in beta release with 6 chapters
published and another 6 chapters are planned for the next release on 18th
July. As far as reviews, I have got a few good ones by email but I leave it
to readers to comment on it on the forum, rather than me posting it on
their behalf.

Apart from explaining use of Phoenix from the practical point of view, the
bundle also comes with another book Garuda, where I explain the internals
of Phoenix by building a mini-clone of Phoenix from scratch.

1 Like

thanks will look into it and probably pick it up

I was one of your early purchasers and I’m waiting on the updates. Loving it so far, good use of real world example and contexts explained nicely.

2 Likes

A bit off-topic, @shankardevy are you resident of Auroville?

1 Like

@marciol yes I am a resident of Auroville? Have you been here? You can
email me at shankardevy @gmail.com to carry the conversation on email.

Excited to announce that I have launched the full release of Phoenix Inside Out series.

Currently it contains 3 books and 1 booklet. Read more here.

7 Likes

I’m getting confused - is this a book or a series of booklets?

Can you provide a breakdown of chapters and the number of pages please?

(I’ve moved it from the books category for now and changed the title to reflect it is a ‘series’)

Hi @AstonJ

Phoenix Inside Out is a series (I started out as a book, though).

It contains 3 books and one booklet as described below:

Mastering Phoenix Framework:

What you will learn?
Develop an ecommerce site in Phoenix using Test Driven Development (TDD)

Total number of pages: 376 (in PDF format)
Available Format: PDF, EPUB, MOBI

Garuda - Rebuild Phoenix

What you will learn
Basics of Cowboy and use many of the magics used in Phoenix framework to build your MVC framework in Elixir.

Total number of pages: 87 (in PDF format)
Available Format: PDF, EPUB, MOBI

Ecto Cookbook

What you will learn
Cookbook style Ecto recipes. Covers the internals of how Changesets, Schema and Repo works.

Total number of pages: 94 (in PDF format)
Available Format: PDF, EPUB, MOBI

Blueprint for Phoenix Context

What you will learn
This booklet contains FAQs on context, ideas, brainstorming notes and a few examples of context divisions.

Total number of pages: 20 (in PDF format)
Available Format: PDF, EPUB, MOBI

Let me know if you need more information. I don’t want to take more space than necessary so I just updated this thread. However, if you feel a dedicated page for each of the books, then I am happy to provide any additional information required.

Personally, I feel the book Garuda is interesting as it teaches the internals of Phoenix and how to recreate a simple MVC framework in Elixir.

3 Likes

Can you add a breakdown of chapters as well? I can then edit the info into the first post for you.

1 Like

@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

  1. See seasonal products
  2. Browse products by category
  3. Register for an account
  4. Login to my account
  5. Logout of my account
  6. Add products to cart
  7. View cart
  8. Update cart
  9. AJAX cart update
  10. Login during checkout if not already logged in
  11. Checkout products in cart
  12. See my order history (Exercise)
  13. Manage support tickets
  14. 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

  1. Mix
  2. Distillery Release
  3. Distillery Release with Docker

Covers complete deployment configurations such as Nginx, Systemctl, managing environment variables and creating custom Distillery commands to run database migrations.

4 Likes

Here are details of the book Garuda. It contains two parts:

In Part I,
I show how to create a MVC framework like Phoenix using cowboy as the only external dependency. During this process, the book explains various meta programming features of Elixir and how Phoenix uses them. Here are the list of things done in Part I.

Part 1. Rebuilding Phoenix
1.1. Getting started.
1.2. Understanding --sup flag
1.3. Introducing Cowboy
1.4. Hello world with Cowboy
1.5. Serving more pages
1.6. Serving static files
1.7. Genesis of MVC
1.8. Creating our Routing layer
1.9. Garuda - the firebird clone
1.10. Introducing Assembly.Conn
1.11. Adding Controllers
1.12. Extracting the common code
1.13. Creating a Router DSL
1.14. Creating View layer
1.15. Creating a template layer

In Part II,
I show how to add Phoenix as a dependency to a plain Elixir project created with Mix. As this exercise involves adding different configurations and dependencies to a plain Elixir project, the book draws a comparison to various components created from scratch in Part I and those that are added in Part II that are available as in-built components of Phoenix. By the end of the chapter, the user will understand the various parts of Phoenix project and be confident to customise them. Below is the list of things covered in Part II.

Part 2. Digging Deeper into Phoenix
2.1. Creating Phoenix project by hand
2.2. Configuring Web Server
2.3. Using Views
2.4. Using Templates
2.5. Life of Conn in Phoenix

2 Likes

I’m an early buyer of Shankar’s books. First of all, he made me understand what “context” is all about. Garuda was a real surprise and quite enlightening. Ecto, clarifies a lot of things. And Phoenix book has every little detail about developing an ecommerce site. I bought the “Coach Edition” and get excellent support from him. Highly recommended, 5 stars.

5 Likes

I own a copy of Programming Phoenix by Chris/Bruce/Jose and, like many, I am eagerly waiting for the updated edition that covers Phoenix 1.3. I bought Phoenix Inside Out “Complete Edition” after reviewing the book’s example project on Github and liked the clean, comprehensive coverage of the code.

So far I have skimmed through each of the books and my first impressions are that this is an excellent, detailed and professionally produced series. For a self published series of books, the quality is at least as good as the Pragprog e-books I own and the content reflects real world examples and experience. The Ecto Cookbook is a real gem and I have already learnt a couple of new things just by skipping around to topics of interest. The Context booklet, although relatively short, does an excellent job of demystifying the topic through analogies, diagrams and real world examples. Shankar gives some advice on how to manage “Context Slicing” and how to handle the challenges of cross Context relationships.

Highly recommended!
Stuart

3 Likes

I picked up the Complete Edition a little more than a week ago and have been trying do read a little bit every day. I have read 7 chapters of the first book so far (Mastering Phoenix Framework) and the learning process has been great.

Here are some highlights:

  • Great Elixir chapter. The decision to include a chapter on Elixir was one of the biggest selling points for me. I have read plenty recommendations to understand Elixir before Phoenix. But all of Elixir is a lot… Shankar did a great job of creating a condensed walkthrough of Elixir before diving into Phoenix. I’m super thankful for this.

  • Bite-sized progress. Adopting TDD (Test driven development) and XP (extreme programming) philosophies, each new topic is presented in a scope that is fun and digestable. Throughout the book, you gradually gather a listing of building blocks that help you construct a solid foundation in understanding Phoenix.

  • Rinse and repeat. From chapter 4 onwards, each chapter has a focused topic and goal. On a macro level however, most chapters guide you through the same cycle. From the acceptance test to the router to the template… and teaching topics like Context, Plug, and Ecto along the way. You really start to get a good grasp of the Phoenix architecture pretty fast.

and some constructive feedback:

I have noticed some typos here and there. The ones found inside code examples stumbled me a few times. There has also been discrepencies between the code examples in the book and the ones in the linked gists. It may help looking into using scripts to generate the code examples to help ensure their correctness.

Depite the typos, I would still highly recommend the books. I have actually already reported the typos that I have encountered to Shankar, who has been nothing but kind and appreciative in his replies.

I was actually hoping to work through the entire first book and write a full review on it. Due to time constraints however, I need to prioitize things a bit in the near future. Selfishly, I actually want to take what I have learnt so far and start using Phoenix to work on a hobby project. In the mean time I have taken a quick glance through the rest of the book and series and I definitely would want to use it as a developer reference in the future. I also need to cheat a bit and skip forward to read the chapter on Channel communications soon…

5 Likes