Giter VIP home page Giter VIP logo

brew-buddies's Introduction

Brew Buddies

Description

Brew Buddies is a hybrid review site and social media for lovers of beer, breweries, barley, and buddies. This application allows you to search nearby breweries and see user reviews, or take up a pen (so to speak) and write your own! You can also add breweries to your Favorites list, so no matter how good a time you have, you'll never forget your favorite hangout hops spots. If a review catches your eye, save it to your favorites so you can try it next Saturday night. You can also add Friends, who you might want to share a pint with. The site display is as fresh and fun as your favorite distillery pull. Please drink responsibly! Cheers! ๐Ÿป

Table of Contents

Installation

No installation required! Deployed link here.

Usage

The landing page of the website presents a list of recent brewery reviews. For full functionality, a user with have to sign up and login. Once logged in, users can search breweries by postal code and is presented with a list of breweries in that area and a map display with their locations. A user can click on any brewery's link to see its page. It will display the brewery info, as well as any available reviews and its average star rating. A user can click on the "Add to Favorites" button to save a list of breweries. They can also add a review of their own. Users can also add another user as a friend to see their reviews or favorites. Please see below for screenshots!

Contributors

Roadmap

Content will be added and adjusted as new coding projects are available! Some projects may phase out over time as contrubitors' work becomes more specialized.

  1. user experience:
    • users can save breweries to their wishlist for future travels and exploration
  2. site quality:
    • add validators on sign up for birthdate (ages 21 and up!)
    • display total number of reviews and average rating on single brewery page
    • custom Ant Design Theme using craco
    • maximize homepage OpenBreweryDB API call and incorporate pagination
  3. future feature(s):
    • cocktails
      • search cocktail recipes with names, ingredients, and instructions through api-ninjas.com/api/cocktail
      • users can save favorite cocktail recipes
      • users can save custom cocktails
    • interaction
      • user actions save to profile feed where friends can add "likes" and/or "comments"
      • add geolocation tools to promote local micro breweries, distilleries, etc.

Credits

Documentation referenced:

U. Penn Bootcamp instructor(s):

Tutor(s):

  • Alexis San Javier GitHub
    • making use of client-side auth utils and storing in state variable
    • rendering user review to Single Brewery page
  • ChatGPT - basic debugging

Tutorials referenced:

  • Tim Mousk - get element by ID with React useEffect

Artist(s):

Technologies & Tools used:

  • VS Code
  • React
  • GraphQL, Node.js, Express.js, Apollo
  • MongoDB, Mongoose
  • Bcrypt, JWT, Dotenv
  • Ant Design, Granim.js
  • BSON
  • Heroku
  • Google Maps API
  • Open Brewery DB API

License

Please refer to the LICENSE in the repo:

License

Features

  • Search breweries by postal code
  • See user reviews on each brewery
  • Write a review with a star rating
  • Add breweries to a favorites list
  • Add and remove friends
  • View user profiles with their reviews

Screenshots

Home Page with Reviews Brewery Search Map Display Brewery Page

brew-buddies's People

Contributors

learneddr avatar miacias avatar msaylorphila avatar oconnell-coder avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

brew-buddies's Issues

MVP: addFriend()

Back end:
Make mutation to add friend
Make resolver to add friend
Front end:
Make mutation in mutation.js to add friend

make test Brewery API calls

  1. be able to search a zip code and return X number of locations
  2. be able to search a street address and return X number of locations
  3. be able to fetch brewery info based on name/ID/etc.

Navbar Highlight

  • Highlight page you are on (instead of default 4 option)
  • hover effect

MVP Populate Reviews

On the SingleBreweryPage, find all reviews with matching breweryId and append them on the screen

Google Maps API

Figure out if one can query the api for breweries specifically
if not// feed brewerydb into google api?

Make a profile page on front end

Make a profile page on front end
see wireframe
3 most recent favs
3 most recent wishlist items
All reviews newest to oldest
Add friend button / remove friend button
Button to see friends (past mvp)

addFavBrewery()

Back end:
Make mutation to add fav brewery
Make resolver to add fav brewery
Front end:
Make mutation in mutation.js to add fav brewery

GoogleMaps: create custom map pin (not MVP)

consider SVG of a beer bottle that has little to no details (i.e. no label, words, images), maybe just a highlight showing the shine of the bottle if anything?

Fred edit: if I remember correctly, this feature is not very difficult

addWishBrewery (Not MVP)

Back end:
Make mutation to add wish brewery
Make resolver to add wish brewery
Front end:
Make mutation in mutation.js to add wish brewery

Search page for map

Search page for map
edit: We were thinking placing the map on pages/results.js on the right on the brewery cards when they populate

removeWishBrewery (Not MVP)

Back end:
Make mutation to remove wish brewery
Make resolver to remove wish brewery
Front end:
Make mutation in mutation.js to remove wish brewery

MVP: Navbar

MVP

  • navbar link to search page (results.js)
  • move "Logout" button to navbar

Not MVP

  • Make navbar with searchbar

client-side add review

  • click add review button in SingleBreweryjs and review form appears
  • click cancel and form disappears
  • fill out form and click save: 1) review is saved to User and Brewery, 2) review card appears on page

GoogleMaps: Create test map

  1. make a map on a React page, such as Map.js
  2. center the map on a location (set location to a variable so the user's home zip code can be used by default, else a standard address in USA)

addReview()

Back end:
Make mutation to add review
Make resolver to add review
Front end:
Make mutation in mutation.js to add review

Footer

Footer with linkedins/githubs

MVP: removeFriend()

Back end:
Make mutation to remove friend
Make resolver to remove friend
Front end:
Make mutation in mutation.js to remove friend

removeFavBrewery()

Back end:
Make mutation to remove fav brewery
Make resolver to remove fav brewery
Front end:
Make mutation in mutation.js to remove fav brewery

Signup

Finalize signup form and connect to back end

hide signup when logged in

client side logic

refactor signed in / signed out menu item logic. currently swaps log in and log out

map bug fix

a few minor bugs that can be addressed with tutors/instructors:

  1. if user searches a zip code that has a brewery THEN searches a second zip that does not have a brewery, the map still shows and is centered on the previous search location
  2. if the database returns a latitude and longitude that are null, google maps makes a map marker in the middle of the ocean just off the coast of Africa lol

editReview()

Back end:
Make mutation to edit review
Make resolver to edit review
Front end:
Make mutation in mutation.js to edit review

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.