P3 Challenge
Barrel-Aged is a social forum and review website for whiskey lovers. Through a modern and attractive user interface, convenient browsing and review functionality, and a well-designed database of whiskeys, Barrel-Aged will enable whiskey consumers to discuss, rate, and find their next favorite bottle.
Created, designed, and developed by Brian Weitz, Misha Kessler, Naz Babu, & Sean Blanchfield (Git Czar) for the GA Software Engineering Immersive (May '19 Cohort) Unit 3 Project.
Team values, communication preferences, and other group expectations can be found on the Barrel-Aged google doc.
Barrel-Aged is modeled with functional inspiration from Distiller, GoodReads, Connosr, and Untappd; design and branding inspiration from Flaviar and Touch of Modern.
Digital assets used with full licensing and permission from Death to Stock Photo, Freepik, and Unsplash. Custom digital design and branding by Misha Kessler.
Digital assets stored locally and on Imgur at Barrel-Aged Assets Library.
ERD Model from Sean's Draw.io.
Sitemap V2
Sitemap from Naz's GlooMap.
Wireframes from Brian's DocDroid.
Logomark
Wordmark Light
Wordmark Dark
Print Label
Bottle Mockup
- User Authentication & Password Hashing
- Sequelize Resource Tables
- Users (first_name, username, email, password, location, fav_whiskey)
- FK: User hasMany Reviews, User hasMany Whiskeys
- Whiskeys (name, brand, type, description, url_to_image)
- FK: Whiskey hasMany Reviews
- Reviews (rating, comment)
- FK: Review belongsTo Users, Review belongsTo Whiskeys
- Users (first_name, username, email, password, location, fav_whiskey)
- CRUD Functionality on All Resources via Axios
- Core React Components
- Pages
- Age Gate
- Landing (Hero, Overview, Login, Register)
- Homepage (Index)(View All Whiskies, Whiskies By Type)
- User (Show)
- Whiskey (Show)
- Modules
- Login Form
- Register Form
- Pages
- Pagination on Whiskeys, Advanced Sorting & Filtering
- Additional "Favorite" functionality, db table, and corresponding components for viewing and reordering favorite whiskeys from user dashboard.
- "Like" functionality on reviews, plus sorting reviews by popularity.
- Third party whiskey API to build out our database, enable "Add new whiskey for review." by user, with autofill.
Files and directories that are key to our production (and thus, have been- or will be- edited) are listed here in tree form here. Subdirectories should appear first, followed by filenames.
barrel-aged
|___ client
(Refer to React Structure below.)
|___ routes
|___ userRouter.js
|___ whiskeyRouter.js
|___ auth.js
|___ models.js
|___ resetDb.js
|___ scratch.js
|___ seed.js
|___ server.js
|___ readme.md
barrelaged_db
|___ reviews
|___ users
|___ whiskeys
client
|___ public
|___ favicon.ico
|___ index.html
|___ src
|___ assets
|___ images
|___ graphics
|___ components
|___ Header.jsx
|___ LoginForm.jsx
|___ RegisterForm.jsx
|___ ReviewForm.jsx
|___ Footer.jsx
|___ pages
|___ AgeGate.jsx
|___ Landing.jsx
|___ Home.jsx
|___ User.jsx
|___ Whiskey.jsx
|___ services
|___ api-helper.js
|___ App.css
|___ App.js
|___ index.css
|___ index.js
|___ logo.svg
|___ readme.md
Components (and a description with a stateful or stateless tag) go here.
Component | State | Description |
---|---|---|
Lorem ipsum | Stateless | Lorem ipsum dolor sit amet, consecteteur adupiscing elit, sed do eiusmod tempor incididunt ut labore... |
Time expectation (padded with an extra hour, minimum, to play it safe) go here.
Component | Priority | Estimated Time | Actual Time |
---|---|---|---|
Lorem ipsum | High | x hrs | y hrs |
Generic helper functions go here.
Function | Description |
---|---|
Lorem | ipsum dolor sit amet |
Packages installed via node go here.
-
Server-Side
- body-parser
- cors
- express
- morgan
- nodemon
- pg
- sequelize
-
Authentication
- bcrypt
- jsonwebtoken
-
Client-Side
- axios
- material-ui
- react
- react-router-dom
- react-spring
- react-with-gesture
- react-star-rating
Any code of which we are proud go here.
function reverse(string) {
// here is the code to reverse a string of text
}
Any code bugs, errors, and fixes go here.
**ERROR**: app.js:34 Uncaught SyntaxError: Unexpected identifier
**RESOLUTION**: Missing comma after first object in sources {} object
Any tasks we would like to revisit after graduation go here.