Welcome, Guest User :: Click here to login

Logo 67272q

67-272 :: Phase 3: Basic Views and Controllers

Overview

This phase we will continue our project to develop a foundation for the Creamery system. In this phase, we will focus our efforts on building an initial interface for the Creamery online. This phase will constitute 14 percent of your final course grade and is broken down into the following four components:

  1. Implementation of Site Design: A basic design for the site using CSS and appropriate images should be created. Unless students have strong CSS skills and already have a series of stylesheets they like to work with, students should use a CSS framework like MaterializeCSS or Foundation or Bootstrap to build their application. (We strongly encourage the use of MaterializeCSS, but not a requirement.) At the same time, it is important to customize the framework for your own purposes; expect a grade penalty if you pretty much stick with all the defaults the framework provides. A home page for the application needs to be set up with some appropriate content, but design decisions about the exact contents are not being graded in this phase. The student's name must appear on the bottom of every page in the footer (name should be listed as webmaster or designer). The information layout for customer, address and order views as well as add/edit forms for these models should be appropriate. See handout for additional issues raised by our limited set of models in this phase

  2. CRUD Functionality Established: In this phase, you will continue to use the phase 2 data model, which is a simplified system. In addition, a list of high level uses cases is provided below to assist. A web-based interface for doing all CRUD operations for the entities must be up and working. The cucumber tests provided must all pass (levels 0-4). To a large extent, this section will be assessed using tests discussed below and carries the bulk of the grade in this phase.

  3. Unit and Functional Testing: All models along with all unit and functional tests (given as a solution to the previous phase) must be fully working. Since you were given a solution, expect a heavy penalty if this solution is not implemented and any unit tests fail. You are free to add new methods to the models, but be sure they are fully tested so your coverage does not fall below 100 percent.

  4. Coding Style: All code must be appropriately organized. What that means at this stage is the following: Indentation should be used consistently to make code readable. Comments showing organization should be present and explaining difficult code should be used when/if necessary. All business logic should be in models, not views or controllers.


Starting the project

Starter code is available for you on Phase 3 Canvas Assignment area. It is recommended that you begin with this code for two reasons. First, it has a complete set of models that are fully-tested and known to work for the task at hand. The second is that the code contains a set of cucumber tests that will be used to assess a large portion of the app's CRUD functionality.

It is also strongly encouraged that you read the README file with this git repo as it has directions for running tests and populating the database with realistic data for you to experiment with.


Running Cucumber tests

In case you didn't read the README, in this phase we will be using cucumber tests to verify that much of the basic CRUD functionality is in place. These are not comprehensive, but should cover a lot of the essential read use cases and, along with controller tests, will count for a large portion of the grade in this phase (over half the grade). The following command will run these tests:

  bundle exec cucumber

Note that you will need to run rails db:test:prepare before your first cucumber test. If your design is very different and not able to pass the cucumber tests, discuss it with Prof. H to see if you are eligible for an exception. (All exceptions to cucumber tests must be granted in advance of the project's due date.)


Finishing the project

Your project will be turned in via canvas as a zipped folder and git hub private remote url -- at 11:59pm on April 2,2020 . The private github url should be shared with Prof.Houda[username: ladyhodhod] and Preetha [username: preethagopinath] .We will access your Phase3 solution from this github repository.

Instructions on adding us as a collaborators in github: https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository

You should try to access the starter code early in this phase; if you have not posted any code to the remote repository prior to 26th March 2020, and run into access issues in the last few days of the project there will not be much grace given and you can expect a stiff grade penalty. The solution for this phase will be released on the next day -- no late assignments will be accepted after solutions are released.

Again, if you have questions regarding the turn-in of this project or problems downloading any of the materials below, please post them on Piazza or ask someone well in advance of the turn-in date.Waiting until a few days before it is due to get help is unwise -- you risk not getting a timely response that close to the deadline and will not be given an extension because of such an error.

Additional Information and Supporting Materials:

High Level Use Cases for Phase 3

 

Due Date: April 02, 2021

Weight: 14.0