https://opa-grappa.herokuapp.com/
Opa!Grappa!! is an app that keeps track of all the wines a user has consumed or would like to try in the future. User can search for a wine by narrowing down to a winery or vineyard. Can also sort through search results in table and through their own list by clicking on the headers of the table (ascending and descending). User can find more information of selected wine by clicking on its name and it will display details like the name, type, vintage, vineyard, ratings and reviews (by Wine Enthusiast) and allows user to add their own comments
Git Clone this repo
cd into folder
npm install
npm start
Add .env file with API URL and variable name JWT_SECRET
- JavaScript
- jQuery
- HTML5
- CSS3
- Node.js (server-side scripting)
- Express (server framework and API end point routing)
- MongoDB(mLab) (database)
- Mongoose (data modeling and schema)
- Mocha Chai (unit testing)
- Travis CI (continuous integration and deployment)
- Heroku (deployment)
- Passwords are encrypted with bcryptjs
- Passport.js was used as authentication middleware
- The app is responsive and optimized for both desktop and mobile viewing and use
-
API for registering new users and checking existing user logins:
- '/users' - POST, GET
- '/users' - POST, GET
-
API for creating JWTs:
- '/auth'
- '/login' - POST
- '/login' - POST
- '/auth'
-
API for wines data:
- '/wines'
- '/' - GET a list of top 20 wines
- '/:id' - GET wine by id
- '/states' - GET all states (distinct)
- '/regions/:state' - GET all regions (distinct) for a given state
- '/wineries/:region' - GET all wineries (distinct) for a given region
- '/list/:winery' - GET all wines for a given winery
- '/' - GET a list of top 20 wines
- '/wines'
-
API for personal my list data:
- '/mylist'
- '/' - GET a list of all wines on logged-in user's list
- '/' - POST a new item to list ('userId', 'wineId', 'comments', 'name', 'description', 'cost', 'rating', 'region', 'state', 'winery', 'type')
- '/:id' - GET selected wine item details by id
- '/:id' - PUT for updating the comments field for an existing item on list by id
- '/:id' - DELETE for deleting an existing item by id
- '/' - GET a list of all wines on logged-in user's list
- '/mylist'
- Search text box with autocomplete as alternative to using the drop downs
- Paging through search results
- Allowing search by country
- Uploading pictures to be stored along with user comments
- Allowing to add their own wines, not already in the database, and being able to store them on their list
- Reset password
- Allowing users to compare notes with other users