Project effectively utililizes the technologies and technques 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
From our talk I know that you are still planning on implementing this
Consumes at least one web service or public api using Java.
No
Application is database-driven using full CRUD.
Yes
Database includes multiple one to many relationships.
Yes
I don't know if you have this up and running on AWS, but from our talk, we all seem to be agreeing that this is the last thing to worry about. I would suggest saving this portion of the project until the very end. If you miss this checkpoint, there aren't many points that will be deducted because of it.
Deployed to AWS for public access.
Implements best practices (for example, data validation)
Where your project is at right now, I don't see anything that is unfamiliar to what we have learned in class
Synthesis of multiple concepts in unfamiliar situations requiring research beyond the scope of the class
No
Experiments individually, exhibits independence and drive, shows originality in the solution.
Yes
You are doing some interesting stuff in your GenericDao class that I haven't seen covered in this semester or previous semesters.
You are creating a Class instance variable and using it throughout the class methods.
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
Single-purpose methods
Yes
Well-structured project
Yes
Easy to find things
Descriptive naming of packages, classes, methods, variables
Yes
I didn't come across any class that seemed too big
Classes appropriately-sized (no monster classes)
Yes
CPD (copy paste detection, meaning are the same lines of code repeated?
Are there candidates for super/subclass relationships, abstract classes, interfaces
are any values hard-coded that should be in a properties file?
No
Proper exception handling
Yes
This could use some attention. In the Auth class, you could complete the TODO that suggests routing to an error page if something goes wrong.
Proper error reporting to the user - custom erro pages?
No
Code is well documented
Code documentation
Yes
You have a loadProperties() method at the bottom of your Auth class. You could just make a startup servlet and load all properties in an init() method
Is there code in the servlet doGet/doPost that should be refactored into testable classes or methods?
Yes
Your JSP's especially the admin jsp could use comments to help guide people on what table they are looking at. Your head.jsp could use more comments explaining what technologies you are linking to. your popupFunctions.js could use comments to explain what each one does.
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
Your GameTest could use full CRUD testing. Right now it only gets all games. It looks like there's no delete test inside your UserTest class.
There is full coverage of methods that perform business logic or utility functions
No
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.
As we talked about last Wednesday, your project still has some ways to go when it comes to the API implementation and the front-end UI/UX, but I'm confident you can complete these objectives in the next two weeks. Great work so far and keep moving forward.
Evidence of significant revision and incorporation of feedback.
@jbrischke
Design/Code Review 2
Project: Ratings Anonymous
Developer: Josh Brischke
Reviewer: Boulder Beeman