Skip to content

Latest commit

 

History

History
31 lines (21 loc) · 5.89 KB

W16_lab05.md

File metadata and controls

31 lines (21 loc) · 5.89 KB

Lab 5 Assessment Brenda Flores github: bmflores413, Thien Hoang github: thienhoang23

a) The program allows users to add and browse restaurants using a database. The two main classifications of a restaurant are the hours of operation and the cusine.

b) As a customer, I can check the hours of the restaurant so that I make sure that when I do go it is open. As a customer, I can check the phone number of the restaurant to contact them about other question I have. As a customer, I can browse restaurants by cuisine so that I have narrower list of options within my preference. As a restaurant owner, I can add information to the database so that customers are aware of the information regarding my restaurant.

c) The current software runs. It brings up a menu of options including eat, add a new restaurant, create and save from CSV file, and look up restaurant based on hours of operation.

d) As a customer, I want to browse by price range so that I only see restaurants that are within my budget. As a customer, I want to filter restaurants by diet restriction such as vegetarian or vegan so that I know the menu corresponds further with my needs. As a restaurant owner, I want to be able to set hours for individual days so that I have have variable open and close times. As a restaurant owner, I want to add menu items when creating an entry so that customers have specific information about the restaurant's cuisune. As a customer, I want to be to add without creating dublication.

e) The README.md should mention that the app allows users to search for places to eat based on preferences such as hours of operation and cuisine. It does not display all the restaurants in the database at once.

f) All the targets have descriptions. The class path called project.class.path which leads you to the JUnit test in the csil system is still in JWS format. We can change this by downloading the JUnit test and put it inside a lib directory in our working directory, then push it onto github.

g) The current issues include adding the ability to edit entries, adding the ability to save images, and integrating with the Yelp API. The issues, espeically the last one is involved enough to give us enough work and challenge. The explanations are clear enough for us to start working

h) Additional Issue 1: #11 Additional Issue 2:#10 Additional Issue 3: #12

i)There are currently three .java files in the source code. First is the Restaurant.java file which is an object representing a restaurant. It contains member variables such as name, starttime, address, and phone number, as well as getter and setter methods that will be useful when the user requests to search for a restaurant or add a new entry. The methods are clear and simple as the variable names clearly explain which aspects of the class they refer to. The code is easy to follow. The only concern is in the naming of starttime and endtime. These paramenters and member variables could have been named endTime and startTime to follow the naming convetion. The second is the Food.java file. This file defines a class called food that implements serializable. An instance of food is essentially the list of restaurants currently in the database as well as a set of methods that can operate on this list. The cosntructor attempts to read a list of restaurants from a saved list and add them to the array list. If it cannot load the file, the array list is loaded with a list of default restaurants. Other methods in the class include a method to show restaurants given a parameter for time, a method to show a restaurant's information based on its name, a methods to show cuisine types for the restaurants in the object, and methods to add to the list. There is no way to delete an entry from the list. The code for the methods is easy to follow, but it was difficult to tell what the class was based on the name. Changing it to restaurantList may make it clearer and follow the restaurant class more smoothly. It would also be hepful to add comments that explain each method because even though the code is simple to follow, it is useful to have the main idea written in plain text. The last file is the GuiUserInput.java file which defines the GUI for the program. The constructor sets up the window and the other classes each correspond to a page in the program, such as the setup page which is the main menu where the user chooses what they want to do in the program, or action listeners to respond to the mouse input the user gives. This class essentially implements the visual elements of the program. Again, the code is easy to follow, but comments would be helpful to summarize the purpose of each class. Lastly, a lot of methods, especially the getters and setter, and constuctors in all three files can use some good Javadoc comments to help make the code easier to follow for people using the Javadoc.

j) There are no Test.java in the src as described in the buil.xml file. Currently we can tyupe ant test which would build and run but we have no ideas what it compiles or what it runs the tests on. So I would assume that the previous students who worked on this project did not have any test case written for it at all. Thus there is no usage of JUnit tests. Instead, I think they tested the code by running the whole program as a user and discovered different bugs as they go through. So it is quite hard to say how extensive was the testing. But based on the knowledge that there exsits no Test class, I would say the coverage is minimal, or close to none. I think it is possible to extend the test coverage. I have found online some instructions for JUnit test GUI application. Also, we can write test cases for JUnit to test the Restaurant and Food classes seperately from the GUI application.