Group Project: Blog
Mix.install([
  {:jason, "~> 1.4"},
  {:kino, "~> 0.9", override: true},
  {:youtube, github: "brooklinjazz/youtube"},
  {:hidden_cell, github: "brooklinjazz/hidden_cell"}
])
Navigation
Home Report An Issue Phoenix DrillsPhoenix And EctoGroup Project: Blog
You’re going to build a Blog application with a group of 3-4 others to learn more about Phoenix and Ecto.
As we move through the Phoenix and Web Development section, you’ll gradually add more features to your blog.
Requirements
Features
Your blog application should have the following features.
- Posts with a CoverImage
 - Users
 - Tags
 - Comments
 - Authentication and Authorization
 
As you progress through the Phoenix section you’ll complete the following exercises that further clarify these features.
- Blog: Posts
 - Blog: Search
 - Blog: Visibility Migration
 - Blog: Comments
 - Blog: Authentication
 - Blog: Tags
 - Blog: Cover Image
 - Blog: Home Page
 - Blog: Deployment
 - Blog: Custom Feature
 
Entity Relationship Diagram
Here’s an Entity-Relationship Diagram that describes the data and associations in the blog project.
erDiagram
User {
  string username
  string email
  string password
  string hashed_password
  naive_datetime confirmed_at
}
Post {
    string title
    text content
    date published_on
    boolean visibility
}
CoverImage {
    text url
    id post_id
}
Comment {
  text content
  id post_id
}
Tag {
    string name
}
User |O--O{ Post: ""
Post }O--O{ Tag: ""
Post ||--O{ Comment: ""
Post ||--|| CoverImage: ""
Initialize Group Project
Have the project lead use phx.new to create a new blog project.
$ mix phx.new blog
Initialize the project with git.
$ git init
Create a GitHub Repository and invite everyone as contributors to the project.
Create Your README
Edit the README.md file initialized in your Phoenix project.
Include at least the following information:
- Project Name
 - Project Summary
 - Technologies Used (Phoenix, Elixir)
 - Contributors
 - An ERDiagram made with mermaid. (see above)
 
You may update your README as the project expands
Protect Main
Protect your main branch so that no one can push directly to main without a PR review.
This is a common safety mechanism used on most projects to ensure no one can accidentally write to the main branch without review by another member of the project.
Commit Your Progress
DockYard Academy now recommends you use the latest Release rather than forking or cloning our repository.
Run git status to ensure there are no undesirable changes.
Then run the following in your command line from the curriculum folder to commit your progress.
$ git add .
$ git commit -m "finish Group Project: Blog exercise"
$ git push
We’re proud to offer our open-source curriculum free of charge for anyone to learn from at their own pace.
We also offer a paid course where you can learn from an instructor alongside a cohort of your peers. We will accept applications for the June-August 2023 cohort soon.