Welcome, Guest User :: Click here to login

Logo 67272q

67-272 :: Phase 4: Finishing the A&M Creamery

Overview

In this phase, we will finish our project to develop an online system for the Amazing & Marvelous Creamery.

We will first continue to develop the Creamery system. In this phase, we will have to create models of the remaining entities (Shift, Job, ShiftJob, PayGrade, and PayGradeRate) given to you in the complete ERD, in addition to the User model. You will also modify Store, Assignment and Employee. In addition, you will have to write unit tests for all models.
Furthermore, The web-based interface for doing all CRUD operations for the entities must be up and working. a list of high level uses cases is provided below to assist.

This phase will constitute 14 percent of your final course grade and is broken down into the following three components:

1. Creation of Remaining Models: Models for all the entities listed in the documentation below need to be created. Below is a specification guide to essential methods each model must have; those methods have to be fully implemented. Any revisions to previous models must be made as specified in the documentation.

2. All CRUD Functionality Established: In this phase, you will develop the full A&M Creamery web-based application composed of all interfaces for doing all CRUD operations for the entities. All interfaces must be up and working.

3. Unit and Functional Testing: Unit tests for all methods in all models are provided for you and must be fully working. You will have to write your own functional tests for all controllers and actions. For Employee, Store and Assignment controllers, feel free to recycle the code provided for you in Phase 3.

We will check to make sure there is 100 percent code coverage for unit tests using the simplecov gem used in class and in labs. All models in this phase need complete coverage. Be aware there are steep penalties for less than 100 percent coverage and no credit at all for less than 90 percent coverage.

4. Authentication and Authorization: You will have to define authentication and authorization mechanisms into your application, using sessions and ability. For instance, Administrators have complete authority to do whatever is needed on the site. Other actors will have restricted access as specified in the narrative.

5. Implementation of Site Design: An appropriate visual design for the site using Materialize CSS framework and appropriate images should be created.

When users log into the application, they should go to a home page that provides all the key information a user would immediately want access to (or have access to it with just one click). An appropriate way for each type of user to navigate throughout the site must be clearly evident and allow easy transitions to other parts of the application. A lot of the grade this phase will be on the quality of interactions you design for each of the users and how well you implement the design concepts discussed in class. Below is a list of high-level use cases to guide you.

Like last time, semi-static pages for about, contact, privacy and the like must be in place. No 'lorem ipsum' style text is accepted on any page; text should be appropriate for the page. The student's name must appear on the bottom of every page in the footer (name should be listed as webmaster or designer).

6. 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.

Other notes

A few other notes students should be aware of:

  • If a table has no content, then give an appropriate message rather than displaying an empty table.
  • No 'geek dates' – format dates in a user-friendly fashion and do so for an American (rather than European) audience.
  • Use a datepicker for dates rather than three date dropdown lists. At the same time, if the computer should know the date (because it is today, for instance) then users probably shouldn't have to enter the date at all.
  • All tables, lists, and select options must be appropriately ordered.
  • Appropriate and clear feedback for the user needs to be given to reduce misunderstanding.
  • Navigation options appropriate for each type of user should be provided.

Starting the project

The starter code provided for this phase contains the unit testing files and controllers from Phase3. All files are available at:

https://github.com/ladyhodhod/Phase4_Starter_code

For the other parts of this phase, you will build on the solution you created for Phase 3 to extend it and include the rest of the models, views, and controllers.

The most important thing is that you start this phase as early as possible. There are more models, controllers, and views to deal with than phase 3 and many more wrinkles to work through.


Finishing the project

Your project will be turned in via canvas as a zipped folder and GitHub private remote URL -- at 11:59 PM on April 23, 2020. The private GitHub URL should be shared with Prof. Houda [username: ladyhodhod] and Preetha [username: preethagopinath]. We will access your Phase 4 solution from this GitHub repository.

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

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.

Important Note:
YOU ARE NOT ALLOWED TO USE THE RAILS SCAFFOLD COMMAND!

Additional Information. Below are links to additional files references above.

ERD for Phase 4
Model Specifications for Phase 4

Database Design for Phase 4

Data Dictionary for Phase 4

High-Level Use Cases for Phase 4

 

Due Date: April 23, 2021

Weight: 14.0