Skip to content

Latest commit

 

History

History
43 lines (30 loc) · 1.95 KB

spec.md

File metadata and controls

43 lines (30 loc) · 1.95 KB

Specifications for the Sinatra Assessment

Specs:

  • Use Sinatra to build the app

    • In Gemfile, Sinatra app is listed (gem 'sinatra')
  • Use ActiveRecord for storing information in a database

  • ActiveRecord is utilized in the app/models (class User < ActiveRecord::Base)

  • Include more than one model class (list of model class names e.g. User, Post, Category)

  • Models included in the project are: User, Vineyard, Wine

  • Include at least one has_many relationship (x has_many y e.g. User has_many Posts)

    • Relationships with model models are as follows:
    1. User: has_many :vineyards, has_many :wines
    2. Vineyard: belongs_to :user, has_many :wines
    3. Wine: belongs_to :user, belongs_to :vineyard
  • Include user accounts

    • A User has a :username and :password_digest to ensure a secure account
    • A User has the option to create a new account and/or login at index page
    • A User cannot progress further into other views pages without being logged_in
  • Ensure that users can't modify content created by other users

    • User is unable to edit/delete content and a rack flash message alerts with a message "You cannot delete another User's Wine"
  • Include user input validations

    • A User will receive successful validations on the views pages utilizing the rack flash gem after input
  • Display validation failures to user with error message (example form URL e.g. /posts/new)

    • A User will be shown various messages on the views pages utilizing the rack flash gem
  • Your README.md includes a short description, install instructions, a contributors guide and a link to the license for your code

    • README provides a thorough explanation of descriptions, usage and contributions

Confirm

  • You have a large number of small Git commits
  • Your commit messages are meaningful
  • You made the changes in a commit that relate to the commit message
  • You don't include changes in a commit that aren't related to the commit message