Code Review
Review code changes against the project's established conventions. Run git diff (or git diff --staged) to see what changed, then evaluate each file against the rules below.
Review Checklist
For every changed file, check the applicable section:
React (react-app/**/*.{ts,tsx})
- • No
classNameon components -- styling belongs incustom.scsswith page/component-scoped selectors - • Functional components with hooks; no class components
- • Named exports (
export default function X), notexport default () => - • API calls use RTK Query from
functions/api.ts, not raw fetch/axios - • Data-dependent UI wrapped in
<StateHandler> - • Django responses converted from snake_case via
transformResponse - • Interfaces defined in
interfaces.ts - • No hardcoded API URLs -- use
VITE_APP_*env vars
Django (django/**/*.py)
- • PEP 8 naming (snake_case everywhere)
- • Type hints on function signatures
- • Secrets come from
environ.Env, never hardcoded - • Expensive external calls (yfinance, FRED) are cached
- • Batch lookups use the
_partition_cachedpattern - • DRF serializers validate request/response data
- • Responses use snake_case keys
Spring Boot (springboot/**/*.java)
- • Constructor injection, no
@Autowiredon fields - • Logging via SLF4J (
LoggerFactory.getLogger) - • New SEC fields added to both
FIELD_TO_TAGSandSTOCK_FIELDS(if balance-sheet) - • Immutable collections (
Map.ofEntries,List.of) - • Thin controllers; logic lives in
@Serviceclasses
Feedback Format
Rate each finding:
- •Critical -- must fix: bugs, security issues, broken conventions
- •Suggestion -- should fix: style drift, missing error handling, optimization
- •Nit -- optional: naming, minor readability
Workflow
- •Run
git diffto see all changes - •Group findings by file
- •For each file, run through the applicable checklist above
- •Present findings grouped by severity, with code references