# Repository Guidelines

## Project Structure & Module Organization
This repository is a Vue 3 + Vite frontend. Main application code lives in `src/`. Feature areas are organized under `src/modules/`, typically with `views/`, `components/`, `api.ts`, `types.ts`, and `composables/`. Shared UI lives in `src/components/` and `src/components/base/`. Cross-cutting logic is in `src/api/`, `src/utils/`, and `src/composables/`. Pinia stores are in `src/stores/`. Static assets live in `public/` and `src/assets/`.

## Build, Test, and Development Commands
- `npm install`: install dependencies.
- `npm run dev`: start the local Vite dev server.
- `npm run typecheck`: run `vue-tsc --noEmit` for Vue/TypeScript validation.
- `npm run lint`: run ESLint with auto-fix.
- `npm run build:test`: create a test build without deploy.
- `npm run build`: production build plus deploy. Use with care because it runs `npm run deploy`.

## Coding Style & Naming Conventions
Use TypeScript and Vue SFCs with `script setup` where the module already follows that pattern. Use 2-space indentation. Name components in PascalCase, for example `AppCard.vue` or `FormDialog.vue`. Name composables `useXxx.ts`, such as `useGetCourseList.ts`. Keep feature-specific code inside its module folder under `src/modules/...` instead of adding new global utilities unless the code is truly shared.

## Testing Guidelines
There is no dedicated unit test framework configured in this repository today. Minimum validation before opening a PR is:
- `npm run typecheck`
- `npm run lint`
- `npm run build:test` for changes that could affect packaging, routing, or environment-specific behavior

## Commit & Pull Request Guidelines
Recent history uses lightweight messages such as `feat: ...`, `chore: ...`, and `bug fixes`. Prefer consistent prefixes going forward: `feat:`, `fix:`, `chore:`. Keep commit scope focused. PRs should include a short summary, affected modules, linked issues if available, and screenshots or GIFs for UI changes. Also list the validation commands you ran.

## Configuration & Safety Notes
Avoid running `npm run build` unless deployment is intended. Do not commit generated files or macOS artifacts such as `.DS_Store`. When working with upload or deploy flows, verify environment targets before testing against shared infrastructure.
