Sketch portfolio application built with an AngularJS front end and Rails back end.
Ruby HTML CSS JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app Update layout template Apr 11, 2018
bin Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
config Update devise comments Apr 11, 2018
db Update devise comments Apr 11, 2018
lib Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
log Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
node_modules file changes Jun 12, 2016
public Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
spec Replace deprecated success syntax in controller specs Apr 11, 2018
tmp Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
vendor Run rails app:update and add additional files from generated test pro… Nov 21, 2017
.gitignore Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
.rspec Configure rspec documentation style for output Feb 13, 2017
.ruby-version Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
Gemfile Update back end dependencies Jun 21, 2018
Gemfile.lock Update back end dependencies Jun 21, 2018
LICENSE Create LICENSE Mar 20, 2017
NOTES.md added notes Sep 30, 2016
README.md Update README Feb 1, 2018
Rakefile Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
bower.json Modify styling and implement sticky footer Jun 13, 2017
config.ru Regenerate application with Rails 5.2 to fix errors Apr 11, 2018
package.json Run rails app:update and add additional files from generated test pro… Nov 21, 2017
readme_sketchbook.jpg Update README with screenshot Feb 1, 2018

README.md

Sketchbook

Sketchbook is a web application used to help artists manage and share their sketches, and to allow users to search and explore the sketches of others. It is built with an Angular 1 front end and a Rails serialized JSON back end.

screenshot

Demo App

You can see a demo version of the application deployed to Heroku here: https://angular-sketchbook.herokuapp.com/

Functionality

Users can create an account, upload images (sketches), and view the sketches of other artists through searching and filtering based on tags. With Angular, it works as a single page application and communicates with the back end asynchronously.

Application Info

Install Instructions

To get it running in development, install dependencies from the Gemfile via Bundler by running bundle install. Front end dependencies are managed with Bower, but Bower dependencies are checked in to git under vendor/assets/bower_components. If you want to update them, you can run bundle exec rails bower:update. Bower components are included in the JavaScript manifest file to add them to the Rails asset pipeline, then included in the Angular app.js file. Styles are included in the CSS manifest file.

Since the application uses PostgreSQL, you need to have it installed locally on your machine with a user that has table creation privileges. You can get further instructions here. If you'd rather not bother with PostgreSQL, you can use an older version of the application that uses SQLite3 here.

Create the database with bundle exec rails db:create and run migrations with bundle exec rails db:migrate, then run bundle exec rails db:seed to populate the database with sample artists and sketches.

For production, the application is configured to use AWS S3. You can read more about setting up S3 here (with Heroku).

Testing

The back end test suite is developed using Rspec via the rspec-rails gem with shoulda-matchers. Model factories are set up with FactoryGirl.

Rspec tests are located under the /spec directory. In order to run tests, run bundle exec rspec followed by an optional folder or file under the /spec directory (for example, if you only want to test models, run bundle exec rspec spec/models).

More Info

You can read a blog post going further into the application here.

License

This project is open source under the terms of the MIT License.