Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/DockYard-Academy/curriculum
- Owner: DockYard-Academy
- License: mit
- Created: 2022-02-04T16:55:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-12T19:02:26.000Z (4 months ago)
- Last Synced: 2024-08-12T22:08:53.660Z (4 months ago)
- Topics: elixir, hacktoberfest, mix, otp, phoenix
- Language: Elixir
- Homepage:
- Size: 23.3 MB
- Stars: 930
- Watchers: 23
- Forks: 239
- Open Issues: 69
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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