React Developer Grading Rubric
Used to review your project or portfolio submission.
When you view the rubric, you will be taken to a third-party site.
To qualify for an interview, you must receive a cumulative score of Satisfactory or higher.
Criteria |
Unsatisfactory |
Satisfactory |
Exceptional |
---|---|---|---|
App Structure The app's overall file and component structure. |
Files show multiple signs of poor planning such as unused imports, overly-complex state management solutions, improvised file names (e.g. "modal1, modal2"), or unused dependencies. |
Project is reasonably well-organized with mostly modular components, clear file names, concise state management, and few if any unused imports or dependencies. |
Project is extremely well organized with intuitive file and component structures and elegant state management. |
Organization The source code's readability and overall cleanliness. |
Files do not follow a consistent pattern, variable names are vague or nonspecific, and codebase is primarily imperative and rigid, handling a narrow range of inputs with poor or no logic for handling edge cases. |
Files mostly follow a consistent pattern, variable names are semantic and self-explanatory, and codebase is primarily declarative and flexible, handling a broad range of inputs with basic logic for handling edge cases. |
Files all follow a clean, consistent pattern, use semantic variable names, follow declarative best practices, and achieve a healthy balance between too verbose and too abbreviated. |
Documentation The comments within code files and the documentation around the project. |
Project has little to no documentation at all. Code either has no comments or comments are vague and would only make sense to the original author (e.g. "for the dialog thing") |
Project has some public documentation that is reasonably well-written and provides accurate instructions. Code contains some comments in areas likely to cause confusion without them. |
Project has rich, public documentation. Code is thoroughly annotated and fully leverages typescript annotations for interfaces, props, and global types. |
Scalability How well the project would scale with more users, content, or additional features over time. |
Code exhibits several traits that would limit scalability such as lists that do not have empty or overflow states, no unified standards for data fetching, and failure to leverage modular components properly. |
Code may exhibit a small number of scalability problems, but they are low severity and do not impact core functionality. |
Code exhibits no discernible scalability problems. |
Functionality How well the app functions during basic end-to-end tests. |
Core features do not function properly in basic scenarios, and errors are either not handled at all or do not communicate error states to the user properly. |
Core features function properly and errors are handled with clear feedback for the user. Testing revealed a few bugs but they were nonbreaking, cosmetic, or otherwise low-severity. |
All features function well and testers were unable to find bugs as an end user, and any and all errors that do need handling provide highly clear, actionable feedback for the user. |