victorhoang07 / Oobr-Eats

https://oobr-eats.herokuapp.com/#/
0 stars 0 forks source link

Oobr Eats

Live Link: Oobr Eats

Oobr Eats is an Uber Eats inspired single-page website. You can browse and order from restaurants located in New York, New York.

website

Features

Restaurants View

The restaurants are fetched upon login and acts as the main page. There will be a selection of 20 restaurants to view from. You are able to filter restaurants by price range and categories.

    {Object.values(props.restaurants).map((restaurant) => {
        if (restaurant.description.includes(props.filter) || restaurant.pricing_rating === (props.filter)) {
        return (
            <div className="restaurant" key={restaurant.id} onClick={() => restaurantRoute(restaurant.id)}>
                <h2 className="restaurant-index-text">{props.filter} </h2>
                <img className="restaurant-index-img" src={restaurant.img_url}/>
                <div className="restaurant-index-info">
                    <p className="restaurant-index-name">{restaurant.name}</p>
                    <div className="restaurant-index-rating">{restaurant.rating.toFixed(1)}</div>
                </div>
                <div className="delivery-fee">$0.69 Delivery Fee</div>
            </div>
        )} else if (props.filter === undefined || props.filter === null) {
            return (
                <div className="restaurant" key={restaurant.id} onClick={() => restaurantRoute(restaurant.id)}>
                    <h2 className="restaurant-index-text">Popular near you </h2>
                    <img className="restaurant-index-img" src={restaurant.img_url} />
                    <div className="restaurant-index-info">
                        <p className="restaurant-index-name">{restaurant.name}</p>
                        <div className="restaurant-index-rating">{restaurant.rating.toFixed(1)}</div>
                    </div>
                    <div className="delivery-fee">$0.69 Delivery Fee</div>
                </div>
            )
        }
    })}

Filtering by category:

video

    const renderCategories = () => {
        return (
            <div className="categories-container">
                {Object.keys(CATEGORIES).map((category, i) => {
                    return (
                        <button onClick={() => handleFilterClick(category)} key={i} className="category-button">
                            <img className="category-icon" src={CATEGORIES[category]}/>
                            <div className="category-text">{category}</div>
                        </button>
                    )
                })}
            </div>
        )
    }

Restaurant Show

Restaurant

Each restaurant will have a range of seven to nine menu items you can view from. An item modal will show when clicked and which will provide the user the option to add the item to their cart.

Cart and Checkout

Once Users have finalized their cart, they can checkout and process their transaction.

Technologies

Frontend: React and Redux

Backend: Ruby on Rails with a PostgreSQL database

Other: Google Maps JavaScript API, Amazon AWS S3, Javascript, Tiny-Carousel Library

Hosting: Oobr Eats is hosted on Heroku

Future Plans

Credits

All images are sourced from Uber Eats and respective restaurants.