https://github.com/anastassia-b/art-book-app
  
  
    🖼 ArtBook is a full-stack web app for exploring art portfolios. Ruby on Rails, PostgreSQL, React+Redux. 
    https://github.com/anastassia-b/art-book-app
  
jest postgresql react-redux rspec ruby-on-rails single-page-app
        Last synced: 6 months ago 
        JSON representation
    
🖼 ArtBook is a full-stack web app for exploring art portfolios. Ruby on Rails, PostgreSQL, React+Redux.
- Host: GitHub
 - URL: https://github.com/anastassia-b/art-book-app
 - Owner: anastassia-b
 - Created: 2017-07-17T04:00:49.000Z (over 8 years ago)
 - Default Branch: master
 - Last Pushed: 2019-03-22T06:06:08.000Z (over 6 years ago)
 - Last Synced: 2025-03-30T06:01:41.828Z (7 months ago)
 - Topics: jest, postgresql, react-redux, rspec, ruby-on-rails, single-page-app
 - Language: Ruby
 - Homepage: https://artbookapp.herokuapp.com/#/
 - Size: 2.67 MB
 - Stars: 22
 - Watchers: 1
 - Forks: 1
 - Open Issues: 0
 - 
            Metadata Files:
            
- Readme: README.md
 
 
Awesome Lists containing this project
- Open-Source-Ruby-and-Rails-Apps - art-book-app - 🖼 ArtBook is a full-stack web app for exploring art portfolios. Ruby on Rails, PostgreSQL, React+Redux. 🔥 🚀 (Happy Exploring 🤘)
 
README
          # ArtBook
[](https://github.com/rspec/rspec-rails)
[](https://github.com/facebook/jest)
https://artbookapp.herokuapp.com/
ArtBook is a portfolio showcase web application. It is a full-stack app built using a `Ruby on Rails` backend, `PostgreSQL` database, and `React/Redux` front-end architecture.
## Planning & Design
Design documents can be found in the wiki!
## Technologies
### Backend
* Ruby On Rails, PostgreSQL, Heroku, Cloudinary
  
  
  
   
   
### Frontend
* React/Redux, HTML5, CSS3/SCSS, npm, webpack
  
   
  
  
### Testing
* RSpec Rails, Jest
## Features & Implementation
1. **Users:** A user can sign up, log in, and log out. Each user has a profile.
2. **Projects:** Users own many projects, which are composed of images. Images belong to a specific project. Projects can be explored on the dashboard.
3. **Comments:** Users can comment on projects and delete their own comments.
4. **Likes:** Users can like and unlike projects. A users liked projects are displayed on their profile.
```ruby
# User Model Associations
class User < ApplicationRecord
  # ...
  has_many :projects, dependent: :destroy
  has_many :images, through: :projects, source: :images
  has_many :comments, dependent: :destroy
  has_many :likes, dependent: :destroy
  has_many :liked_projects, through: :likes, source: :project
  # ...
end
```
### Secure Authentication
* BCrypt for password-salting and hashing for a secure authentication system.
* Guest / Demo Account
### Modals
Modals were used to implement the Login/Signup session forms, as well as project views.
```jsx
render() {
  const project = this.props.project;
  return (
    
      
        
          
        
        
          {project.title}
          {project.user}
          
        
      
      
        
          
          
        
        
          
          
        
      
    
  );
}
```
### Comments and Likes
Users can comment and like projects.
## In-Progress
- [x] In progress: setup Continuous Integration (Jenkins build passed)
- [ ] In progress: Deploy through AWS server and remote Postgres database.
- [x] In progress: Configure Segment
## Future Features
#### Infinite scroll
This will allow users to keep scrolling to retrieve more content, instead of fetching it all at once.
#### Follows and User-specific Feed
Users will be able to follow each other, allowing for a customizable feed per user.
#### Search by content (tags)
Categorizing projects will allow users to search and filter through projects.
#### Upload projects
Users will be able to upload, edit, and destroy their own projects through the API.