From 2cc7f8646811601ac29872af4c4dceaf06506aea Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 10 Apr 2026 22:41:36 +0300 Subject: [PATCH 1/3] docs: add README with stack and quick start guide --- README.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 65 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6d83c08..b821479 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,65 @@ -# task-tracker-backend -Task-tracker-backend +# Task Tracker Backend πŸš€ + +БоврСмСнная лёгкая open-source систСма управлСния IT-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ (Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Jira/Yandex Tracker). БэкСнд построСн Π½Π° Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ стСкС с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + +**Бтатус:** `In Development` + +## πŸ›  ВСхнологичСский стСк + +- **Runtime:** Node.js 22+ (pnpm) +- **Framework:** NestJS 11 (**Fastify**) +- **Database:** PostgreSQL + **Drizzle ORM** +- **Validation:** Zod +- **API:** Swagger (OpenAPI) +- **Infrastructure:** Docker (Multi-stage builds) +- **Testing:** Vitest + +## ⚑ Quick Start + +### 1. ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ + +Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»Π° окруТСния ΠΈ настройтС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ (Π‘Π”, API ΠΊΠ»ΡŽΡ‡ΠΈ DeepSeek): + +```bash +cp .env.example .env +``` + +### 2. Запуск Ρ‡Π΅Ρ€Π΅Π· Docker (РСкомСндуСтся) + +ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½: + +```bash +docker-compose up --build +``` + +### 3. Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ запуск + +Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Π΅Π· Docker: + +```bash +pnpm install +pnpm db:generate +pnpm db:migrate +pnpm start:dev +``` + +## πŸ“– API Documentation + +ПослС запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° докумСнтация доступна ΠΏΠΎ адрСсу: + +**http://localhost:3000/api/v1/docs** + +> Note: +> ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ drizzle-zod для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ схСм. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ докумСнтация Π² Swagger всСгда Π½Π° 100% соотвСтствуСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ запросов. + +## πŸ“‚ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° + +- src/ β€” основная бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°. +- libs/bootstrap β€” Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ настройки прилоТСния. +- src/shared/entities β€” описаниС схСм Π΄Π°Π½Π½Ρ‹Ρ… Drizzle. +- test/ β€” E2E ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты Π½Π° Vitest. + +## πŸš€ Infrastructure + +- CI/CD: НастроСны GitHub Actions для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π° ΠΈ запуска тСстов. +- Docker: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ multi-stage ΠΎΠ±Ρ€Π°Π·Ρ‹ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° production-Π±ΠΈΠ»Π΄Π°. From d3b76ad530ea8100bdc3099375c59231f1e841c6 Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 10 Apr 2026 22:49:47 +0300 Subject: [PATCH 2/3] docs: add contributing guidelines with development standards --- CONTRIBUTING.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..8272506 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,59 @@ +# Contributing Guidelines 🀝 + +Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚! Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ высокоС качСство ΠΊΠΎΠ΄Π° ΠΈ чистоту истории ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΌΡ‹ слСдуСм строгим стандартам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. + +## 1. Workflow (Π Π°Π±ΠΎΡ‚Π° с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ) + +ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ **Trunk-based** ΠΏΠΎΠ΄Ρ…ΠΎΠ΄. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ `main` (trunk) β€” СдинствСнный источник истины. + +- **Π—Π°ΠΏΡ€Π΅Ρ‚ Π½Π° прямыС ΠΏΡƒΡˆΠΈ:** ΠŸΡƒΡˆ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² `main` (ΠΈΠ»ΠΈ `master/dev`) строго Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½. Π›ΡŽΠ±Ρ‹Π΅ измСнСния вносятся **Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· Pull Request (PR)**. +- **Code Review:** ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ PR Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠ΅Ρ€Π΄ΠΆΠ΅ΠΌ. +- **Short-lived branches:** Π’Π΅Ρ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ (1-2 дня). + +**ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования Π²Π΅Ρ‚ΠΎΠΊ:** + +- `feat/` β€” для Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… возмоТностСй. +- `fix/` β€” для исправлСния Π±Π°Π³ΠΎΠ². +- `refactor/` β€” для пСрСписывания ΠΊΠΎΠ΄Π° Π±Π΅Π· измСнСния Π»ΠΎΠ³ΠΈΠΊΠΈ. +- `docs/` β€” для обновлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. + +## 2. Commit Message Convention + +ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ стандарт **Conventional Commits**. Π­Ρ‚ΠΎ позволяСт автоматичСски Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Π² чистотС. + +**Π€ΠΎΡ€ΠΌΠ°Ρ‚:** `(): ` + +- **ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** `feat(database): add user entity and drizzle migrations` +- **ΠŸΡ€ΠΈΠΌΠ΅Ρ€:** `fix(auth): resolve jwt expiration issue` + +## 3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ стандарты ΠΊΠΎΠ΄Π° + +- **Validation (Zod):** ИспользованиС схСм **Zod** для эндпоинтов (DTO) ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. Π‘Π΅Π· Π½ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ валидация Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ автоматичСская типизация Π² Swagger. +- **Linting & Formatting:** ΠŸΠ΅Ρ€Π΅Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ запускайтС `pnpm lint` ΠΈ `pnpm format`. Код, Π½Π΅ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΌ, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ принят. +- **Drizzle Migrations:** **Никаких Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ….** ВсС измСнСния схСм Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒΡΡ миграциями. + - Команда: `pnpm db:generate` +- **No God-commits:** РаздСляйтС свои измСнСния Π½Π° нСбольшиС логичСскиС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. + +## 4. Pull Request (PR) Process + +ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ PR, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ: + +1. **Self-Review:** Π’Ρ‹ сами ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡ‚Π°Π»ΠΈ свой ΠΊΠΎΠ΄ ΠΈ ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ Π»ΠΎΠ³ΠΈ (`console.log`). +2. **Checks:** ВсС автоматичСскиС тСсты (`pnpm test`) ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€ проходят ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ. +3. **Description:** Π’ описании PR Ρ‡Π΅Ρ‚ΠΊΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±Ρ‹Π»ΠΎ сдСлано ΠΈ Π·Π°Ρ‡Π΅ΠΌ. + +_PR Π½Π΅ принимаСтся, Ссли тСсты ΠΈΠ»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€ ΡƒΠΏΠ°Π»ΠΈ Π½Π° этапС CI._ + +## 5. Local Setup + +Для быстрой настройки локального окруТСния ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ **Quick Start** Π² [README.md](./README.md). + +ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ список ΠΊΠΎΠΌΠ°Π½Π΄ для старта: + +```bash +pnpm install +cp .env.example .env +pnpm db:generate +pnpm db:migrate +pnpm start:dev +``` From 82d78a23ea495be874d9554b1fdf3e67160a5090 Mon Sep 17 00:00:00 2001 From: Maxim Date: Fri, 10 Apr 2026 22:56:13 +0300 Subject: [PATCH 3/3] chore: bump per reviewer requests --- README.md | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index b821479..cd789c0 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ **Бтатус:** `In Development` -## πŸ›  ВСхнологичСский стСк +## ВСхнологичСский стСк - **Runtime:** Node.js 22+ (pnpm) - **Framework:** NestJS 11 (**Fastify**) @@ -14,7 +14,7 @@ - **Infrastructure:** Docker (Multi-stage builds) - **Testing:** Vitest -## ⚑ Quick Start +## Quick Start ### 1. ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ @@ -43,23 +43,13 @@ pnpm db:migrate pnpm start:dev ``` -## πŸ“– API Documentation +## API Documentation ПослС запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° докумСнтация доступна ΠΏΠΎ адрСсу: **http://localhost:3000/api/v1/docs** -> Note: -> ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ drizzle-zod для автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ схСм. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ докумСнтация Π² Swagger всСгда Π½Π° 100% соотвСтствуСт Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ запросов. - -## πŸ“‚ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° - -- src/ β€” основная бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°. -- libs/bootstrap β€” Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ настройки прилоТСния. -- src/shared/entities β€” описаниС схСм Π΄Π°Π½Π½Ρ‹Ρ… Drizzle. -- test/ β€” E2E ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты Π½Π° Vitest. - -## πŸš€ Infrastructure +## Infrastructure - CI/CD: НастроСны GitHub Actions для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ², Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π° ΠΈ запуска тСстов. - Docker: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ multi-stage ΠΎΠ±Ρ€Π°Π·Ρ‹ для ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° production-Π±ΠΈΠ»Π΄Π°.