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

@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

I’m going through the first book right now (“Mastering Phoenix Framework”) and I find the structure to be well paced for my taste. It skips the unnecessary details and goes into explaining general concepts very well.

I’m a bit turned off by the abundance of typos and code inconsistencies though.

Code snippets seem to be a mix of Phoenix 1.2 and 1.3 and some fragments make no sense.

For example, on chapter 4, it talks about adding categories to products and then, out of nowhere product.image shows up in the code snippet.

Of course, if you’ve been writing some Phoenix code before, these are easy to ignore and not as important. But they do add up and lower the overall quality of the book in my view.

2 Likes

@chalmagean thank you for your comments on the book. I agree with the issues on typos, grammatical issues and code inconsistencies. This is already being addressed in the upcoming release.

2 Likes

When shall we expect said upcoming release?

1 Like

@bdarla The book as it is now published is already covering Phoenix 1.3 RC2 and there isn’t any big change from what is covered in the book and Phoenix 1.3 release. There are about 4 minor changes including change in folder structure. These changes are communicated when the book is purchased by an automated email.

Changes for Phoenix 1.3RC2 - 1.3 being minimal, I have incorporated these changes in my next draft. As a non-native English speaker writing my first book series, some of the very helpful readers have been kind enough to notify me of the language errors, especially on the grammatical side. I am waiting for the language proofreading to be complete before making the next release which I am hopefully expecting will be ready on or before 18th August. Fingers crossed :wink:

4 Likes

Hi Shankardevy,

I just picked up your books today and I wanted to thank you. I’ve only been reading for a couple of hours, but I’ve learned at least 5 things I didn’t know about Phoenix before. Well done!

3 Likes

Your homepage is without valid certification since today.

Ah, and you mean Deutsch hier:

Where can i translate it further? :wink:

thanks @clinton for sharing this. I am glad to know that my book is fulfilling its purpose :smile:

@ShalokShalom thanks for notifying about the SSL issue. It has been fixed on the website.
You are right. It should be ‘Deutsch’ on the menu.

Where can i translate it further? :wink:

Can you explain more on what you want to do?

I read only some pages from the first book and skim through the other books, and I can bet it’s a great resource for learning Phoenix framework, and it will teach you the framework inside out (as the name says).

@shankardevy I would love to take a look at your books, and was just wondering if the typos and code errors mentioned above have been fixed? I am completely new to phoenix so I’m worried about coming across these errors. Thanks!