Project 4 Rubric

by ADMIN 17 views

Project Score: / 60

The project score is based on a comprehensive evaluation of your project, covering various aspects such as GitHub repository contents, Docker-ization, GitHub Actions, and project description. Each section is designed to assess your understanding and implementation of the project requirements.

Milestone Extra Credits

You have the opportunity to earn extra credits by completing specific milestones. The following milestones are eligible for extra credits:

  • Milestone 1: Part 1 - +5% = 3 pts
  • Milestone 2: Part 1 + 2 - +5% = 3 pts

GitHub Repository Contents ( / 4)

Your GitHub repository should contain the following essential files and folders:

  • README-CI.md: A clear and concise README file that explains the project's purpose, requirements, and setup instructions.
  • angular-site folder: The Angular application should be stored in this folder, along with any necessary dependencies and configuration files.
  • Dockerfile: A Dockerfile that defines the build process for the container image.
  • .github/workflows folder: A GitHub Actions workflow file that automates the build and deployment process.

Part 1 - Docker-ize it ( / 21)

Docker Setup

To earn full points for this section, you must demonstrate a thorough understanding of Docker setup and configuration. This includes:

  • Installing Docker on your operating system
  • Configuring additional dependencies based on your OS
  • Confirming that Docker is installed and your system can successfully run containers

Manually Setting up a Container

To manually set up a container, you should:

  • Run a container to test the Angular application, including explanation of flags/arguments used
  • Execute commands within the container to obtain additional dependencies
  • Run the application within the container
  • Verify that the container is successfully serving the Angular application from both the container and host sides

Dockerfile & Building Images

To earn full points for this section, you must demonstrate a clear understanding of the Dockerfile instructions and the build process. This includes:

  • Summarizing the instructions written in the Dockerfile
  • Building an image from the repository Dockerfile
  • Running a container that serves the Angular application from the image built by the Dockerfile
  • Verifying that the container is successfully serving the Angular application from both the container and host sides

Working with your DockerHub Repository

To earn full points for this section, you must demonstrate a thorough understanding of working with DockerHub repositories. This includes:

  • Creating a public repository in DockerHub
  • Creating a Personal Access Token (PAT) for authentication
  • Authenticating with DockerHub via CLI using DockerHub credentials
  • Pushing the container image to your DockerHub repository
  • Linking to your DockerHub repository for this project

Part 2 - GitHub Actions and DockerHub ( / 11)

Configuring GitHub Repository Secrets

To earn full points for this section, you must demonstrate a clear understanding of configuring GitHub repository secrets. This includes:

  • Creating a PAT for authentication
  • Setting repository secrets for use by GitHub Actions
  • Describing the secrets set for this project

CI with GitHub Actions

To earn full for this section, you must demonstrate a thorough understanding of GitHub Actions and continuous integration. This includes:

  • Summarizing what your workflow does and when it does it
  • Explaining the workflow steps
  • Highlighting values that need to be updated if used in a different repository
  • Linking to the workflow file in your GitHub repository

Testing & Validating

To earn full points for this section, you must demonstrate a clear understanding of testing and validating your workflow. This includes:

  • Testing that your workflow did its tasking
  • Verifying that the image in DockerHub works when a container is run using the image

Part 3 - Project Description & Diagram ( / 8)

Continuous Integration Project Overview

To earn full points for this section, you must demonstrate a clear understanding of the project's purpose and workflow. This includes:

  • Describing the goal of this project
  • Identifying the tools used in this project and their roles
  • Creating a diagram that explains the project workflow in terms of:
    • Developer role
    • GitHub role
    • Docker Hub role
  • If applicable, describing what is not working in this project

Resources Section

To earn full points for this section, you must demonstrate a clear understanding of including resources in your project. This includes:

  • Including resources (embedded at relevant points or in a standalone section)
  • Well-formatted resources

Dockerfile ( / 8)

To earn full points for this section, you must demonstrate a clear understanding of building a container image from a Dockerfile. This includes:

  • Building from a logical container image on DockerHub
  • Installing required dependencies
  • Copying the application into the container
  • Starting the application when the container is run using the built image

GitHub Action Workflow ( / 8)

To earn full points for this section, you must demonstrate a clear understanding of the GitHub Actions workflow. This includes:

  • Defining secrets in repository settings
  • Triggering the workflow on push to main
  • Building an image based on your Dockerfile
  • Pushing the image to your DockerHub repository

Common Point Deductions:

  • (-30% = 18 pts) Documentation not well organized with markdown OR includes project descriptive text
  • (-10% = 6 pts) Documentation fails to address what was not implemented / implies the project is fully functional. Always document shortcomings and note what is "research" on how the rest should be done
  • No citations of referenced material

[!WARNING] May result in Academic Integrity Violation with a penalty of a 0 on the project

Q: What is the purpose of the Project 4 Rubric?

A: The Project 4 Rubric is a comprehensive evaluation tool designed to assess your understanding and implementation of the project requirements. It covers various aspects of the project, including GitHub repository contents, Docker-ization, GitHub Actions, and project description.

Q: What are the key components of the Project 4 Rubric?

A: The key components of the Project 4 Rubric include:

  • GitHub Repository Contents (4 points)
  • Part 1 - Docker-ize it (21 points)
  • Part 2 - GitHub Actions and DockerHub (11 points)
  • Part 3 - Project Description & Diagram (8 points)
  • Dockerfile (8 points)
  • GitHub Action Workflow (8 points)
  • Common Point Deductions (varies)

Q: What is the significance of the GitHub Repository Contents section?

A: The GitHub Repository Contents section assesses your ability to create a well-organized and clear GitHub repository. This includes the presence of essential files and folders, such as README-CI.md, angular-site folder, Dockerfile, and .github/workflows folder.

Q: How do I earn extra credits for completing specific milestones?

A: You can earn extra credits by completing specific milestones, such as Milestone 1: Part 1 - +5% = 3 pts and Milestone 2: Part 1 + 2 - +5% = 3 pts.

Q: What is the importance of Docker setup and configuration?

A: Docker setup and configuration are crucial components of the project. You must demonstrate a thorough understanding of installing Docker on your operating system, configuring additional dependencies, and confirming that Docker is installed and your system can successfully run containers.

Q: How do I manually set up a container?

A: To manually set up a container, you should:

  • Run a container to test the Angular application, including explanation of flags/arguments used
  • Execute commands within the container to obtain additional dependencies
  • Run the application within the container
  • Verify that the container is successfully serving the Angular application from both the container and host sides

Q: What is the significance of the Dockerfile and building images?

A: The Dockerfile and building images are essential components of the project. You must demonstrate a clear understanding of the Dockerfile instructions and the build process, including building an image from the repository Dockerfile, running a container that serves the Angular application from the image built by the Dockerfile, and verifying that the container is successfully serving the Angular application from both the container and host sides.

Q: How do I work with my DockerHub repository?

A: To work with your DockerHub repository, you must:

  • Create a public repository in DockerHub
  • Create a Personal Access Token (PAT) for authentication
  • Authenticate with DockerHub via CLI using DockerHub credentials
  • Push the container image to your DockerHub repository
  • Link to your DockerHub repository for this project

Q: What is the importance of GitHub Actions and continuous integration?

A: GitHub Actions and continuous integration are crucial components of the project. You must demonstrate a clear understanding of configuring GitHub repository secrets creating a workflow that automates the build and deployment process, and testing and validating the workflow.

Q: How do I earn full points for the project description and diagram?

A: To earn full points for the project description and diagram, you must demonstrate a clear understanding of the project's purpose and workflow, including:

  • Describing the goal of this project
  • Identifying the tools used in this project and their roles
  • Creating a diagram that explains the project workflow in terms of:
    • Developer role
    • GitHub role
    • Docker Hub role
  • If applicable, describing what is not working in this project

Q: What are the common point deductions?

A: The common point deductions include:

  • (-30% = 18 pts) Documentation not well organized with markdown OR includes project descriptive text
  • (-10% = 6 pts) Documentation fails to address what was not implemented / implies the project is fully functional. Always document shortcomings and note what is "research" on how the rest should be done
  • No citations of referenced material

[!WARNING] May result in Academic Integrity Violation with a penalty of a 0 on the project