49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# Repository Guidelines
|
||
|
||
## Project Structure & Module Organization
|
||
|
||
Core application code lives in `src/`. Domain modules are split by business area: `auth/`, `users/`, `tasks/`, `patients/`, and `organization/`. Keep controllers, services, and DTOs inside their module directories (for example, `src/tasks/dto/`).
|
||
|
||
Shared infrastructure is in `src/common/` (global response/exception handling, constants) plus `src/prisma.module.ts` and `src/prisma.service.ts`. Database schema and migrations are under `prisma/`, and generated Prisma artifacts are in `src/generated/prisma/`. API behavior notes are documented in `docs/*.md`.
|
||
|
||
## Build, Test, and Development Commands
|
||
|
||
Use `pnpm` for all local workflows:
|
||
|
||
- `pnpm install`: install dependencies.
|
||
- `pnpm start:dev`: run NestJS in watch mode.
|
||
- `pnpm build`: compile TypeScript to `dist/`.
|
||
- `pnpm start:prod`: run compiled output from `dist/main`.
|
||
- `pnpm format`: apply Prettier to `src/**/*.ts` (and `test/**/*.ts` when present).
|
||
- `pnpm prisma generate`: regenerate Prisma client after schema changes.
|
||
- `pnpm prisma migrate dev`: create/apply local migrations.
|
||
|
||
## Coding Style & Naming Conventions
|
||
|
||
This repo uses TypeScript + NestJS with ES module imports (use `.js` suffix in local imports). Formatting is Prettier-driven (`singleQuote: true`, `trailingComma: all`); keep 2-space indentation and avoid manual style drift.
|
||
|
||
Use `PascalCase` for classes (`TaskService`), `camelCase` for methods/variables, and `kebab-case` for filenames (`publish-task.dto.ts`). Place DTOs under `dto/` and keep validation decorators/messages close to fields.
|
||
|
||
## Testing Guidelines
|
||
|
||
There are currently no committed `test` scripts or spec files. For new features, add automated tests using `@nestjs/testing` and `supertest` (already in dev dependencies), with names like `*.spec.ts`.
|
||
|
||
Minimum expectation for new endpoints: one success path and one authorization/validation failure path. Include test run instructions in the PR when introducing test tooling.
|
||
|
||
## Commit & Pull Request Guidelines
|
||
|
||
Recent history uses short, single-line subjects (for example: `配置数据库生成用户模块`, `测试`, `init`). Keep commits focused and descriptive, one logical change per commit.
|
||
|
||
For PRs, include:
|
||
|
||
- What changed and why.
|
||
- Related issue/task link.
|
||
- API or schema impact (`prisma/schema.prisma`, migrations, env vars).
|
||
- Verification steps (for example, `pnpm build`, key endpoint checks in `/api/docs`).
|
||
|
||
## Security & Configuration Tips
|
||
|
||
Start from `.env.example`; never commit real secrets. Rotate `AUTH_TOKEN_SECRET` and bootstrap keys per environment, and treat `DATABASE_URL` as sensitive.
|
||
|
||
使用nest cli,不要直接改配置文件,最后发给我安装命令,让我执行,中文注释和文档
|