Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 15 days 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 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-22T06:06:08.000Z (almost 6 years ago)
- Last Synced: 2024-11-29T12:23:47.959Z (22 days 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: 21
- Watchers: 2
- 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
[![tested with rspec](https://img.shields.io/badge/tested%20with-rspec-brightgreen.svg)](https://github.com/rspec/rspec-rails)
[![tested with jest](https://facebook.github.io/jest/img/jest-badge.svg)](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.