Capstone: Mock
Mix.install([
{:jason, "~> 1.4"},
{:kino, "~> 0.9", override: true},
{:youtube, github: "brooklinjazz/youtube"},
{:hidden_cell, github: "brooklinjazz/hidden_cell"}
])
Navigation
Capstone Project
The Capstone Project is an opportunity to demonstrate everything you have learned so far in DockYard Academy, and solidify your skills. It will also be an excellent project you can use on your resume.
In this exercise, plan the features for your Capstone Project. Assuming your project includes visual features, create a mock of your application with Figma or your preferred design software.
Ideally, your capstone project should:
- Demonstrate your skills and knowledge.
- Help you learn and be fun to build.
- Be extendable so you can continue to add features as your skillset grows.
Consider the following advice as you decide on what your project should be:
- Avoid feature bloat by defining a minimal set of MVP features you can accomplish before demo day, then bonus features if you have time or that you can work on after this course.
- Include a personal touch to show off your personality, values, or interests. Make this project your own.
- Can be ready in time for demo day.
- Demonstrates what Elixir/Phoenix is great at (real-time features, concurrency, fault-taulerance, etc)
Examples
- A web game (chess, checkers, etc) themed based on your personal interests. (i.e. A dungeons and dragons themed chess game)
- A CRUD application such as a Recipe App, Habit Tracker, Note taking app, etc.
- A real-time website such as a chat app.
Bonus: Kanban Board
Use Trello or some other Kanban application such as a GitHub project board to create a list of cards (features to complete) for your Capstone project.
Mark As Completed
file_name = Path.basename(Regex.replace(~r/#.+/, __ENV__.file, ""), ".livemd")
progress_path = __DIR__ <> "/../progress.json"
existing_progress = File.read!(progress_path) |> Jason.decode!()
default = Map.get(existing_progress, file_name, false)
form =
Kino.Control.form(
[
completed: input = Kino.Input.checkbox("Mark As Completed", default: default)
],
report_changes: true
)
Task.async(fn ->
for %{data: %{completed: completed}} <- Kino.Control.stream(form) do
File.write!(progress_path, Jason.encode!(Map.put(existing_progress, file_name, completed)))
end
end)
form
Commit Your Progress
Run the following in your command line from the curriculum folder to track and save your progress in a Git commit.
Ensure that you do not already have undesired or unrelated changes by running git status
or by checking the source control tab in Visual Studio Code.
$ git checkout solutions
$ git checkout -b capstone-project-mock-exercise
$ git add .
$ git commit -m "finish capstone project mock exercise"
$ git push origin capstone-project-mock-exercise
Create a pull request from your capstone-project-mock-exercise
branch to your solutions
branch.
Please do not create a pull request to the DockYard Academy repository as this will spam our PR tracker.
DockYard Academy Students Only:
Notify your instructor by including @BrooklinJazz
in your PR description to get feedback.
You (or your instructor) may merge your PR into your solutions branch after review.
If you are interested in joining the next academy cohort, sign up here to receive more news when it is available.