tjshiu / eatsy

:tangerine: An Etsy inspired, e-commerce food website where people sell and buy homemade food

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Eatsy

Live Demo

Eatsy is a shopping website for food. This was inspired by Etsy. It uses Rails/PostgreSQL backend with React.js and Redux on the frontend.

The project was built within a two-week timeframe. I do plan on continuing with the project and making improvements over time.

Features

  • Secure frontend to backend user authentication using BCrypt.
  • Users can create, edit, and see products/food that they have made.
  • Users can make purchases to products/food and see their own shopping cart.
  • Users can also search for products by their name.
  • Products/food support images.

Homepage

Sign In and Register

Sign In & Register

Search

Search

Add to Cart

Add to Cart

Shopping Cart

Shopping Cart

User's Profile

Profile

Editing A Product

Edit a Product

// This will prevent people from hacking to the edit page. If they go to the product show page
// and add edit top of the website.
const ProtectedToOwner = ({ component: Component, path, loggedIn, isOwner, exact, redirectToModal }) => (
  <Route
    path={path}
    exact={exact}
    render={props => {
      if (loggedIn && isOwner) {
        return <Component {...props} />;
      } else {
        return <MustBeOwner />;
      }
    }}
    />
);

Project Design

Eatsy was designed to be functional and appealing. Food items were chosen based off of images found through Unsplash. The focus was to make the site bug free so that you can see it

Technologies

Rails was chosen due to the short time frame. Because this project is a small-scale, I began building things in a relatively short time, so convenience and speed was prioritized over scalability. The chosen technologies (Heroku, Rails, etc) were determined to be adequate for the amount of material.

Frontend Redux states are set up in so that there were separate reducers and actions for products, users, errors, and shopping cart items. This would help normalize the state and with each action we see changes accordingly.

In addition to the included packages, Cloudinary was used to upload product images.

Additional Resources

Possible Future Features

In the future I would like to add:

  • Comments/Reviews
  • User is able to change their image
  • Add Loading

About

:tangerine: An Etsy inspired, e-commerce food website where people sell and buy homemade food

https://eatsyapp.herokuapp.com/#/


Languages

Language:JavaScript 40.8%Language:Ruby 39.1%Language:CSS 16.0%Language:HTML 3.3%Language:CoffeeScript 0.8%