5.6 KiB
🔍 Deep Code Analysis Report
Generated: 2026-06-12T19:18:10.577328
Path: /home/long/project/gaokao-volunteer-system
📋 Executive Summary
- Total Files: 107
- Total Lines: 25,582
- Architecture Style: MVC
- Entry Points: 1
- Data Models: 123
- Business Rules: 218
- External Dependencies: 66
🏗️ Architecture
Style: MVC
Layers/Modules:
admin/data/scripts/tests/skills/
🚀 Entry Points & Execution Flow
main
- Location:
admin/app.py - Parameters: argv
- Business Logic: ❌ No
- Calls: ArgumentParser, add_argument, add_argument, add_argument, add_argument
📊 Data Models
Core Entities
UserOrderRecord (admin/users.py)
CaseRecord (data/cases/models.py)
DTOs/Value Objects
- OrderSummaryResponse - admin/routes/orders.py
- OrderMutationResponse - admin/routes/orders.py
- CreateOrderRequest - admin/routes/orders.py
- UpdateOrderRequest - admin/routes/orders.py
- UserSummaryResponse - admin/routes/users.py
📜 Business Rules
Validation Rules (200)
rule_1: Validation in login
- Location:
locustfile.py:login - Priority: medium
- Condition:
if not token: resp.failure("login response missing access_token") se...
rule_2: Validation in hash_password
- Location:
admin/password.py:hash_password - Priority: high
- Condition:
if not plain: raise ValueError("password cannot be empty") salt = secrets.token_bytes(_S...
rule_3: Validation in verify_password
- Location:
admin/password.py:verify_password - Priority: high
- Condition:
if not plain or not stored or _STORED_SEPARATOR not in stored: return False salt_hex, ha...
rule_4: Validation in authenticate
- Location:
admin/db.py:authenticate - Priority: medium
- Condition:
if result is None: return None user, password_hash = result if not user.is_active: ...
rule_5: Validation in authenticate
- Location:
admin/db.py:authenticate - Priority: medium
- Condition:
if not user.is_active: return None if not verify_password(password, password_hash): ...
Constraint Rules (18)
rule_9: Business constraint in log_event
-
Location:
admin/logging_utils.py:log_event -
Priority: critical
-
Condition: `if not event: raise ValueError("log_event: 'event' is required")
safe_fields: Dict[str,...`
rule_12: Business constraint in log_event_exc
- Location:
admin/logging_utils.py:log_event_exc - Priority: critical
- Condition:
if not event: raise ValueError("log_event_exc: 'event' is required") safe_fields: Dict[s...
rule_54: Business constraint in main
- Location:
skills/gaokao-audit/scripts/validate_template.py:main - Priority: critical
- Condition:
if needle not in text: print(f"FAIL: placeholder missing: {needle!r}") retur...
rule_55: Business constraint in main
- Location:
skills/gaokao-audit/scripts/validate_template.py:main - Priority: critical
- Condition:
if needle not in rendered: print(f"FAIL: rendered output missing: {needle!r}") ...
rule_68: Business constraint in base62_encode
- Location:
data/share/short_link.py:base62_encode - Priority: critical
- Condition:
if num < 0: raise ValueError("num must be >= 0") if num == 0: return BASE62_ALPH...
🔗 External Dependencies
Other Dependencies
- locust
- datetime
- secrets
- dataclasses
- argparse
- urllib
- xianyu_adapter
- admin
- fastapi
- tempfile
- uuid
- collections
- schema
- json
- jinja2
💧 Data Flows
- external → admin/password.py:verify_password
- Data: plain, stored
- Trigger: function_call
- external → admin/db.py:create
- Data: username, password, role
- Trigger: function_call
- external → admin/db.py:update_last_login
- Data: user_id
- Trigger: function_call
- external → admin/app.py:_validate_and_log_settings
- Data: settings
- Trigger: function_call
- external → admin/app.py:create_app
- Data: settings
- Trigger: function_call
- external → admin/stats.py:generate_day_series
- Data: db_path
- Trigger: function_call
- external → scripts/gaokao-quick-3min.py:generate_quick_summary
- Data: info
- Trigger: function_call
- external → scripts/gaokao-quick-3min.py:generate_quick_recommendation
- Data: info
- Trigger: function_call
- external → scripts/gaokao-visual-report-v2.py:generate_student_radar
- Data: student_profile
- Trigger: function_call
- external → scripts/gaokao-visual-report-v2.py:generate_school_comparison
- Data: volunteer_list
- Trigger: function_call
🛤️ Key Execution Paths
main
Entry point: admin/app.py
Steps:
main
main
Entry point: scripts/gaokao-quick-3min.py
Steps:
main
run
Entry point: scripts/gaokao-collect-info.py
Steps:
runmain_git_run_cli_remote_headtest_supports_async_functiontest_audit_report_template_renders_init_repo... and 2 more
💡 Recommendations
For Understanding This Codebase
- Start with entry points listed above
- Review core entities and their relationships
- Trace execution paths for key features
- Review business rules for domain logic
- Check external dependencies for integration points
For Code Quality
- Add documentation to entry points
- Document business rules explicitly
- Create architecture decision records (ADRs)
- Add data flow diagrams