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
- Reading
- Exercises
2. Basics
- Reading
- Exercises
3. Complex Types
- Reading
- Exercises
4. Modules, Functions, Structs, Control Flow
- Reading
- Exercises
5. Enumeration
- Reading
- Exercises
Week 2: Built-In Tools
1. Built-In Modules
- Reading
- Exercises
2. Dates and Time
- Reading
- Exercises
3. Guards, Pattern Matching
- Reading
- Exercises
4. String Manipulation
- Reading
-
Exercises
- Email Validation
- Phone Number Parsing
- Classified
- Caesar Cypher
- Rollable Expressions
- For further practice, try regexone.com
5. Protocols, and Behaviors.
- Reading
- Exercises
Week 3: Performance, Persistence, and Processes
1. Recursion
- Reading
- Exercises
2. Performance Optimization
- Reading
- Exercises
3. Files and Data Validation
- Reading
- Exercises
4. Processes
- Reading
- Exercises
5. Agent, Task, and ETS
- Reading
- Exercises
Week 4: Mix Projects
1. Elixir Build Tooling
- Reading
- Exercises
2. ExUnit & Testing
- Reading
- Exercises
3. Supervisor Basics and Fault Tolerance
- Reading
- Exercises
4. Relational Database Management Systems and Ecto
- Reading
- Exercises
5. Group Project
Week 5: Web Servers and Phoenix
1. HTML & CSS
- Reading
- Exercises
2. APIs & Parsing JSON
- Reading
- Exercises
3. Phoenix
- Reading
- Exercises
4. Phoenix and Ecto
- Reading
- Exercises
5. Phoenix Authentication
- Reading
- Exercises
Week 6: Ecto Associations
1. Testing Phoenix
- Reading
- Exercises
2. Phoenix and Ecto One to Many Relationships
- Reading
- Exercises
3. Phoenix and Ecto Many to Many Relationships
- Reading
- Exercises
4. Phoenix and Ecto One to One Relationships
- Reading
- Reading
5. Tailwind
- Reading
- Exercises
Week 7: LiveView
1. UX/UI Design + Accessibility
-
Reading
-
UI/UX and Accessibility
- UI/UX
- Pen * Paper Prototyping
- Figma & Mocks
- Accessibility
- Axe, ColorZilla Color Combinations: https://toolness.GitHub.io/accessible-color-matrix/
-
UI/UX and Accessibility
-
Exercises
- Portfolio: Mock (NEEDS EXAMPLE)
- BONUS: Capstone Project: Mock
2. Phoenix LiveView
-
Reading
- BookSearch: LiveSearch (WIP)
- Exercises
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