The Complete Elixir and Phoenix Bootcamp

The Complete Elixir and Phoenix Bootcamp
The Complete Elixir and Phoenix Bootcamp
English | MP4 | AVC 1280×720 | AAC 48KHz 2ch | 17.5 Hours | 2.21 GB

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

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
Table of Contents

An Elixir Warmup
1 How to Get Help
2 Installing Elixir
3 Project Outline
4 Generating a Project
5 Elixir Modules and Methods
6 Lists and Strings
7 Object Oriented vs Functional Programming
8 Method Arguments
9 The Enum Module
10 Immutability in Elixir
11 Searching a List
12 Comprehensions Over Lists
13 Not Everything Works the First Time
14 Solving Nested Arrays
15 Importance of Index with Tuples

Elixir's Amazing Pattern Matching
16 Pattern Matching
17 Elixir's Relationship with Erlang
18 Saving a Deck
19 Pattern Matching Continued
20 Pattern Matching in Case Statements
21 The Pipe Operator
22 The Pipe Operator Continued
23 Module Documentation

Testing and Documentation
24 Writing and Generating Documentation
25 Creating Function Docs
26 Introduction to Testing
27 Amazingly Productive Doctests
28 Writing Effective Doctests
29 Case Tests

A Few Side Topics
30 Introduction to Maps
31 Updating Values in a Map
32 Keyword Lists

Image Manipulation with Elixir
33 Project Overview
34 Identicon Generation Process
35 Identicon Generation Process Continued
36 The Main Pipeline
37 Hashing a String
38 The Purpose of the Hex List

Structs - Elixir's Data Modeling Tool
39 Modeling Data with Structs
40 Pattern Matching Structs
41 Updating Structs
42 Building the Grid
43 Mirroring a Row
44 Mapping with Custom Functions
45 Grid Structure
46 Giving an Identicon Shape
47 Planning Image Creation
48 Creating the Pixel Map
49 Drawing Rectangles

On to Phoenix
50 Quick Note About Phoenix.html
51 Phoenix Installation
52 Postgres Setup on OSX
53 What is Phoenix_
54 App Overview
55 Into Phoenix We Go
56 Server Side Templating
57 Templates vs Layouts

MVC in Phoenix
58 Phoenix's MVC Model
59 Exploring the Router and Controller
60 Views vs Templates
61 The Model Layer in Phoenix
62 Migration Files
63 A Game Plan for Creating Topics
64 Routing to the Topic Controller
65 Setting Up the Topic Controller
66 Code Reuse with Import_ Alias_ and Use
67 Phoenix's Code Sharing Model
68 Phoenix's Conn Struct
69 A Phoenix Approach to Forms

Models in Phoenix
70 The Topic Model
71 Model Changesets and Validations
72 More on Changesets
73 Generating Changesets for the Form
74 New Topic Form
75 Phoenix Template Syntax
76 Handling Form Submissions
77 A Quick Review and Breather

Working with Postgres
78 Introduction to the Repo Module
79 Handling Failed Form Submissions
80 Styling with CSS in Phoenix
81 Breaking Restful Conventions Safely
82 Using the Repo Module for Queries
83 Building Lists in EEX Templates
84 Redirects in the Controller
85 Generating Anchors with Link Tags
86 Router Wildcards
87 Setting up the Edit Form
88 Defining the Update Route
89 Editing a Topic
90 Linking to the Edit Topic Form
91 The Resources Helper
92 Deleting a Topic
93 Wrapping up TopicController

Handling Authentication with OAuth
94 OAuth Overview
95 OAuth Setup with Ueberauth
96 Creating a Github OAuth App
97 Defining OAuth Routes
98 Receiving User Info From Github
99 Users Migration
100 Digesting the OAuth Response
101 The User Changeset
102 Creating New Users
103 Our Auth Grand Plan
104 Handling OAuth Success

Transforming Requests with Plugs
105 Introduction to Plugs
106 Using a Module Plug to Set the User
107 Implementing Module Plugs
108 Allowing Users to Signout
109 Restricting Access of Users
110 The Require Auth Plug
111 Controller Scoped Plugs
112 Associating Users with Topics
113 Altering Existing Tables
114 Playing Around with Associations
115 Using the Build Assoc Function
116 Finalizing the Association
117 Checking the Topics Owner

Websockets in Phoenix
118 Introduction to Websockets
119 Showing Individual Topics
120 Making the Comments Migration
121 The Comments Model
122 Overview of Channels in Phoenix
123 RallyCoding.html
124 Introducing the Comments Channel
125 Making Progress with Sockets
126 Quick Breather and Review
127 Publishing Messages
128 Figuring Out What Topics to Show
129 Refactoring to Determine Topic Id
130 Fetching Topics on Join
131 Debugging Topic Fetching
132 Building the Comment Form
133 Inserting Comments into the Database
134 Remaining Items with Sockets
135 Poison Encoder
136 Rendering a List of Comments
137 Broadcasting Updates
138 Updating the Client
139 The Socket Event Object
140 Authentication with Sockets
141 Transporting Tokens to the Server
142 Verifying the Current Socket User
143 Associating Comments with Users
144 Fetching Users with Comments
145 Rendering Associated Users

Phoenix 1_3 Update
146 New in Phoenix 1_3
147 CLI Command Changes
148 Assets Folder Changes
149 Directory Structure Changes
150 Contexts
151 More on Contexts