dpline-task-manager

DPline

Аналог task manager про дисциплину (игра слов вокруг Discipline без четырёх букв в середине).

Память проекта и план: каталог plan/ — с чего начать, roadmap, бэклог, формат работы с ИИ, шаблон ADR и сессий.

Локальный запуск (монорепа)

Структура: apps/web, apps/api, позже packages/*. Тулчейн — ADR-001: pnpm 9 + workspaces, без Turborepo.

Используй только pnpm из корня репозитория (pnpm install). Не запускай npm i — сломает workspace.

Требования

Установка pnpm (если ещё нет):

npm install -g pnpm@9.15.9
# или: brew install pnpm  — убедись, что версия 9.x, не 11

Установка и проверка

Из корня репозитория:

pnpm install
pnpm list -r --depth -1

В списке должны быть dpline-task-manager, @dpline/web и @dpline/api.

Scripts

pnpm dev         # web + api параллельно
pnpm build       # сборка workspace
pnpm lint        # ESLint (сейчас web)
pnpm typecheck   # tsc по apps/*

PostgreSQL

Нужен запущенный Docker Desktop.

cp .env.example .env          # один раз; .env в git не коммитится
docker compose up -d
docker compose ps             # сервис db / dpline-db

Строка подключения — DATABASE_URL в .env (шаблон в .env.example).

Остановка: docker compose down (данные в volume сохраняются; down -v — сбросить БД).

API (health)

pnpm --filter @dpline/api dev
curl -s http://localhost:3001/health
# → {"status":"ok","databaseUrlConfigured":true}

Api читает корневой .env через dotenv и логирует DATABASE_URL без пароля.

Web

pnpm --filter @dpline/web dev
# → http://localhost:5173  (страница DPline)

CI

На PR и push в dev / main workflow .github/workflows/ci.yml гоняет pnpm lint и pnpm typecheck.