{"id":13568962,"url":"https://github.com/DockYard-Academy/curriculum","last_synced_at":"2025-04-04T05:31:02.324Z","repository":{"id":37010077,"uuid":"455626824","full_name":"DockYard-Academy/curriculum","owner":"DockYard-Academy","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-10T21:46:26.000Z","size":24615,"stargazers_count":974,"open_issues_count":0,"forks_count":249,"subscribers_count":25,"default_branch":"main","last_synced_at":"2024-11-05T01:34:40.826Z","etag":null,"topics":["elixir","hacktoberfest","mix","otp","phoenix"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DockYard-Academy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-04T16:55:30.000Z","updated_at":"2024-11-04T20:49:23.000Z","dependencies_parsed_at":"2024-11-05T01:31:45.140Z","dependency_job_id":"5101f920-fb43-4b89-90f2-bd104a9aa152","html_url":"https://github.com/DockYard-Academy/curriculum","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DockYard-Academy%2Fcurriculum","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DockYard-Academy%2Fcurriculum/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DockYard-Academy%2Fcurriculum/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DockYard-Academy%2Fcurriculum/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DockYard-Academy","download_url":"https://codeload.github.com/DockYard-Academy/curriculum/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247128698,"owners_count":20888232,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elixir","hacktoberfest","mix","otp","phoenix"],"created_at":"2024-08-01T14:00:33.993Z","updated_at":"2025-04-04T05:30:57.315Z","avatar_url":"https://github.com/DockYard-Academy.png","language":"Elixir","funding_links":[],"categories":["Elixir","Education","Projects"],"sub_categories":["Courses, etc."],"readme":"# DockYard Academy\n\nThe DockYard Academy curriculum is an open source Elixir curriculum built with Livebook.\nWe're proud to offer our open-source curriculum free of charge for anyone to learn from at their own pace.\n\nThis curriculum is designed for our paid full time course, which is currently on hiatus.\n\n## Prerequisites\n* Install [Elixir](https://elixir-lang.org/install.html)\n* Install [Livebook](https://github.com/livebook-dev/livebook)\n* Install [Postgres](https://www.postgresql.org/download/) (optional to get started)\n* Install [Phoenix](https://hexdocs.pm/phoenix/installation.html) (optional to get started)\n* Setup [WSL with Visual Studio Code](https://code.visualstudio.com/docs/remote/wsl) (Windows Users Only)\n* Optionally Install [asdf](https://asdf-vm.com/guide/getting-started.html) to manage Elixir and Erlang versions.\n\nWe 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.\n\n## Getting Started\n\nDownload and extract the [Latest Release](https://github.com/DockYard-Academy/curriculum/releases) source code zip file.\n\nOpen the extracted `curriculum` folder in Livebook and open the `start.livemd` file to see all project lessons and exercises.\n\nOptionally [Create a GitHub Repository](https://github.com/new) and follow the instructions on GitHub to manage your downloaded `curriculum` with Git and GitHub.\n\nSee the [Troubleshooting Guide](https://github.com/DockYard-Academy/curriculum/wiki/Troubleshooting) if you encounter issues setting up the curriculum.\n\n## Course Outcome\nOur 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.\n\n## Curriculum Outline\nSee [start.livemd](https://github.com/DockYard-Academy/curriculum/blob/main/start.livemd) for a full breakdown of our lessons and exercises.\n\n\u003c!-- course-outline-start --\u003e\n## Elixir Fundamentals\n* Prerequisites\n* Course Tools\n* Basics\n* Data Structures And Intro To Pattern Matching\n* Control Flow And Abstraction\n* Modules And Structs\n* Enumeration\n* Built-in Modules\n* Comprehensions And Non-Enumerable Data Types\n* Reduce\n* Dates And Time\n* String Manipulation\n* Recursion\n## Mix Projects\n* Elixir Build Tooling\n* Testing With ExUnit\n* Documentation And Static Analysis\n* Executables\n## Advanced Syntax\n* Advanced Pattern Matching\n* Guarding\n* Protocols\n* Persistence Using The File System\n## OTP\n* Processes\n* GenServers\n* Testing GenServers\n* Supervisor Basics And Fault Tolerance\n* Concurrency With Tasks\n## Phoenix\n* HTML And CSS\n* APIs\n* Relational Databases\n* Phoenix\n* Group Project Blog\n* Phoenix And Ecto\n* Testing Phoenix\n* Phoenix Forms And Components\n* Phoenix And Ecto One-to-Many Associations\n* Phoenix Authentication\n* Phoenix And Ecto Many-to-Many Relationships\n* Phoenix And Ecto One-to-One Relationships\n* Tailwind\n* Deployment\n* Custom Feature\n* Group Project Presentation\n## Capstone Project Preparation\n* Capstone Project\n## LiveView\n* LiveView\n* LiveView And Ecto\n* LiveView Authentication\n* LiveView Image Uploads\n* PubSub\n* LiveView JS Interoperability And Pagination\n* Scheduling And Emailing With Swoosh And Oban\n## Bonus Topics\n* Performance Optimization\n* Benchmarking And Performance\n* Ecto Changesets\n* State Management With Agents And ETS\n* Metaprogramming\n* Queues\n* Worker Pools\n* Rubix Cube Project\n\n\u003c!-- course-outline-end --\u003e\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDockYard-Academy%2Fcurriculum","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDockYard-Academy%2Fcurriculum","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDockYard-Academy%2Fcurriculum/lists"}