GithubHelp home page GithubHelp logo

francoasdev / art-book-app Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anastassia-b/art-book-app

0.0 0.0 0.0 2.73 MB

๐Ÿ–ผ ArtBook is a full-stack web app for exploring art portfolios. Ruby on Rails, PostgreSQL, React+Redux.

Home Page: https://artbookapp.herokuapp.com/#/

JavaScript 33.00% Ruby 53.99% CoffeeScript 0.91% CSS 6.71% HTML 5.39%

art-book-app's Introduction

ArtBook

tested with rspec tested with 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.

# 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.

render() {
  const project = this.props.project;
  return (
    <div>
      <div className="project" key={project.id}>
        <section onClick={this.openModal.bind(this)}>
          <img className="thumbnail" src={project.thumbnail_url}/>
        </section>
        <section className="thumbnail-info">
          <span className="project-title">{project.title}</span>
          <Link to={`/users/${project.user_id}`}
                className="artist-name">{project.user}
          </Link>
        </section>
      </div>

      <Modal
        contentLabel="Modal"
        isOpen={this.state.modalOpen}
        onRequestClose={this.closeModal}
        style={style}>

        <div className="x-button">
          <button onClick={this.closeModal}><i aria-hidden="true"></i>
          </button>
        </div>
        <div className="project-detail">
          <ImageIndexContainer project={project}/>
          <ProjectInfoContainer project={project}/>
        </div>
      </Modal>
    </div>
  );
}

Comments and Likes

Users can comment and like projects.

In-Progress

  • In progress: setup Continuous Integration (Jenkins build passed)
  • In progress: Deploy through AWS server and remote Postgres database.
  • 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.

art-book-app's People

Contributors

anastassia-b avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.