Data Structures Group Project
Restaurant Advisor

Project Description

Imagine you were hired by a start-up company, RestaurantAdvisor, like Trip Advisor, but more exclusively catered for Restaurants. The goal of the Restaurant Advisor is to be a central place for customers to write reviews about the restaurants that they have dined in. The company also would like to facilitate online ordering of food items from Restaurants. The online ordering initially may be restricted for just pick-up orders to keep things simple. Remember, for delivery orders the whole logistics of maintaining a delivery service with third party tie-ups like Uber may be complicated.

You may not be able to implement all of the features as described above. At the minimum, your system should track restaurants. A customer should then be able to login to the system, view the different restaurants, and then provide rating for the restaurants.

Each restaurant should have a unique system generated id. We also keep track of a restaurant name, Address, Phone Number, Email, Hours of operation, Types of cuisine, Type of dining, Price Range, Food Items and Price of the food item. The restaurant types of dining that we will track are: Fast Food, Fast Casual, Casual Dining, Family Style, and Fine Dining.

Example types of cuisines include American, Mexican, Indian, Pizza, Sandwich, Chinese, and Italian. Some restaurants offer multiple types of cuisines, and all offer at least one type of cuisine.

 

Logistics

Team size for the projects should be two to three at most. Follow the key dates and deliverable described below. Submit the interim reports, one per team to d2l. In your reports, include the  team roster.

Technology

Java FX/Java Swing/Java Web Application or any programming language of the team’s choice.

Key Dates and Deliverables

Market Research and Mockup Design (Nov.7th)

RestaurantAdvisor would like for you to first survey the field i.e. identify the competitors. You may want to start researching websites like  Grubhub, UberEats, ChowNow, etc. The best way to get a feel for them is to look for restaurants around Milwaukee.  Conduct market research of relevant products such as mobile apps or web applications that do similar things as the project. Survey the competition designs, and include the report of what is available out there and what features you can realistically implement by the end of this semester. Also, use a professional mock up generator to create sample mock-ups of your final project (see Useful Links section below).

GUI Design with some features (Nov.18th)

Write basic prototype of the application that displays the GUI. Either hard code the inputs such as restaurant details, and food items or read them from a file and display on the GUI. Take screenshots of your GUI and include them in a report and upload your source code and the report.

GUI Design with most features (Dec.2)

Write prototype of the application that displays the GUI with most of the functionality implemented.  Highlight the different data structures that you have used. They could be simple ArrayList, Queue, Stack, HashMap, etc from Java Collection Framework. Take screenshots of your application and include them in a report and upload your source code and the report.

Final Report (Dec.11th 11:59 PM)

Your final report should include the application description, motivation, competing market research, and your prototype description. The report should include a user manual describing how to setup the system and describe the application using screenshots of your application. Highlight where relevant any technical designs and challenging code accomplishments. Include your project legacy discussing what you have accomplished and the skills you have acquired independently from the instructor and classroom discussion. Also include what you would like to accomplish in future, given more time for this project.

Final Video Presentation (Dec.12th 11:59 PM)

Upload a 3-5 minute YouTube video presenting your final project, and paste the link into the shared Google Spreadsheet here: https://docs.google.com/spreadsheets/d/1-D7lqtO2i0oN7oEQtI3doQIngAq6Q_SS63JDPOWC7lw/edit?usp=sharing

Your upload may include video, or slides with a voice-over, and/or actual demonstration of your running project. Emphasis should be placed on what the team accomplished and any special technical hurdles overcome.

Useful Links:

https://moqups.com/ ( mock-up designer tool)

https://balsamiq.com/ (mock-up designer tool – free 30 day trial)

https://docs.oracle.com/javase/8/javase-clienttechnologies.htm (JavaFX Tutorial)

https://docs.oracle.com/javase/tutorial/uiswing/index.html (Java Swing Tutorial --older way of creating GUI)

http://www.oracle.com/technetwork/java/javase/downloads/javafxscenebuilder-1x-archive-2199384.html (JavaFx Scene Builder)

https://docs.oracle.com/javase/8/scene-builder-2/get-started-tutorial/jfxsb-get_started.htm#top (JavaFx Scene Builder Tutorial)

http://o7planning.org/en/11009/javafx (JavaFX Tutorials)