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