# Repository Guidelines ## Project Structure & Module Organization This repository is a RuoYi-based Java 8/Spring Boot backend with a Vue 2 admin frontend. Backend Maven modules live at the root: `ruoyi-admin` is the admin app, `ruoyi-applet` is the applet app, `ruoyi-system` holds business services and mappers, `ruoyi-framework` provides shared configuration, `ruoyi-common` contains utilities, `ruoyi-quartz` handles jobs, and `ruoyi-generator` handles code generation. Frontend code is in `ruoyi-ui/src`; assets are under `ruoyi-ui/public` and `ruoyi-ui/src/assets`. Documents belong in `doc/`. Do not edit generated `target/` output. ## Build, Test, and Development Commands - `mvn clean package -DskipTests`: builds all backend modules without running tests. - `mvn test`: runs backend tests. - `mvn -pl ruoyi-admin -am spring-boot:run`: starts the admin backend. - `mvn -pl ruoyi-applet -am spring-boot:run`: starts the applet backend. - `cd ruoyi-ui && npm install`: installs frontend dependencies. - `cd ruoyi-ui && npm run dev`: starts the Vue development server. - `cd ruoyi-ui && npm run build:prod`: creates the production frontend build. - `cd ruoyi-ui && npm run lint`: runs ESLint on `src/**/*.js` and `src/**/*.vue`. ## Coding Style & Naming Conventions Use Java 8 and UTF-8. Follow RuoYi layering: controllers under `web/controller`, services under `service`, domain objects under `domain`, and MyBatis mappers under `mapper`. Java classes use `PascalCase`; methods, fields, and Vue/JS variables use `camelCase`. Keep controllers thin and place business logic in services. Frontend formatting follows `ruoyi-ui/.editorconfig`: two-space indentation, LF line endings, final newline, and trimmed trailing whitespace except Markdown. ESLint enforces single quotes and no semicolons. ## Testing Guidelines Place backend tests in each module's `src/test/java` tree. Use names such as `UserServiceTest.java` or `CodeGeneratorTests.java`. Cover service logic, mapper behavior, permissions, and regressions before changing `ruoyi-common` or `ruoyi-framework`. Run `mvn test` before backend PRs and `npm run lint` before frontend PRs. The frontend has no dedicated test script, so add one before relying on frontend automated tests. ## Commit & Pull Request Guidelines Git history only shows `Initial commit`; use concise imperative commits with an optional scope, for example `system: add mission status validation`. Pull requests should describe the change, list verification commands, link issues, and include screenshots for UI changes. Keep PRs focused; separate backend, frontend, database, and generated-code changes when possible. ## Security & Configuration Tips Do not commit credentials or production-only values in `application-*.yml` or `.env.*`. Prefer local overrides outside version control. Review database, Redis, upload-path, and token settings before running non-local profiles.