Software Engineering

Homework 3: MVC View

For this homework, you will create simple Rails web app with (mostly) static web pages and practice using some features of Git and GitHub.

The tasks you will perform draw heavily from two demonstrations: one giving an overview of the software stack and another focusing on the MVC view in Rails.

Step 1. Create a new Rails web app

Section 1 of the software stack demo shows similar steps to the ones you’ll use in this part.

First, you must

When perform the above tasks, follow these constraints:

Once you have completed this step, commit the current version of the code to your local repo, and push the changes to the remote GitHub repo. Make note of the commit has for this commit. You will need to report it in Step 4 below.

Step 2. Create a controller for pages

Section 2, steps 1 and 2 of the software stack demo show similar steps to the ones you’ll use in this part.

Next, you must create a controller PagesController for the web pages you will be creating. The following command will do this for you:

Note that, unlike the demo video, you will not specify any controller actions (e.g., home) at this point.

Once you have completed this step, commit the current version of the code to your local repo, and push the changes to the remote GitHub repo. Make note of the commit has for this commit. You will need to report it in Step 4 below.

Step 3. Create web pages

The MVC view demo shows similar steps to the ones you’ll use in this part.

Next, you must create two web pages:

  1. Personal profile page. This page should present fun info about yourself and your interests. Be creative in designing your page, but follow these constraints:
    • Your name must be displayed prominently.
    • The URL path must be your UofM email username (e.g., mine would be http://localhost:3000/sdflming).
    • You must include a picture of yourself.
  2. Software review and discussion page. The page should present your review of a piece of software you’ve used. Each teammate must do a different piece of software. Again, be creative, but follow these constraints:
    • The title of the software must be prominently displayed.
    • Your score out of 5 stars must be prominently displayed.
    • A picture related to the software must be included.
    • Some basic data about the software must be included, such as (but not limited to) the maker, the year of release, and supported OSs.
    • Text detailing your review.
    • A mock form that allows visitors to leave feedback; however, this form will just be for show and will not actually work. The form must contain each one of the following form elements at least once (but may contain more): a (short) text input field, a (larger) text area field, a radio button with at least 3 options, a drop-down list with at least 3 items, and a button.

For each of your pages, the page must use each of the following HTML tags at least once (again, some creativity may be required on your part to work all of these in):

For each of your pages, the page must use each of the following Rails view helper methods:

For the form part of your software-review page, you must use each of the following HTML tags:

Your two pages must use these tags in noticeably different ways (i.e., the two pages cannot look too similar). Also, all teammates’ pages must look noticeably different from each others’.

When you create your pages, add the appropriate routes, controller actions (i.e., in PagesController), and ERB views.

Once you have completed this step, commit the current version of the code to your local repo, and push the changes to the remote GitHub repo. Make note of the commit has for this commit. You will need to report it in Step 4 below.

Step 4. Create a release in GitHub and submit your work

Before you can submit, you must have pushed all your commits into the master branch of the remote GitHub repo. You may use the GitHub repo’s web interface to inspect the commit log to make sure that everything has been pushed.

To submit your work, you must create a release. You can do this using the GitHub repo’s web interface. From the main repo page, follow the releases link to the create a new release. Set the tag version to hw3v1 and the release title to Homework 3, version 1. In the release description, enter the following, replacing hash1, hash2, etc. with the appropriate commit hash:

Step 1: hash1

Step 2: hash2

Step 3: hash3

If you discover that you’ve made a mistake in your release, you may create additional releases, incrementing the version with each new release. For example, if the above release needed fixing, the fixed release would have the tag version hw3v2 and the release title Homework 3, version 2.

Finally, you must submit the URL of your final release to the appropriate eCourseware dropbox.

To grade your work, I will download the appropriate release, and run it on my machine.

Rubric

Total points: 100

Below, the top-level number is the items total point value. If an item is not submitted at all or it is irredeemably broken, 0 points will be awarded for that item. The sub-bullets indicate standard deductions for errors in a submitted item. The deduction list below may not be complete because there may be mistakes that we did not expect. The deduction for an unexpected mistake will be assessed at the time it’s discovered and will reflect how severe the instructor thinks the mistake is.

© Scott D. Fleming 2019 • Made with GitHub Pages and Markdown