The Complete Elixir and Phoenix Bootcamp

Master Functional Programming techniques with Elixir and Phoenix while learning to build compelling web applications!

4.08 (7270 reviews)
Udemy
platform
English
language
Web Development
category
instructor
28,167
students
17.5 hours
content
Mar 2024
last update
$89.99
regular price

What you will learn

Think with a Functional Programming mindset

Use Phoenix to build compelling and FAST web apps

Understand common Elixir syntax and design patterns

Master the OAuth flow with Phoenix for authentication

Learn the hidden secrets of Phoenix

Description

Elixir and Phoenix are two of the hottest technologies of 2017.

Functional Programming? You will learn it.  Phoenix with OAuth? Its here.  Postgres for data storage? Of course! Websockets too!

This course will get you up and running with Elixir and Phoenix quickly, and teach you the core knowledge you need to deeply understand and build amazingly fast web applications.

We'll start by mastering the fundamentals of functional programming with Elixir, including functions, modules, and the fantastic 'pipe' operator.  You'll learn how FP differs from classic object oriented programming with a variety of different practical examples.  Once you have a solid understanding of Elixir, we'll discuss how to build amazingly fast applications with the Phoenix Framework with an in-depth app.  Source code is provided for each lecture, so you will always stay up-to-date with the course pacing.

If you are new to Elixir, or if you've been working to learn it but sometimes feel like you still don't quite 'get it', this is the Elixir course for you! To learn Elixir and Phoenix you have to understand them.

  • Learn how to use Elixir's built-in library to clean up your code
  • Master the differences between functional and object oriented programming
  • Grasp all of the different pieces of syntax in common Elixir programs
  • Build interesting and challenging projects that have practical uses
  • Develop a web app using Phoenix that can be expanded in a variety of different ways
  • Go behind the scenes of Phoenix and learn how the internals work
  • Master the OAuth flow by authenticating users with the Github Public OAuth service
  • Practice working with databases by integrating Postgres into your app

I've built the course that I would have wanted to take when I was learning Elixir and Phoenix. A course that explains the concepts and how they're implemented in the best order for you to learn and deeply understand them.

Content

An Elixir Warmup

How to Get Help
Installing Elixir
Project Outline
Generating a Project
Elixir Modules and Methods
Lists and Strings
Object Oriented vs Functional Programming
Method Arguments
The Enum Module
Immutability in Elixir
Searching a List
Comprehensions Over Lists
Not Everything Works the First Time
Solving Nested Arrays
Importance of Index with Tuples

Elixir's Amazing Pattern Matching

Pattern Matching
Elixir's Relationship with Erlang
Saving a Deck
Pattern Matching Continued
Pattern Matching in Case Statements
The Pipe Operator
The Pipe Operator Continued
Module Documentation

Testing and Documentation

Writing and Generating Documentation
Creating Function Docs
Introduction to Testing
Amazingly Productive Doctests
Writing Effective Doctests
Case Tests

A Few Side Topics

Introduction to Maps
Updating Values in a Map
Keyword Lists

Image Manipulation with Elixir

Project Overview
Identicon Generation Process
Identicon Generation Process Continued
The Main Pipeline
Hashing a String
The Purpose of the Hex List

Structs - Elixir's Data Modeling Tool

Modeling Data with Structs
Pattern Matching Structs
Updating Structs
Building the Grid
Mirroring a Row
Mapping with Custom Functions
Grid Structure
Giving an Identicon Shape
Planning Image Creation
Creating the Pixel Map
Drawing Rectangles

On to Phoenix

Quick Note About Phoenix
Phoenix Installation
Postgres Setup on OSX
What is Phoenix?
App Overview
Into Phoenix We Go
Server Side Templating
Templates vs Layouts

MVC in Phoenix

Phoenix's MVC Model
Exploring the Router and Controller
Views vs Templates
The Model Layer in Phoenix
Migration Files
A Game Plan for Creating Topics
Routing to the Topic Controller
Setting Up the Topic Controller
Code Reuse with Import, Alias, and Use
Phoenix's Code Sharing Model
Phoenix's Conn Struct
A Phoenix Approach to Forms

Models in Phoenix

The Topic Model
Model Changesets and Validations
More on Changesets
Generating Changesets for the Form
New Topic Form
Phoenix Template Syntax
Handling Form Submissions
A Quick Review and Breather

Working with Postgres

Introduction to the Repo Module
Handling Failed Form Submissions
Styling with CSS in Phoenix
Breaking Restful Conventions Safely
Using the Repo Module for Queries
Building Lists in EEX Templates
Redirects in the Controller
Generating Anchors with Link Tags
Router Wildcards
Setting up the Edit Form
Defining the Update Route
Editing a Topic
Linking to the Edit Topic Form
The Resources Helper
Deleting a Topic
Wrapping up TopicController

Handling Authentication with OAuth

OAuth Overview
OAuth Setup with Ueberauth
Creating a Github OAuth App
Defining OAuth Routes
Receiving User Info From Github
Users Migration
Digesting the OAuth Response
The User Changeset
Creating New Users
Our Auth Grand Plan
Handling OAuth Success

Transforming Requests with Plugs

Introduction to Plugs
Using a Module Plug to Set the User
Implementing Module Plugs
Allowing Users to Signout
Restricting Access of Users
The Require Auth Plug
Controller Scoped Plugs
Associating Users with Topics
Altering Existing Tables
Playing Around with Associations
Using the Build Assoc Function
Finalizing the Association
Checking the Topics Owner

Websockets in Phoenix

Introduction to Websockets
Showing Individual Topics
Making the Comments Migration
The Comments Model
Overview of Channels in Phoenix
RallyCoding
Introducing the Comments Channel
Making Progress with Sockets
Quick Breather and Review
Publishing Messages
Figuring Out What Topics to Show
Refactoring to Determine Topic Id
Fetching Topics on Join
Debugging Topic Fetching
Building the Comment Form
Inserting Comments into the Database
Remaining Items with Sockets
Poison Encoder
Rendering a List of Comments
Broadcasting Updates
Updating the Client
The Socket Event Object
Authentication with Sockets
Transporting Tokens to the Server
Verifying the Current Socket User
Associating Comments with Users
Fetching Users with Comments
Rendering Associated Users

Phoenix 1.3 Update

New in Phoenix 1.3
CLI Command Changes
Assets Folder Changes
Directory Structure Changes
Contexts
More on Contexts

Extras

Bonus!

Screenshots

The Complete Elixir and Phoenix Bootcamp - Screenshot_01The Complete Elixir and Phoenix Bootcamp - Screenshot_02The Complete Elixir and Phoenix Bootcamp - Screenshot_03The Complete Elixir and Phoenix Bootcamp - Screenshot_04

Reviews

Андрей
November 13, 2023
Pretty good presentation and structure of the course. However the materials seems to be a bit outdated and OS X specific. Some troubleshooting guidance would be appreciated. F.e. the issues I have faced on attempt to display "hi there!": - the generated project structure is different from the one in the video. - difficulties with Atom configuration for Win. Solution: started using VSCode - iex command is misrecognized in PowerShell. Solution: use iex.bat - iex.bat hangs and do nothing. Solution: add dependency as guided in Q&A For experienced dev it would take a minute. As novice I spent 2 hours :(
Joshua
November 10, 2023
I really like Stephen's instructional style, but the version of Phoenix the course uses is so out of date that I can't even install it! We're fully five versions out of date at this point! This is especially problematic when dealing with forms; Phoenix nowadays uses HEEx, which is totally different from EEx.
Clayton
November 3, 2023
Featuring excellent demonstrations and easily understandable explanations, as someone with experience in Ruby and Python, I find it quite adaptable (Elixir Pattern Matching, is one tricky concept, but seemingly powerful). Moreover, I believe this course is suitable for professionals at any level. The content is truly outstanding, and the sample projects are executed with excellence. Awesome work Stephen, well done?
Tristan
October 29, 2023
I find it far too slow. The course seems to target people who have barely used a computer and may try to learn elixir as a first language. This is quite baffling given how niche elixir is. Worse, the setup of elixir has some paper cuts, that are not explained in this course and would throw off the beginners this course seems to target
정욱진
October 7, 2023
"This course served as an excellent starting point for learning the Elixir language. The course structure was well-organized, and the instructor's explanations were easy to grasp. It proved to be of great assistance in laying a strong foundation for Elixir programming."
Nischal
October 1, 2023
I have an upcoming job role that requires me to use Elixir, ive finished 2 sections of this course so far, and IT IS AMAZING... stephen is a rockstar
Helena
September 27, 2023
I have a great appreciation for the teacher and his teaching style; however, the course is in dire need of an update. The Phoenix content is severely outdated, lagging behind several major versions from the current one. I would advise against enrolling in this course unless you have a legacy Phoenix project that requires an upgrade or a specific reason to delve into the outdated content. Nevertheless, the Elixir part at the beginning remains valuable and justifies the course's cost. If your primary interest lies in Elixir, it might still be a worthwhile choice.
Antony
September 19, 2023
Elixir portion was good and I like Stephen's teaching style. However, I think the situation with Phoenix and the course being built on a super old version (1.2) sucks - I wish this was clearer BEFORE I paid for the course. I'm now abandoning the course after the Elixir sections.
Jeremy
September 16, 2023
This course feels very out of date with the Phoenix framework. It did started out strong with the Elixir courses, but fell apart once having to do with Phoenix which was the reason I bought the course.
Leonardo
September 11, 2023
The course has been really good so far. The teacher explains all the concepts in a clear, easy to understand way.
Tommy
August 21, 2023
- Outdated content - Not my favorite style of learning, at this point reading the documentation is better ... - Identicon project was nice - Instructor seems more confused when explaining stuff and disorganized. - I do not feel confident using either elixir or phoenix on a new project based on this learning, I will have to take another course... - I bought and keep following because there is no other course with phoenix :/ - Not enough deep example with elixir itself and FP Principles - would be much appreciate to update the content.. or mark it as NOT UPDATED.
Jay
August 9, 2023
Really informative, unfortunately some sections are horribly out of date, though the basic concepts are good
Tîmbur
August 6, 2023
Great content and very helpful. I think there should be an update for the 2023 version, because now a lot of things has changed...
Timo
August 4, 2023
Very common coverage of elixir power so far. With that it can be considered as a light excursion to the Elixir world
Madison
January 22, 2023
this would be a very good course if it was actually properly outdated, setting it as "updated for current month" is just simply not true and if you arent an experienced programmer youll often end up in situations where youre on your own

Charts

Price

The Complete Elixir and Phoenix Bootcamp - Price chart

Rating

The Complete Elixir and Phoenix Bootcamp - Ratings chart

Enrollment distribution

The Complete Elixir and Phoenix Bootcamp - Distribution chart
904462
udemy ID
7/14/2016
course created date
6/26/2019
course indexed date
Bot
course submited by