CodersInk is a review website hosted at https://codersink.herokuapp.com/tattoos. The application was designed and built by the tics project team during the Fall 2015 cohort at Launch Academy (http://www.launchacademy.com/).
- The ability to add a tattoo to be reviewed.
- The ability to rate the tattoo and to optionally comment on it (i.e. write a review).
- The ability to designate (and remove) a tattoo as a favorites. Only the user has access to the user's list of favorite tattoo.
- An email is sent to the owner of a tattoo when a new review is posted about it.
- The ability to upvote or downvote a review. A user can only upvote or downvote once and can change their vote from up to down. This feature utilizes AJAX so that a complete page reload isn't necessary.
- The ability to upload a profile photo (developed with Carrierwave). A default photo is used if the user does not upload one.
- The ability to search for items.
- A sign up and authentication system for users (developed with Devise).
- An admin role. Admins are able to delete comments or items if they are deemed to be inappropriate. Access to some pages are restricted to the admin role.
- An average review rating (the underlying method, developed using ruby, checks all reviews belonging to the tattoo).
- A top 6 page featuring the most highly rated tattoos.
- Pagination (developed with Kaminari).
- Infinite scroll for the index page (developed with Javascript).
CodersInk was developed in Ruby on Rails. Initial setup was done using the make_it_so gem (https://github.com/LaunchAcademy/make_it_so).
Also used during the application development
- Foundation (http://foundation.zurb.com/) was used for css styling.
- Devise (https://github.com/plataformatec/devise) was used for authentication.
- Carrierwave (https://github.com/carrierwaveuploader/carrierwave) was used for avatar image handlne.
For development tasks such as running benchmarks or testing, you need to clone the repository and install bundle. All required gems are listed in the Gemfile.
Install bundle.
git clone [email protected]:caseykim/coders_ink.git
cd coders_ink
bundle install
The following gems were used to develop and run unit and feature tests:
- RAKE (http://rake.rubyforge.org/)
- RSpec (http://rspec.info/)
- selenium-webdriver (https://github.com/seleniumhq/selenium)
- Capybara (https://github.com/jnicklas/capybara)
- shoulda-matchers (http://matchers.shoulda.io/)
- valid_attributes (https://github.com/bcardarella/valid_attribute)
To prepare for testing, run:
rake db:test:prepare
To run all test files, run:
rake
You may specify an individual test file to run using rspec:
rspec <full test name>
For example:
rspec spec/features/user_views_user_detail_spec.rb
Note that some feature testing requires the use of Firefox, which must be located in the user's application directory.
The MIT License (MIT)
Copyright (c) 2014 Petka Antonov
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.