Git Product home page Git Product logo

whale-hunter's Introduction

Whale Hunter

License badge

Description

Whale Hunter is a beer tracking, search engine and social media app that is built to be your go to for beer discovery. Browse our app and explore new beers to taste while learning more about new beers and the breweries that made them. Save those beers to a "six pack" for referencing later. Share your experiences with your friends and strangers by posting about your experience, sharing your created six packs, and by rating beer by using our innovative Ahab scale.

Deployed url: https://whalehunterbeer.herokuapp.com/

Table of Contents

  1. Installation
  2. Usage
  3. License
  4. Contributing
  5. Tests
  6. Questions
  7. Preview

Installation

In your command line, run the following to install all dependencies to your local repository.

npm install

Once installed create a database using Sequelize by entering the following into your command line.

sequelize db:create

Usage

Open the url (https://whalehunterbeer.herokuapp.com/) in your favorite browser and sign up using the "sign up" tab in the navbar. Once signed in, feel free to browse our database of beers either in full, by brewery or by style. If you need a little guidance, we have supplied a list of some of the popular breweries on the home page. Create a current six pack to add beers to by clicking the "Current Six Pack" tab in the navbar, name the six pack appropriately with the beers you want to add and click "Create Six Pack". When you find a beer you are interested in while browsing, click the "add to my current six pack" button and that beer will be loaded to your six packs.

Also available to the signed in user, is the ability to post to the main page! Click the "Create Post" button and fill out the form to let the world know about your experience with that beer.

PLEASE KEEP POSTS SAFE FOR WORK!

Upload an image with our Cloudinary widget and click the "post" button to share. Users must be of legal drinking age in their country. Please enjoy responsibly. Cheers!

License

None

Contributors

Front End:

Patrick Ceriale - Git Master https://github.com/PatCeriale / [email protected]

Andrew Crow - Project Manager https://github.com/crowandrew / [email protected]

Back End:

Alex Milroy - https://github.com/ajm5099 / [email protected]

Larry Cessna - https://github.com/lbcessna / [email protected]

Questions

Contact us via GitHub/email at https://github.com/PatCeriale / [email protected]

Preview

Home page:

Screen Shot 2020-10-26 at 4 35 58 PM

Beers:

Screen Shot 2020-10-26 at 1 23 24 PM

Beer styles:

Screen Shot 2020-10-26 at 1 23 38 PM

Breweries:

Screen Shot 2020-10-26 at 1 23 55 PM

Post:

Screen Shot 2020-10-26 at 1 28 15 PM

Wireframes

https://www.figma.com/file/4MM8DboPvN99CeTFR8rs1k/Whale-Hunter?node-id=0%3A72

ERD

https://drive.google.com/file/d/1i3BOO3OyxMXEzjMgG5gWlhQIso3t3qk7/view?usp=sharing

Special Thanks

The Whale Hunter team would personally like to thank Craig Patterson for the use of his artwork for our logo. Find him at www.Absorb81.com, or contact him via email at [email protected].

whale-hunter's People

Contributors

ajm5099 avatar crowandrew avatar lbcessna avatar mdragin avatar patceriale avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Forkers

crowandrew

whale-hunter's Issues

Build style page

As a user
I want to browse beer styles
So that I can see styles of beer

Acceptance Criteria

  • List all beers styles
  • Style name as title
  • Description under title
  • If clicked goes to list of beers in that style

Create ERD

As a Developer
I want to create an ERD
So that I can have a good database design

Acceptance Criteria

API Route for search page

*Please only complete if other routes are finished

As a user
I want to view the search page
So that I can find breweries or beer I like

Acceptance Criteria

  • API get route for /breweries
  • gets all beers or breweries from the database base on user enter criteria
  • renders breweries page

Build User Profile Slide Out

As a user
I want a slide-out
So that I can access things associated with my account.

Acceptance Criteria

  • Slide shows when sliding from the left or holding my mouse to the left
  • Shows User Name
  • Shows User Icon
  • Home Button
  • Account Settings Button
  • My Six Packs Button
  • Support Button

Create index.js for Models

As a developer
I want an index.js file
So that I can have it help index my models

Acceptance Criteria

NOTE THIS IS BOILER PLATE AND CAN BE COPIED FROM OTHER PROJECTS

  • require fs
  • require path
  • require Sequelize
  • require basename
  • require process.env
  • require config
  • setup db as empty object
  • setup config if statement
  • setup fs read sync
  • export db

Setup HandleBars

As a developer
I want to quickly build apps
So that I can be efficient with my time

Acceptance Criteria

  • Setup Handlebars
  • Setup main
  • Verify that it works

Created the DB

As a Developer
I want to store my data
So that I can create an amazing app

Acceptance Criteria

  • Setup initial DB
  • Verify that the schema works

Refactor ERD for new app

As a developer
I want an updated ERD
So that I can create a great app with my team

Acceptance Criteria

  • Change ERD to match new app idea
  • Finalize with team

Add Bulma to Project

As a developer
I want to use a CSS Framework
So that I can have a great responsive app

Acceptance Criteria

  • Bulma linked in index.html
  • Review that it works

Model for beer

As a developer
I want a beer model
So that I can store brewery information

Acceptance Criteria

  • create module exports
  • create beer variable
  • create name string type not null greater than 1 character
  • create brewery_id integer type foreign key to breweries table id
  • create description text type
  • create style_id integer type foreign key to styles table id
  • create abv integer type
  • create ibu integer type
  • create rating_id integer type foreign key to ratings table id

Build Account Settings Modal

As a user
I want to see my account settings
So that I can update my user information

Acceptance Criteria

  • Show all user information
  • Edit Button next to each user information field
  • When a field is changed a save button appears in modal
  • When save is clicked it uses the post route to update their information.

Create CSS file

As a Developer
I want a CSS file
So that I can style my app

Acceptance Criteria

  • Create a CSS file
  • Link the CSS file in the main handlebars page

Setup Express

As a developer
I want to use Express
So that I can share my amazing app

Acceptance Criteria

  • Add express to app
  • validate that it is running

API route for browse brewery page

PLEASE READ COMMENTS BEFORE STARTING ON THIS

As a user
I want to view the browse breweries page
So that I can find breweries I like

Acceptance Criteria

  • api get route for all /breweries
  • gets all breweries from database base on user entered city
  • create new brewery
  • update existing brewery
  • delete brewery
  • renders breweries page

Model for employee

As a developer
I want an employee model
So that I can store employee daat
Acceptance Criteria

  • create module exports
  • create employee variable
  • create user_name and string type not null and not less than 1 character
  • create password hidden not null
  • create first_name string type not null greater than 1 character
  • create last_name string type not null greater than 1 character
  • create active BOOLEAN type
  • create role_id integer type FOreign key to role table id

API route for six pack page

As a user
I want to view my six-pack page
So that I can review the beers I want to drink

Acceptance Criteria

  • api get route for /sixpack
  • api get route for a specific sixpack
  • gets all beers that I have added to my six pack
  • Create a new sixpack by giving it a name and adding one beer to it
  • renders six-pack page

Build Login Page

As a user
I want to login into this app
So that I can save my six-packs

Acceptance Criteria

  • Login in as title
  • Create a form
  • Username field
  • Password Field
  • Login Button

Build browse by brewery page

As a user
I want to see all breweries in my area
So I can research tasty beer

Acceptance Criteria

  • Cards for each brewery near me
  • Each card has a picture of brewery beer or logo
  • Brewery Name
  • Brewery City
  • Brewery State
  • If a card is clicked it will go to the breweries details page

Brainstorm Ideas

As a team member
I want to work on an amazing project
So that I can win all the awards and learn to code

Acceptance Criteria

  • Discuss ideas with team
  • Finalize ideas
  • Add description to Readme.md

Build search page

As a user
I want to search breweries and beers
So that I can find I like

Acceptance Critieria

  • Search field
  • Autocomplete as user types based beer names, breweries names, and style names.
  • If it matches and the user clicks search it goes to either beer details page, breweries detail page, or styles list

Add team members and roles to README.md

As a user
I want to know who contributed to this project and how
So that everyone gets credit for their work

Acceptance Criteria

  • Names and roles added to README.md
  • Verify that it shows up in the preview online

Design Ahab Rating

As a user
I want to know how good a beer is
So that I can drink tasty beer

Acceptance Criteria

  • Rating system for beer based on user input
  • "would drink this beer again" put route for beers that user likes
  • view number of times a beer has been rated as "would drink this beer again"
  • view all beers a user has rated as "would drink this beer again"
  • Design user input for rating

Build Server.js file

As a developer
I need a server.js file
So that I can launch my app

Acceptance Criteria

  • require express
  • require db ./models
  • declare app as express()
  • set public assets folder app.use(express.static("public"));
  • add app.use(express.urlencoded({ extended: true }));
  • add app.use(express.json());
  • require handlebars
  • require routes to controller
  • declare port var PORT = process.env.PORT || 8080;
  • add port listner
  • add sequelize
  • verify that it works locally
  • commit changes

Decide on syntax, structure and ground rules

As a developer
I want to easily work as a team
So that we can quickly develop an app together

Acceptance Criteria

  • Decide on branch naming structure
  • Decide on variable naming structure
  • Discuss ground rules for Github and how we work together

Setup Sequelize

As a developer
I want to use Sequelize
So that I can easily interact with my database and use and MVC model

Acceptance Criteria

  • Add sequelize to project

Build six pack page

As a user
I want to view beers in my six-pack
So that I can buy these beers, drink these beers, or delete them from my list

Acceptance Criteria

  • List all beers in size pack
  • Shows image of Beer
  • Shows Name of Beer
  • Shows Beer Rating
  • Button to delete

Build brewery information page

As a user
I want to see details of a brewery
So that I can learn more about that brewery or visit it.

Acceptance Criteria

  • Create draft details page
  • have brewery logo
  • Brewery Name as Title
  • Location as subtitle
  • Description
  • List beers associated with brewery
  • Review and finalize with team
  • Convert to handlebars layout

API Route for browse styles page

PLEASE READ COMMENTS BEFORE STARTING ON THIS

As a user
I want to view the category page
So that I can research beer styles I might like

Acceptance Criteria

  • api get route for /styles
  • gets all styles from the database
  • Create new styles
  • renders styles page
  • delete styles

Model for role

As a developer
I want a role model
So that I can store roles of employees

Acceptance Criteria

  • create module exports
  • create role variable
  • create name and string type not null and not less than 1 character

Build Basic File Structure

As a developer
I want a basic file structure
So that I can build an amazing app

Acceptance Criteria

  • Add files structure for MVC to repo

Research Technologies

As a developer
I want to use available technologies
So that I do not have to build everything from scratch

Acceptance Criteria

  • Research Socket.io
  • Cloudinary
  • JSON Web Token
  • Sessions
  • dotenv

Model for user

As a developer
I want a user model
So that I can store user information

Acceptance Criteria

  • create module exports
  • create customer variable
  • create user_name string type not null 1 to 50 characters
  • create password string type hidden not null
  • create first_name string type not null greater than 1
  • create last_name string type not null greater than 1
  • create city string type
  • create state string type
  • create zip_code integer type
  • create email string type

Create Config.json

As a developer
I want to have a config file
So that I can setup Sequelize

Acceptance Criteria

  • setup db in config
  • setup password in config

API route for users to add beer to their Sixpack

As a user
I want to add beers to my sixpack
So that I can keep a list of the beers I want.

Acceptance Criteria

  • API post route to add beers by id
  • adds information to sixpack table
  • send confirmation back that it was loaded.

Build My SixPacks Modal

As a user
I want to see all my six-packs
So that I can go to my previously save six-packs

Acceptance Criteria

  • List of all six-packs associate with the user
  • Includes name of each six-pack
  • Image next to the six-pack name
  • Each six-pack is a link to that six-pack's page.

Build Support Modal

As a user
I want to contact support
When I have issues I can't resolve myself

Acceptance Criteria

  • Email contact information for support

Model for six pack

As a developer
I want a six pack model
So that I can store brewery information

Acceptance Criteria

  • create module exports
  • create sixPack variable
  • create beer_id integer type foreign key to beer table id
  • create customer_id integer type foreign key to customer table id
  • create name string type not null greater than 1 character
  • create drank BOOLEAN type
  • create drink_date TIMEDATE type

Setup the Controller for CRUD

As a developer
I need a controller
So that I set up an MVC app

Acceptance Criteria

  • require express
  • require router
  • setup router
  • export router

Decide on CSS Framework

As a developer
I want to use a CSS framework
So that I can build a site faster with a good responsive design

Acceptance Criteria

  • Research Bulma
  • Decide that it is a viable option with the team
  • Add to Readme.md

Create Wireframe of App

As a developer
I want to have a wireframe of the site
So that I can build a responsive app with a good design

Acceptance Criteria:

  • Draft wireframe presented to team
  • Approval of Final Draft
  • Added to Readme.md

Model for brewery

As a developer
I want a brewery model
So that I can store brewery information

Acceptance Criteria

  • create module exports
  • create brewery variable
  • create brewery_name string type not null and greater than 1 character
  • create addess_1 string type
  • create addess_2 string type
  • create city string type not null
  • create state string type not null
  • create zip code string type not null
  • create phone integer
  • create email sting type
  • create website string type not null

Create rating model

As a developer
I want a rating model
So that I can store styles of beer

Acceptance Criteria

  • create module exports
  • create rating variable
  • create name and string type not null and not less than 1 character

API Route for Home page

As a user
I want to view the home page
So that I can use the app

Acceptance Criteria

  • api get route for /
  • gets all popular beers and trending beers
  • renders home page

API route beers details page

As a user
I want to view the details page
So that I can get the details of a specific beer I might want to drink
Acceptance Criteria

  • api get route for /beers/:id
  • gets one beer from the database based on id
  • renders details page

Build Signup Page

As a user
I want to signup with this beer app
So I can start saving six-packs and drinking a tasty beer

Acceptance Criteria

  • Sign-up as title
  • Create Form
  • User Name Field - REQUIRED
  • Password Field - REQUIRED
  • email Field - REQUIRED

Build details page

As a user
I want to see details of a beer
So that I can add it to my six-pack if I like it

Acceptance Criteria

  • Create draft details page
  • use beer as background image
  • overlay beer content on image
  • Added Rating
  • Beer Name as Title
  • Brewery as subtitle
  • IBU
  • Abv
  • Description
  • Review and finalize with team
  • Convert to handlebars layout

Create Description of Site

As a user
I want to know what this app is about
So that I can decide If I want to interact with the app or not.

Acceptance Criteria

  • Create draft description
  • Review and finalize with team
  • Add to Readme.md

Model for style

As a developer
I want a style model
So that I can store styles of beer

Acceptance Criteria

  • create module exports
  • create style variable
  • create name and string type not null and not less than 1 chracter
  • create description and text type not null

Build homepage

As a user
I want to use this beer app
So that I can find tasty beers I might like

Acceptance Criteria

  • Popular section with carousel
  • View All button for Popular section
  • Carousel of new photos added by users

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.