Skip to content

Project 2 Feedback#1

Open
aleksandrTmk wants to merge 1 commit intoemaax:masterfrom
ADI-SF-Student-Projects:master
Open

Project 2 Feedback#1
aleksandrTmk wants to merge 1 commit intoemaax:masterfrom
ADI-SF-Student-Projects:master

Conversation

@aleksandrTmk
Copy link

RUBRIC

Project 2 | ADI

Performance Evaluation

Mark boxes with an 'X'; if did not achieve bonus, mark with a '-'

Requirements Incomplete (0) Does Not Meet Expectations (1) Meets Expectations (2) Exceeds Expectations (3)
Create READ.md file with project description x n/a
Allow the user to search by at least three different search criteria x n/a
Show results in separate entries/pages to the user, including descriptions, images, and whatever else you like x n/a
Gather data for the search results from the database x n/a
Allow the user to favorite locations, and later view those favorites x n/a
Incorporate Object Oriented principles into your app x n/a
Contain code comments, explaining the functionality behind sections of code x n/a
Include at least 8 manual test cases in a separate text file x n/a
Include automated unit tests for all non-Android code x n/a
Bonus: Create a review system for user feedback at each location n/a n/a n/a n/a
Bonus: Incorporate more advanced Material Design principles into your UI n/a n/a x n/a
Bonus: Add more complexity to the user's searches (possibly allowing more than one search criteria at a time) n/a n/a n/a n/a

Score:

Based on the requirements, you can earn a maximum of 18 points on this project.

Your total score is: 17


PROGRESS REPORT

Student Check-in:

Great work on the project! Glad you learned about using web pages and opening them up via intents! Very clean code, good job with that!

@aleksandrTmk
Copy link
Author

@emaax Great job with the project!

  • Very nice looking UI that is intuitive to use
  • Excellent use of comments and java docs
  • Very clean code! Good job!
  • Nice job learning about opening web pages via intents!

To improve yourself as a developer, please take a look at the following feedback:

MainActivity.java review:

  • Great use of constants and not hard coding variables.
  • Variable names are clear and make sense.
  • Nice use of regions!
  • onCreate() is very short, nice job! Can make it even shorter by moving the check for first time running the app out into another method.
  • Great job naming helper methods.
  • initializeViews() extra white space for newlines at the end of the method should be removed.

DetailActivity.java review:

  • Great job with variable names!
  • Only one variable is private, you should make them all private.
  • onCreate() is very long, especially when compared to MainActivity.java.
  • helper and fab should be moved to initViews().
  • Too much white space newlines between methods. No reason to skip two lines between initViews() and setInfo().
  • fab.setOnClickListener() should be moved to its own method.
  • Line 64 and 70 use hardcoded strings, should be using strings.xml for snackbar strings!
  • textViewItemWebSite.setOnClickListener() should happen inside setViews() and NOT inside setInfo().
  • Line 92 the key for "id" should be made a constant and re-used in line 63 of ResultsActivity.java.
  • You are missing java docs on each method for this class! Explain what each method does!

ResultsActivity.java review:

  • Great job with variable names!

  • Nice work making all variables private.

  • Line 27 variable favorites is not used. Remove it.

  • onCreate() is very long, you can shorten it up by moving code to setCursor(), setViews(), and initData().

  • The code

    if (type.equals(MainActivity.KEY_FAVORITES)) {
              cursor = mHelper.searchNeighborhoodByType(favorite);
          } else {
              cursor = mHelper.searchNeighborhoodByType(type);
          }
          //Create a cursor
    
          cursor = mHelper.searchNeighborhoodByType(type);
    

    is redundant. Your favorite string is never initialized so we never execute the first if statement, line 41-43. So remove this code. Line 44 and 48 do the same exact thing, so remove one of them. Instead of the whole block you have above, you should just have type = getIntent().getStringExtra(MainActivity.KEY_TYPE); cursor = mHelper.searchNeighborhoodByType(type);.

  • Line 68 is an empty comment, remove it.

  • Line 64 is hard coded key that is used in DetailActivity.java and should be made constant and re-used on both activities.

  • The whole class is missing java docs and comments everywhere!

FavoriteActivity.java review:

  • Great job with variable names.
  • Variables should be made private.
  • Excellent job figuring out onResume() trick to keep you favorites screen up to date with newest data!
  • Line 48 with favoriteCursorAdapter you are creating a new adapter every time we leave and come back to the screen ( even if user takes a phone call and comes back to your app). This is doing more work then your app should be doing. You should instead check if the adapter is null, then initialize and set it, otherwise do nothing.
  • Missing java docs and comments throughout the class!
  • onCreate() is good size, nice job! You could make it smaller by using a setViews() method.
  • Line 34 the key "id" is hard coded and used three times in the project! Please make it into a public static final String KEY_ID = "id"; and re-used in all three locations.
  • FavoritesActivity.java is really the same as ResultsActivity.java and you could just re-use that activity and then check on the type of content that is passed in. You started that in ResultsActivity.java but never finished it.

StockholmItem.java review:

  • Great job with variable names and making them all private!
  • Missing java docs. Ideally one at top level of the class and java doc for each getter/setter method.

StockholmItemsManager.java review:

  • Great job with making public static final constants to be re-used throughout the project!
  • Good job managing the creation of objects in this class.
  • All addresses should be put into the strings.xml file.
  • Nice work adding comments.

NeighborhoodSQLiteOpenHelper.java review:

  • Great job using constants for all your sqLite commands.
  • Nice use of encapsulation making everything private.
  • Nice job using comments although you should also add java docs to each method to explain what it does.
  • return "No Website Found"; or return "No Address Found";, etc should all be made into private static final Strings.

Great work using packages inside of your project! You should create a package for activity and database and keep things separated. StockholmItemsManager is not a model, it is a manager class used for the database and should live in the database package along with the database helper class.

  • Remember to also start writing comments and java docs throughout your code!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant