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 aNotes
class. -
Include at least one has_many relationship on your User model (e.g. User has_many Posts) A
User
instance has_manyNote
instances. -
Include at least one belongs_to relationship on another model (e.g. Post belongs_to User) A
Note
instance belongs_to aUser
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. TheUser
resouce has create, read, and update abilities available in the view; there is an action in the controller for deleting, as well, but deleting aUser
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