Correctness 1 -- Major features don't work properly. 2 -- Simple search works, but significant bugs in the system as a whole. 3 -- Only minor bugs found. 4 -- All documented features work properly based on moderate testing. (This score is available only if the feature scope receives a score of at least 3. Otherwise, the highest score in this category is 3.) Feature scope 1 -- Minimal client-server-DB communication only. Alternatively, minimal search functions, but no DB. 2 -- Client-server-DB communication works, along with one or two simple search types. 3 -- Multiple search types, including the most likely operations a reasonable person would expect the dataset in question to support. Output in a useful and understandable form. 4 -- Everything as in 3, but with particularly creative and useful ways to view or manipulate the data. Code construction 1 -- Poor organization, naming, style, etc. Programs in this category typically have minimal modularity and are quite hard to extend. 2 -- Some attention to modularity / separation of concerns, but many stylistic and organizational problems. Programs in this category usually have a couple functions that do several jobs apiece, a large amount of straight-line code, and poor name choices, and are normally quite difficult to read and understand. 3 -- Mostly good modularity (with functions and/or classes well suited to the project), attention to descriptive naming, etc. Programs in this category can usually benefit from a rethinking of the storage of key data types or a reorganization of the flow of control, but they are also quite easy to understand and reasonably easy to extend. 4 -- Excellent organization and naming, clean separation of key data types into suitable classes (or well used language features), very clear opportunities for extension to new features. Documentation 1 -- Minimal or no comments describing functions and methods; inattention to top-of-source-file boiler plate (author names and brief description); minimal or no readme describing the status and usage of the program. 2 -- Some attempt to provide comments and requested documentation, but unclear or insufficient. 3 -- Documents and comments provide clear guidance to programmers who need to repair or modify your code. 4 -- Documents and comments provide an unusual level of clarity for programmer/readers. Responsiveness to feedback 1 -- Feedback mostly ignored. 2 -- Only minor changes made in response to feedback, resulting in little improvement in the code. 3 -- Most recommendations implemented, resulting in better code. 4 -- Recommendations either implemented, resulting in better code, or rejected with persuasive explanation of why (in the readme file). Total score: 3 * correctness + 3 * scope + 6 * construction + 2 * documentation + 2 * responsiveness Rough gradelines: 56-64: A-, A 40-55: B-, B, B+ 32-39: C-, C, C+