Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DockYard-Academy/curriculum


https://github.com/DockYard-Academy/curriculum

elixir hacktoberfest mix otp phoenix

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# DockYard Academy

The DockYard Academy curriculum is an open source Elixir curriculum built with Livebook.
We're proud to offer our open-source curriculum free of charge for anyone to learn from at their own pace.

This curriculum is designed for our paid full time course, which is currently on hiatus.

## Prerequisites
* Install [Elixir](https://elixir-lang.org/install.html)
* Install [Livebook](https://github.com/livebook-dev/livebook)
* Install [Postgres](https://www.postgresql.org/download/) (optional to get started)
* Install [Phoenix](https://hexdocs.pm/phoenix/installation.html) (optional to get started)
* Setup [WSL with Visual Studio Code](https://code.visualstudio.com/docs/remote/wsl) (Windows Users Only)
* Optionally Install [asdf](https://asdf-vm.com/guide/getting-started.html) to manage Elixir and Erlang versions.

We recommend the [Visual Studio Code](https://code.visualstudio.com/) editor for ease of collaboration with LiveShare. However, you may use any code editor you prefer.

## Getting Started

Download and extract the [Latest Release](https://github.com/DockYard-Academy/curriculum/releases) source code zip file.

Open the extracted `curriculum` folder in Livebook and open the `start.livemd` file to see all project lessons and exercises.

Optionally [Create a GitHub Repository](https://github.com/new) and follow the instructions on GitHub to manage your downloaded `curriculum` with Git and GitHub.

See the [Troubleshooting Guide](https://github.com/DockYard-Academy/curriculum/wiki/Troubleshooting) if you encounter issues setting up the curriculum.

## Course Outcome
Our program is designed to produce highly qualified Elixir developers. Upon completion, students will possess a thorough understanding of Elixir fundamentals, project development using Elixir and Phoenix, LiveView, and OTP. They will have the expertise and problem-solving skills necessary to tackle complex coding challenges and continue to grow and excel in their careers. Graduates will be well-equipped to deliver idiomatic and well-tested features to production codebases.

## Curriculum Outline
See [start.livemd](https://github.com/DockYard-Academy/curriculum/blob/main/start.livemd) for a full breakdown of our lessons and exercises.

## Elixir Fundamentals
* Prerequisites
* Course Tools
* Basics
* Data Structures And Intro To Pattern Matching
* Control Flow And Abstraction
* Modules And Structs
* Enumeration
* Built-in Modules
* Comprehensions And Non-Enumerable Data Types
* Reduce
* Dates And Time
* String Manipulation
* Recursion
## Mix Projects
* Elixir Build Tooling
* Testing With ExUnit
* Documentation And Static Analysis
* Executables
## Advanced Syntax
* Advanced Pattern Matching
* Guarding
* Protocols
* Persistence Using The File System
## OTP
* Processes
* GenServers
* Testing GenServers
* Supervisor Basics And Fault Tolerance
* Concurrency With Tasks
## Phoenix
* HTML And CSS
* APIs
* Relational Databases
* Phoenix
* Group Project Blog
* Phoenix And Ecto
* Testing Phoenix
* Phoenix Forms And Components
* Phoenix And Ecto One-to-Many Associations
* Phoenix Authentication
* Phoenix And Ecto Many-to-Many Relationships
* Phoenix And Ecto One-to-One Relationships
* Tailwind
* Deployment
* Custom Feature
* Group Project Presentation
## Capstone Project Preparation
* Capstone Project
## LiveView
* LiveView
* LiveView And Ecto
* LiveView Authentication
* LiveView Image Uploads
* PubSub
* LiveView JS Interoperability And Pagination
* Scheduling And Emailing With Swoosh And Oban
## Bonus Topics
* Performance Optimization
* Benchmarking And Performance
* Ecto Changesets
* State Management With Agents And ETS
* Metaprogramming
* Queues
* Worker Pools
* Rubix Cube Project