Module 3

MVC/Reviews Site

Module Resources

Opinions. You know the saying...everyone has one. And the Internet has made them easier to consume, or ignore.

Acquisitions, Inc. has many, many products from its years of, well, acquiring things. They have asked you to build a reviews site for some of their current products. The data gathered will help them gain insight into their customer base and the products they have come to enjoy...or enjoy less.

Acquisitions, Inc. requires:

  • Development of a MVC Web Application by a team that practices agile, utilizes test driven design, and values clean code

  • Appropriate use of Git and access to your application on GitHub

  • Useful instructions in the form of a README.md file

  • Ability for Users to:

    • View reviews on products
    • Create, update, and delete their own reviews

Sprint 1

Prototype pages for:

  • All:

    • Reviews
    • Categories
    • Tags
  • Two single pages for each:

    • Review
    • Category
    • Tag
  • Hard code all data and make sure all links connect to the right pages

  • Make HTML pages for each of these entities and add CSS styling using BEM syntax.


Sprint 2

Materials

Version Control

MVC and Server Side Rendering

Node

Node packages

Advanced Jest

Sending Requests from the Browser

Resources

Goal

  • Use static resources to start building out each section of the MVC structure
  • Simulate a data layer that will provide

Model

Use the data that you put in your static pages to guide the creation of all of your models. Now that you have pages for two Reviews, two Categorys, and two Tags, you can actually use that data to inform excatly what fields you model Objects will need

View

To build our view layer, all we need to do is make templates out of the static pages that we created and convert them to Handlebars files

Controller

For our controller layer we need to have two separate pieces, routers and actual controllers. The routers will handle the actual directing of traffic, or more literally, executing specific tasks based on the URI endpoint that are requested from the user. The controllers will encapsulate the actual logic that is executed.

Data Layer

Create a class that correponds to each Model element that will contain a collection of example elements along with methods to retrieve them in specific ways (i.e. findAll, findById, etc.). Naming should reflect the data that is held in that service. (i.e. ReviewService)


Sprint 3

Materials

Goal

  • Include and incorporate an actual database to store our data.
  • Maintain all current Objects and add support for database management

Articles


Sprint 4

Goal

  • Make it so a user can add multiple tags at one time
  • Add ability to add comments to reviews. Comments should be listed on a review's page after the review's content.

Sprint 5

Day 1

  • Finish features
  • Finalize test coverage

Day 2

  • Bug fixes
  • Finalizing styling

Day 3

  • Presentations
  • Reflection