-view source in github -view source in Heroku
- category, item, line_item, shopping_cart, user, stripe
- Users: has many items, has many shopping carts
- Items: has many line items, belongs to user, belongs to category
- Line Item: belongs to shopping cart, belongs to item
- Category: has many items
- Shopping cart: has many line items, belongs to user
- gem 'bcrypt', '~> 3.1.7'
- gem 'pry-rails'
- gem 'cloudinary'
- gem 'stripe'
- gem 'gon'
- gem 'geocoder'
- gem 'dotenv-rails'
- gem 'rails_12factor', (group: production)
- application.js: used for toggling the icons in the navbar and clearing out the picked up items
- categories.js: used for adding new categories to the database on the create new item page
- places.js: used to implement the google maps api
- .svg format used for icons
- css has been split across in separate files in the stylesheet folder
- Users have the option to be both a cook (seller), and a buyer.
- Can create food items which have a minimum cost and serving size as 1 and has to have a valid address
- Cook is able to view his/her current and past yums
- Cook is able to view who is on the way to pickup food from his/her address
- Has to have a valid postcode while signing up
- Food available in the buyer's postcode is displayed to him/her by default
- Buyer can search for food items outside his/her postcode
- Buyers can view their past orders in thier profile page
- Buyer can buy food from cooks staying in different areas (postcodes). After making payment, the pickup spots are displayed via a google map
- Allow users to purchase food items from different cooks
- A user cannot buy food from him/her self
- When a user adds food items to the cart, the quantity remaining in the items page is updated accordingly, but it is deducted from the database, only when the payment has been made
- A shopping card if idle for more than 20 minutes, is destroyed
- If a user creates a shopping cart but logs out without paying, the shopping card is destroyed
- The Payments feature has been implemented using the Stripe api
- The default Credit card number is : 4242 4242 4242 4242
- User needs to provide a valid expiration date and a 3 digit cvc number