Skip to content

Latest commit

 

History

History
42 lines (30 loc) · 2.66 KB

spec.md

File metadata and controls

42 lines (30 loc) · 2.66 KB

Specifications for the Sinatra Assessment

Provided by Flatiron School

Specs:

  • Use Sinatra to build the app Built using the Corneal gem with Sinatra, ActiveRecord, and SQLite3. Deployed on Heroku with PostgreSQL.

  • Use ActiveRecord for storing information in a database Utilizes ActiveRecord CRUD macros to persist records in a database.

  • Include more than one model class (e.g. User, Post, Category) Contains a User class and a Notes class.

  • Include at least one has_many relationship on your User model (e.g. User has_many Posts) A User instance has_many Note instances.

  • Include at least one belongs_to relationship on another model (e.g. Post belongs_to User) A Note instance belongs_to a User instance.

  • Include user accounts with unique login attribute (username or email) User accountsh ave unique usernames, as well as other validations.

  • Ensure that the belongs_to resource has routes for Creating, Reading, Updating and Destroying The Notes resource has full CRUD abilities. The User resouce has create, read, and update abilities available in the view; there is an action in the controller for deleting, as well, but deleting a User is not currently available for users.

  • Ensure that users can't modify content created by other users Since the point of the app is to be collaborative, users have the ability to Copy another user's note, but they cannot directly edit it. It is a planned feature to include a git-like collaborative workflow, where users can push their versions of notes into the head/origin note.

  • Include user input validations Includes input validations for User model, specifically requirements on username uniqueness, password length, and terms of service acceptance.

  • BONUS - not required - Display validation failures to user with error message (example form URL e.g. /posts/new) Uses user.errors.messages to generate @failure_message and @success_message in the views when appropriate.

  • Your README.md includes a short description, install instructions, a contributors guide and a link to the license for your code Readme includes links to the Code of Conduct and the Contributors Covenant, as well as information to immediately contribute using Gitpod.

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