kodehomie / learn-fast-java-web-app

"Learn Fast" is a java web application for mentors and mentees that need social connection and learning management solutions.
Other
0 stars 0 forks source link

Peer Code Review Feedback #8

Open subu250 opened 2 years ago

subu250 commented 2 years ago

Design/Code Review 2

Project: learn-fast-java-web-app

Developer: Justin Hoang

Reviewer: Subheksha Karki

@pawaitemadisoncollege- Project is almost completed. Awesome work.

Areas for Improvement Criteria Items Met or Exceeded
Project effectively utilizes the technologies and techniques specified in the project objectives Yes
Planned MVP Functionality Yes
Logging framework used, i.e., no System.out.println() or printStacktrace() statements. Yes
Hibernate used for all data access. Yes
Authentication implemented. Yes
Consumes at least one web service or public api using Java. Yes
Application is database-driven using full CRUD. Yes
Database includes multiple one to many relationships. Yes
Resolving Aws error Deployed to AWS for public access. Yes
Implements best practices (for example, data validation) Yes
Synthesis of multiple concepts in unfamiliar situations requiring research beyond the scope of the class Yes
Experiments individually, exhibits independence and drive, shows originality in the solution. Yes
Implemented technologies or techniques not covered in course materials. Yes
Code quality - Evaluate code quality for the following and identify specific areas for improvement (class, method or line number). Be sure to list which code quality plugins/tools you used to assist with this analysis Yes
Single-purpose methods Yes
Well-structured project Yes
Descriptive naming of packages, classes, methods, variables Yes
Classes appropriately-sized (no monster classes) Yes
CPD copy paste detection, meaning are the same lines of code repeated? No
Are there candidates for super/subclass relationships, abstract classes, interfaces Yes are any values hard-coded that should be in a properties file?
Proper exception handling Yes
Proper error reporting to the user - custom error pages? Yes
Updating the project as per requirements. Code documentation Yes
Is there code in the servlet doGet/doPost that should be refactored into testable classes or methods? No
Evaluate the JSPs for templating, data validation, overall look and feel. Yes
JSPs use JSTL and EL, no java code Yes
Unit tests are truly a unit test rather than a high level functional test Yes
Test data is appropriately cleaned up or handled Yes
There is full coverage of methods that perform business logic or utility functions Yes
Redundant code is eliminated by using set up and tear down methods, i.e., @Before, @After Yes
Other comments/notes?
Demonstrates initiative and thoughtful planning to leverage available resources (time, equipment, external expertise) to meet milestones and project objectives. Yes
Evidence of significant revision and incorporation of feedback. Yes
Project complexity Yes
Additional Comments Keep on hard work,Justin to accomplish the project. Great Job.
pawaitemadisoncollege commented 2 years ago

@subu250 @mybffjustin With the use of Cognito for authentication, are classes such as https://github.com/mybffjustin/learn-fast-java-web-app/blob/54b2654e9a6dfa052f9c2e2e63eca12982a9e8cc/src/main/java/org/justinhoang/controller/AuthenticationBase.java#L8 and https://github.com/mybffjustin/learn-fast-java-web-app/blob/54b2654e9a6dfa052f9c2e2e63eca12982a9e8cc/src/main/java/org/justinhoang/controller/PasswordUpdateController.java#L17 needed and used?

pawaitemadisoncollege commented 2 years ago

@subu250 This review lacks detail to assist the developer in improving their project and explaining exactly what is complete, and how it was completed.

For example, "Evaluate the JSPs for templating, data validation, overall look and feel." Your feedback was "yes". An effective code review should include suggestions for improvement as well as an analysis of the review item. For this item explain how templating and data validation is implemented. Explain the overall look and feel of the application. What works in this regard and what could be improved?

Another example "Proper error reporting to the user - custom error pages?" Are custom error page used? If not, what is the mechanism for reporting errors to the user?