The Google Calendar API, the authentication realm, Generic Dao
What planned functionality has not been met?
Sign up, Add Clients/Schedule Reservations/Add Services with Pricing & Timing Defaults, View All Reservations, View All users (technically you can view all users now, but I think you intended for the salon owner to have a nice UI to do so), About section, Financial Goals
Describe the GitHub history and what it demonstrates about the project progress during the semester.
Progress has been a little on and off, as you know, but there are some really cool things implemented, such as CI-CD.
Describe how peer and instructor feedback/recommendations were incorporated into the project.
Looks like the project has been updated to meet the requirements of the checkpoints. I don't see any references to FatBikeTrailReports anymore. As you continue to build your app, keep other comments in mind, such as using the equals() method on each entity so that your DAO tests are more efficient.
Other comments/notes?
JSPs
Evaluate the JSPs for templating, business logic, data validation, overall look and feel.
There is a template for the head - it might be helpful to move this to it's own folder within webapp. Then you can include future templates in there too, such as a navbar or footer or whatever you choose to include. Styling is not there yet so I can't comment on the look and feel. As you progress, keep data validation in mind for any user forms.
Other comments/notes?
Java code quality
Evaluate the code quality for the following and identify specific areas for improvement (class, method or line number)
single-purpose methods
well-structured project
descriptive naming of packages, classes, methods, variables
classes appropriately-sized (no monster classes)
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?
proper exception handling
proper error reporting to the user
code documentation
I'm having issues with the md file, so I'll include specific comments at the bottom of my review (I initially used Word to write my comments). However, I did use QAPlug
Logging
Evaluate the use of logging, for example:
appropriate use of logging statements in the code for error logging and debugging
logging levels used - info, debug, error
no occurrences of System.out.printlns or printStackTrace()
logging works on AWS deploy
I don't see any System.out.prints, but also it doesn't look like Log4J is implemented yet.
Unit Tests
Evaluate the unit tests, for example:
tests are truly a unit test rather than a high level functional test
test data is appropriately cleaned up or handled
there is full coverage of methods that perform business logic or utility functions
redundant code is eliminated by using set up and tear down methods, i.e., @Before, @After
Other comments/notes?
Unit tests are limited so far. Your UserDao test will be more streamlined once you implement the equals() method on your entities.
Security
Evaluate authentication/authorization:
Currently there is authentication but it looks like it's only for the admin role? Will there be any other roles? Also, you could put your protected jsps in a separate folder so it's easier to keep track of what requires authentication and what does not.
Is it implemented correctly and working locally as well as on AWS?
Other comments/notes?
I could not test AWS because your instance was down (so is mine...)
Web Service/API integration
Evaluate the service/api integration, for example:
Which service/api is implemented?
How is error handling of the service implemented? For example, what happens if the service is not available?
Other comments/notes?
The Google Calendar API is ready to be implemented. It seems that you can receive data, now it's just time to put it into your app.
Independent research topic
What is the independent research topic?
CI/CD seems to already be implemented. Materialize and JavaScript are yet to some (though I don't know if you need to do ALL three prof dev topics? Maybe double check with Paula)
Is the independent research topic/technique implemented in the project?
Other comments/notes?
Deployment
Has the application been successfully deployed to AWS?
I know it has been, but right now the instance is down for me so I can't comment on functionality.
Consider renaming some packages to more closely align with your project. E.g.
SalonSolutions/src/main/java/edu/matc -- you can probably change the edu to 'com' and the 'matc' to 'salonsolutions' (or whatever you choose). Same with the 'test' directory.
Consider adding both of the hibernate.cfg.xml files (one in main; one in test) and context.xml to your .gitignore file.
• (From QAPlug) Your jsps have a tag at the top and an
Design/Code Review 3
Project: Salon Solutions
Developer: Matt Hill
Reviewer: Kelly Palese
Code Quality Comments
Don't forget to override the equals() and hashCode() methods for each of your entities: https://github.com/mhill10/SalonSolutions/blob/7aee70d93ba58abdae960e7c0977afbf46b1ddc9/src/main/java/edu/matc/entity/User.java#L158 Once you have those methods in place, you can simplify your DAO tests by just using the .equals method to compare objects (rather than using an assertEquals() for each variable.
You can remove the swapi exercise (unless there's a Star Wars component to your app that I'm not aware of...which would be pretty (ahem) out of this world https://github.com/mhill10/SalonSolutions/blob/7aee70d93ba58abdae960e7c0977afbf46b1ddc9/src/main/java/com/swapi/Results.java#L1
Consider renaming some packages to more closely align with your project. E.g. SalonSolutions/src/main/java/edu/matc -- you can probably change the edu to 'com' and the 'matc' to 'salonsolutions' (or whatever you choose). Same with the 'test' directory.
Consider adding both of the hibernate.cfg.xml files (one in main; one in test) and context.xml to your .gitignore file.
• (From QAPlug) Your jsps have a tag at the top and an