Powered by AppSignal & Oban Pro
Would you like to see your link here? Contact us

Course Outline

start.livemd

Course Outline

Overview

Use the following index to find reading material and exercises for this course.

Some students experience issues displaying mermaid.js diagrams. Here’s a sample diagram, which depicts the word “Welcome!” inside a box:

flowchart
Welcome!

If you don’t see that diagram, please ensure that your livebook version is correct by running the following command.

$ mix escript.install github livebook-dev/livebook

Then restart your livebook server. You can stop the server using CTRL+C and start it again using the following command from the curriculum folder.

livebook server start.livemd

Week 1: Core Syntax

1. Course Tools

2. Basics

3. Complex Types

4. Modules, Functions, Structs, Control Flow

5. Enumeration

Week 2: Built-In Tools

1. Built-In Modules

2. Dates and Time

3. Guards, Pattern Matching

4. String Manipulation

5. Protocols, and Behaviors.

Week 3: Performance, Persistence, and Processes

1. Recursion

2. Performance Optimization

3. Files and Data Validation

4. Processes

5. Agent, Task, and ETS

Week 4: Mix Projects

1. Elixir Build Tooling

2. ExUnit & Testing

3. Supervisor Basics and Fault Tolerance

4. Relational Database Management Systems and Ecto

5. Group Project

Week 5: Web Servers and Phoenix

1. HTML & CSS

2. APIs & Parsing JSON

3. Phoenix

4. Phoenix and Ecto

5. Phoenix Authentication

Week 6: Ecto Associations

1. Testing Phoenix

2. Phoenix and Ecto One to Many Relationships

3. Phoenix and Ecto Many to Many Relationships

4. Phoenix and Ecto One to One Relationships

5. Tailwind

Week 7: LiveView

1. UX/UI Design + Accessibility

2. Phoenix LiveView

3. JavaScript & JS Interoptability & AlpineJS

  • Reading
    • JavaScript
    • JS Interoptability
    • AlpineJS
  • Exercises
    • Blog Post Search Pagination & Infinite Scroll
    • Alpine JS Counter
    • Add Phone Number Validation to Blog Site
    • Music Scroll Pagination & Infinite Scroll
    • Alpine JS Current Date Display

4. PubSub & Channels

  • Reading
    • PubSub
    • Channels
  • Exercises
    • Live Update Blog List
    • Live Comments On Blog Post
    • Live Multiplayer Rock Paper Scissors
    • Create a Chat App
    • Create Chat Rooms in the Chat App

5. GraphQL & Absinthe (+ Testing Patterns)

  • Reading
    • GraphQL
    • Absinthe
  • Exercises
    • Recipe App
    • Music Search App w/ GraphQL

Week 8: Quality Assurance

1. TDD Techniques (Red Green Refactor)

  • Reading
    • TDD & Refactoring
    • Code Clarity
    • Mix Testing Tools
  • Exercises

2. Metrics, Telemetry, Live Dashboard

  • Reading
    • Telemetry
    • Live Dashboard
  • Exercises

3. Factories & Mocks

  • Reading
    • Factories with ExMachina
    • Mocks with Mox
  • Exercises
    • Blog App Factory
    • Music App Factory
    • Twilio SMS App

4. Property Based Testing (Stream Data) + E2E Testing (Wallaby)

  • Reading
    • Property Based Testing With Stream Data
    • End-To-End Testing With Wallaby
  • Exercises
    • Test Music Filters
    • E2E Test Rock Paper Scissors App

5. CI/CD, Code Coverage, GitHub Actions & Hooks

  • Reading
    • CI/CD
    • GitHub Actions * Hooks
    • Code Coverage
  • Exercises
    • Rock Paper Scissors Pre-Commit Credo hook
    • Rock Paper Scissors Pre-Push Test hook
    • Rock Paper Scissors Code Coverage
    • Rock Paper Scissors CI/CD Setup

Week 9 (Group Project)

1. Software & Product Management (Agile, StandUps, Kanban)

2. Architecture Design & Patterns (Diagrams, UML, CQRS/ES, Contexts, MVC)

3. Advanced Livebook (Graphs, Tables, Connecting Projects)

4. Open Source Patterns & Advanced GitHub (PRs, Forking, Cloning, Issues, Rebasing)

5.

Week 10

1. Emailing & Swoosh

  • Reading
    • Agile Methodology and Tools (Kanban, Standups)
  • Exercises
    • Contact Form On the Blog Site.

2. Stripe

Exercises

  • Create project WIKI
  • Create Project Kanban Board

3. Designing Elixir Systems

4. Advanced Livebook

5. Group Project Presentation

Week 11: Scaling Elixir Applications

1. Umbrella Projects

2. Genserver Bottlenecks

3. Worker Pools

4. Nodes & Clustering

5. Deployment

Week 12: (Final Project)