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?


  • 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?


  • 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?


  • 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?


Leave a Reply

Your email address will not be published. Required fields are marked *