3.5 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Subdirectories have their own CLAUDE.md with module-specific details — see:
system-admin/CLAUDE.md— backend build, patterns, conventions, weather domainsystem-common/CLAUDE.md— shared base classes, i18nweather-data-ui/CLAUDE.md— frontend stack, patterns, critical rules
Project overview
weather-data is a full-stack meteorological data analysis platform: Java 17 / Spring Boot 3.5 multi-module backend + Vue 3 / Vite 5 / TypeScript frontend. Forked from renren-security.
weather-data/
├── system-common/ → shared Java lib
├── system-admin/ → admin backend (port 8080, /system-admin)
├── system-dynamic-datasource → multi-DS routing via @DataSource annotation + AOP
├── renren-generator/ → code generator (commented out of build)
└── weather-data-ui/ → Vue 3 SPA frontend
Database: weather_data_system (MySQL). Init from system-admin/db/weather_data_system.sql (includes schema + seed data). Default admin: admin / admin (BCrypt-encoded). Key custom tables: weather_daily_data, weather_station, weather_file_scan_record. No Flyway/Liquibase — all schema changes are manual SQL.
Port & context path reference
| Service | Port | Context Path | App Class |
|---|---|---|---|
| Admin | 8080 | /system-admin |
AdminApplication |
| Frontend (dev) | 8001 | / |
Vite dev server |
| Frontend (prod) | 80 | / |
Nginx via gateway |
Code Style
- No emoji in UI strings. Plain Chinese text for labels, buttons, status. Functional Unicode symbols are allowed and used: status dots
●/○, checkmark✓, and box-drawing chars (╔ ═ ╗ ━) in log banners. - No emoji in code comments or docstrings. Plain text only.
- Keep CLAUDE.md current — whenever code is modified, added, deleted, or any file change affects the project structure, build process, architecture, or conventions, update the relevant
CLAUDE.mdin the same commit to reflect the new state. This file and its children are the source of truth for both humans and Claude; stale documentation is a bug.
Docker deployment
Five services in docker-compose.yml: mysql (8.0), redis (7 Alpine + AOF), admin JAR, UI (Nginx + built frontend), gateway (Nginx reverse proxy on port 80). The api service definition still references the deleted system-api module — remove it before deploying.
Important: The deploy/ directory referenced by Docker Compose (deploy/mysql/init/, deploy/nginx/) does not exist locally — it must be created for deployment.
Environment variables from .env at project root. Two frontend Dockerfiles: standard multi-stage (Dockerfile) and pre-built (Dockerfile.offline).
Repository notes
README.mddoes not contain substantive guidance — this file is the primary operational reference.- No CI configuration exists. Only pre-commit is frontend lint-staged via yarn git hooks.
renren-generatormodule exists but is commented out of the root POM build.system-dynamic-datasourceprovides@DataSourceannotation-driven multi-DS routing; the slave DS config inapplication-dev.ymlis commented out..gitignoreexcludes.idea/but.idea/is tracked (committed IDE config;.idea/.gitignoreonly excludes local files likeworkspace.xml).