Change default POST method route for artifacts/(:any) from update to store
Add clean_rating, is_valid_ip, and is_valid_rating function to database helpers
Add add() method to rating_model. Different from default insert as 1) doesn't take data array, 2) automatically set status to 1, and uses MySQL's INET_ATON() on the ip address.
Add store() method to artifacts controller and update documentation for update90 method.
Change route for artifacts/(:any) to artifacts/(:num), making conditional routing based on request method of POST instead of GET, and add checking for special _method to route 'PUT' requests to the update() method of the controller
Add update() method and modify add() method to accept optional  param from update() method.
Update update() method to update the database
Modify add() and update() methods to rename  param to  for clarity
Modify session configurations. New cookie name. Expire on close. Encrypt cookie. Use Database. etc...
Set sessions libary to autoload
Set general helpers to autoload
Explicitly load database helper. Add validation property and getter method for form validation.
Add insert_into__POST() function to controller helpers
Add form validation to add() and update() methods. Add logic to stash and unstash validation errors and form inputs in the event of validation errors so they can survive the redirect.
Change call to validation_errors() to echo .
Move add() and update() methods from artifacts controller to new ratings controller
Modify routes to make them simplier and, perhaps, more RESTful
Modify update() controller to reflect that  and  now come from the URL
Modify artifacts controller and rating form view to allow form action to be set by controller
modifications to add timestamps to artifacts and ratings tables