Live Heroku Site: Crossroads Lodge
Created By:
- Greg
- Konr
- Viki
- Chase
favicon
Live Heroku Site: Crossroads Lodge
Created By:
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)
the total number of orders by status
links for each individual order
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.
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
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
by end of week
filter orders to display by status type (for statuses "ordered", "paid", "cancelled", "completed")
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
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
Currently it only does flash[:notice], but we use other flashes elsewhere (flash[:error], flash[:message] etc)
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
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
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
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"
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.
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.
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
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)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.