chore: sync local changes (2026-03-12)

This commit is contained in:
2026-03-12 18:58:55 +08:00
parent 4573a21f88
commit c903101d86
39 changed files with 1112 additions and 483 deletions

47
AGENTS.md Normal file
View File

@@ -0,0 +1,47 @@
# Repository Guidelines
## Project Structure & Module Organization
- `mengyaprofile-frontend/`: React (Create React App) UI (`src/`, `public/`).
- `mengyaprofile-backend/`: Flask API (`app.py`) plus site content in `data/*.json` and assets in `data/logo/`, `data/background/`.
- Root `*.bat`: Windows helper scripts for starting/building locally.
## Build, Test, and Development Commands
```bash
# Backend (Flask API)
cd mengyaprofile-backend
python -m pip install -r requirements.txt
python app.py # http://localhost:5000
# Frontend (React)
cd ../mengyaprofile-frontend
npm install
npm start # http://localhost:3000
npm test # Jest/RTL in watch mode
npm run build # production build to ./build
```
- Windows shortcuts: `start-backend.bat`, `start-frontend.bat`, `build-frontend.bat`.
- Docker (optional): `docker compose -f mengyaprofile-backend/docker-compose.yml up -d --build` (adjust the volume path for your machine).
## Coding Style & Naming Conventions
- Python: PEP 8, 4-space indents; keep API routes under `/api/*` in `mengyaprofile-backend/app.py`.
- React: 2-space indents; components live in `mengyaprofile-frontend/src/components/` with `PascalCase` filenames (e.g., `TechStackSection.js`).
- Data files: edit `mengyaprofile-backend/data/*.json` (UTF-8). Prefer stable keys and keep lists ordered to produce readable diffs.
## Testing Guidelines
- Frontend tests live in `mengyaprofile-frontend/src/**/*.test.js` (example: `src/App.test.js`); run via `npm test`.
- Backend currently has no test suite; if adding one, use `pytest` and place tests under `mengyaprofile-backend/tests/`.
## Commit & Pull Request Guidelines
- Current Git history uses short subjects (e.g., “Initial commit”, “初始化提交”); keep messages concise and scoped (`frontend: ...`, `backend: ...`).
- PRs: describe behavior changes, link issues, include screenshots for UI changes, and call out any `data/*.json` schema updates.
## Security & Configuration Tips
- “Admin mode” is client-side (`/admin?token=...`) and not a security boundary—do not store secrets in this repo.
- Useful env vars: backend `RUN_MODE`, `DATA_DIR`, `BACKGROUND_DIR`, `PORT`; frontend `REACT_APP_API_URL` (use `.env.local`).