Giter Site home page Giter Site logo

dinner_dash's Introduction

banner

Module 2 Turing School Software & Design

Due Thursday, December 4th 2014

Live Heroku Site: Crossroads Lodge

Created By:

  • Greg
  • Konr
  • Viki
  • Chase

dinner_dash's People

Contributors

gregnar avatar larsonkonr avatar vikiann avatar

Watchers

 avatar  avatar  avatar

dinner_dash's Issues

Fix seed file to use correct category assignment

Items must be created with at least one category, categories may be assigned like the following:

Item.create!(title: "foo", description: "bar", price: 1.0, categories: [category1, category2])

(It can be just one category, we just have to specify it in the create! arguments)

Extension: Phone Confirmation

As a restaurant I have a registered contact phone number. When an order is placed online the system calls me with an interaction like this:

"Hi, this is DinnerDash calling with an online order. Press 1 to accept, 3 to reject". They press "1"
"The customer name is John Schmoe."
"The customer will pickup the order at 5:45PM"
"The order includes: shrimp wontons, chicken pad thai large, and green tea ice cream small. There are a total of 3 items."
"Press 1 to confirm the order, 2 to repeat, or 3 to cancel."
The result of the call updates the order in the database and sends an email to the customer.

User should be able to view page with list of past orders

items with quantity ordered and line-item subtotals
links to each item description page
the current status of the order
order total price
date/time order was submitted
if completed or cancelled, display a timestamp when that action took place
if any item is retired from the menu:
they can still access the item page
they cannot add it to a new cart

Extension: What's Good Here?

On any item I can, as an Unauthenticated User:

See the posted reviews including:
title, body, and a star rating 0-5
the display name of the reviewer
See an average of the ratings broken down to half-stars
On items I’ve purchased, as an Authenticated User I can:

Add a rating including:
Star rating 0-5
Title
Body text
Edit a review I’ve previously submitted until 15 minutes after I first submitted it

Admin Order Filter

filter orders to display by status type (for statuses "ordered", "paid", "cancelled", "completed")

UI for delivery info

An order is marked for pickup or delivery
If marked for delivery, an order has an associated address with street number, street, city, state, and zip

Admin Update Order

View and edit orders; may change quantity or remove items from orders with the status of pending or paid
Change the status of an order according to issue #108

Admin Order Show Page

Should have:
Order date and time
Purchaser full name and email address
For each item on the order:
Name linked to the item page
Quantity
Price
Line item subtotal
Total for the order
Status of the order

Extension: Where Is It?

Implement full-text search for both the consumer and administrator:

Consumer

Search for items in the whole site
Search through "My Orders" for matches in the item name or description
Administrator

Search orders using a builder-style interface (like Google’s "Advanced Search") allowing them to specify any of these:

Status (drop-down)
Order total (drop-down for >, <, = and a text field for dollar-with-cents)
Order date (drop-down for >, <, = and a text field for a date)
Email address of purchaser

Extension: SAVINGS! SAVINGS! SAVINGS!

Administrators may put items or entire categories of items on sale. They can:

Create a "sale" and connect it with individual items or entire categories
Sales are created as a percentage off the normal price
View a list of all active sales
End a sale
On the order "dashboard" they can:

View details of an individual order, including:
If purchased on sale, original price, sale percentage and adjusted price
Subtotal for the order
Discount for the order
Total for the order reflecting any discounts from applicable sales
As an Unauthenticated User:

Sale prices are displayed in item listings alongside normal price and percentage savings

Admin Status Transitions

link to "cancel" individual orders which are currently "ordered" or "paid"
link to "mark as paid" orders which are "ordered"
link to "mark as completed" individual orders which are currently "paid"

Extension: Transaction Processor

Implement a "checkout" procedure using Stripe, Paypal or another service to handle credit card transactions in a "sandboxed" developer environment.

When the card is processed, update the order to "paid" and send a confirmation email to the user. Emails should only be sent when the app is in production mode. Don’t spam people while you’re getting it working.

Extension: Magic 8-ball

You can’t place a pickup order and expect it ready immediately. Predict the pickup time when an order is submitted:

Each item in the store has a preparation time, defaulting to 12 minutes. Items can be edited to take longer.
If an order has more than six items, add 10 minutes for every additional six items.
Each already "paid" order in the system, for takeout or delivery, which is not "complete" delays the production start of this new order by 4 minutes.

Extension: The Machine Knows What You Like

Implement simple recommendations including:

The ability to easily see your last order and add the same items to the current order
After an item is added to and order, recommend three items other customers have ordered with this item. If there aren’t three other things that’ve been ordered, fill in with the most popular overall items
Combinations of several items (ex: an appetizer, main dish, and dessert) with a small discount over ordering them individually

Extension: Future Scheduling

When a customer is placing an order, they can select a date/time for pickup or delivery as long as it is…

In the future
No sooner than the "predicted" pickup time
On a day/time combo when the restaurant is open (the restaurant should be closed at least 60 hours per week)

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.