CS 347: Project 2 Rubric
Your project 2 submission will be graded using the rubric below. Your site will be evaluated on five dimensions. For each dimension, I list a sample of the questions that I will use to structure my evaluation.
User Experience
- Does the app have a coherent purpose?
- When network requests are being made, does the user see a progress indicator?
- Is the layout clean and consistent, with strong alignment?
- Are the colors and fonts aesthetically pleasing?
- Is the app easy to navigate?
- Is it clear what can be clicked on and what clicking will do?
Front-end
- Is global data appropriately managed with Redux?
- Is component-specific data managed via state?
- Does data owned by a parent and shared with children arrive via props?
- Is the interface cleanly decomposed into components?
- Are hooks used to selectively update the UI?
- Are actions used to update the Redux store?
- Is state changed only in immutable ways, by way of
useState
setters and the reducer? - Does the DOM change dynamically as the user interacts with the app?
Back-end
- Does the database have a clean schema?
- Are the endpoints named meaningfully?
- Do the HTTP methods (
GET
,POST
,PATCH
,DELETE
) reflect the operations being performed? - Is JSON appropriately used for complex data?
- Are parameters used for identifiers and the receiving of simple data?
Networking
- Does the web service support CORS?
- Is the client served on port 443?
- Does port 80 redirect to port 443?
- Is a firewall enabled so that the web service can only be accessed through Nginx?
- Is a process manager used to keep the service running?
Technical Soundness
- Is the source code readable, with a consistent style and formatting and meaningful variable names?
- Is there a steady flow of commits to Git?
- Is the JavaScript console free of errors and warnings?