Skip to content

About

Таск треккер - для людей и для ИИ

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1,222 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Base Task Tracker - planning, kanban, issues and reporting

Overview Capabilities Quick start Visual proof CLI Safety Quality

Rust 2024 Axum REST API PostgreSQL 17 Redis 8 React 19 OpenAPI Repository CI


Base Task Tracker — self-hosted task tracker для FerrPOINT: проекты, задачи, kanban, backlog, sprints, comments, attachments, notifications, reports и admin tooling. Это продуктовый MVP/hardening branch, а не hosted multi-tenant SaaS. Env-префикс: TASKTRACKER_.

Обзор и Snapshot

Поле Значение
Backend Rust 2024 workspace: api, app, domain, infra, shared, server, cli, migration
Data PostgreSQL 17, Redis 8
Frontend React 19, Vite, Tailwind CSS
API openapi/openapi.json — canonical contract
Порты repository-local: frontend 19877, backend 3456; Base umbrella: frontend 7722, API 7721, PostgreSQL/Redis — loopback 7723/7724
Identity Локальная auth + TOTP MFA (RFC 6238, recovery codes); в Base umbrella — бридж к central auth
License FerrPOINT Proprietary Source-Available Evaluation License v1.0

Default Ports

Сервис Доступ Описание
Frontend Docker 19877 Nginx static frontend
Backend 3456 API
PostgreSQL internal compose network DB, не публикуется наружу
Redis internal compose network cache, не публикуется наружу

Возможности

Feature Описание
Projects and issues Projects, members, issue detail, comments, attachments и search.
Planning Kanban boards, backlog, sprints и worklog.
Metadata Priorities, labels, issue types, links, watchers, votes, components и versions.
Reporting Velocity, burndown, cumulative flow и control chart.
Notifications In-app center, SSE push, email digest worker и per-user delivery settings.
Administration Users, instance settings, audit log, security headers, rate limits и Prometheus metrics.
CLI task-tracker binary с JSON/table/compact output.

Capability Details

Area Details
Projects and issues Projects с kanban boards, backlog, dashboard и search; issue create/edit/status transitions, comments, attachments, priorities, labels, issue types, links, assignees и worklog.
Kanban and sprints Drag-and-drop board columns, sprint planning и reports: velocity, burndown, cumulative flow и control chart.
Notifications In-app center, unread counters, SSE NotificationCreated, hourly/daily email digest, email_frequency, disabled_event_types и notify_own_changes.
Watchers and votes Watch subscriptions, issue votes и vote counters.
Custom fields Project-level text, number, select, multi-select и date fields с required flags и issue-level values.
Components and versions Project components, release/milestone versions, released/release_date, affected/fix version links.
Soft delete deleted_at trash model, restore и permanent purge.
Search/admin JQL search, admin panel, users, instance settings, audit log, security headers, rate limiting и Prometheus metrics.

Быстрый старт

cp .env.example .env
# Задать POSTGRES_PASSWORD и TASKTRACKER_JWT_SECRET в .env
docker compose up --build -d
curl -fsS http://127.0.0.1:3456/api/v1/health

Frontend dev:

cd frontend
pnpm install
pnpm generate:api
pnpm dev

Vite открывает http://localhost:5173 и проксирует API-вызовы на backend.

Port override:

BACKEND_PORT=3456
FRONTEND_PORT=19877

После смены host-портов пересоздайте сервисы через docker compose up -d. Внутри compose-сети backend слушает 3456; настройки backend используют формат TASKTRACKER_SECTION__KEY, например TASKTRACKER_SERVER__CORS_ALLOWED_ORIGINS.

Развернутые материалы: docs/DEPLOYMENT.md, docs/ARCHITECTURE.md, docs/API.md, docs/CLI.md.

Визуальные доказательства

Скриншоты сняты Playwright на детерминированных данных при 1920x1080 в default theme. Responsive QA, включая mobile и отсутствие горизонтального переполнения, ведётся отдельно; маршруты, viewport и PNG-размеры перечислены в screenshot manifest.

Отдельная приёмка общего Header на production-образе с настоящим SSO/API: responsive evidence. Она не заменяет каноническую галерею выше или финальный платформенный release gate.

Глобальный logout-тест в frontend/e2e/sso-live.spec.ts проверяет выход из всех шести UI, включая меню аккаунта и серверную ссылку Workflow; отзыв браузерной сессии не должен отзывать личный API-токен.

Проекты (wide)

Проекты

Создание задачи (reading/form)

Создание задачи

Карточка задачи (detail-with-aside)

Карточка задачи

CLI

cd backend
cargo build --bin task-tracker

export TASKTRACKER_API_URL=http://localhost:3456/api/v1
export TASKTRACKER_TOKEN=<jwt_token>

./target/debug/task-tracker project list
./target/debug/task-tracker issue create --project-key DEMO --summary "Fix bug" --priority high
./target/debug/task-tracker issue list --project-key DEMO --output table
./target/debug/task-tracker board get --project-key DEMO

CLI command documentation: docs/CLI.md. AI usage notes: cli/SKILL.md.

Архитектура

flowchart TD
    UI[React SPA] --> API[Axum API]
    CLI[task-tracker CLI] --> API
    API --> App[Application services]
    App --> Domain[Domain contracts]
    App --> Repo[SeaORM repositories]
    Repo --> DB[(PostgreSQL)]
    API --> Redis[(Redis)]
    App --> Notify[SSE + email digest]
    API --> OpenAPI[OpenAPI contract]
    OpenAPI --> Gen[Generated frontend client]
Loading

Границы

  • PostgreSQL и Redis внутренние в Compose по умолчанию; публикуйте их только осознанно.
  • Перед shared deployments замените все [CHANGE_ME] значения и проверьте JWT, CORS, cookies, TLS и reverse-proxy настройки.
  • Сгенерированный frontend API-код обязан обновляться после изменений OpenAPI.
  • /api/v1/health — liveness; не выводите готовность БД, Redis, email или central-auth из успешного liveness-ответа.

Качество и проверки

Проверка Команда
README contract tests python3 -m unittest scripts.tests.test_verify_readme -v
README assets и anchors python3 scripts/verify_readme.py
Setup / dependencies just setup / just db-up / just db-down
Backend dev just backend-dev
Frontend dev just frontend-dev
API codegen just api-codegen
Backend workspace cd backend && cargo fmt --all -- --check && cargo clippy --workspace --all-targets -- -D warnings && cargo test --workspace -- --test-threads=1
Frontend cd frontend && pnpm openapi:check && pnpm typecheck && pnpm test -- --run && pnpm lint && pnpm build
Browser E2E cd frontend && pnpm test:e2e -- --project=chromium
Compose contract docker compose config -q
Full gates just gate / just test / just e2e

GitHub Actions прогоняет docs-гейт, backend fmt/clippy/tests, OpenAPI drift и frontend gates (typecheck/tests/lint/build). Browser E2E и тяжёлые проверки запускаются локально по необходимости.

Карта проекта

task-tracker/
├── backend/     # Rust workspace: api, app, domain, infra, shared, server, cli, migration
├── frontend/    # React SPA: pages, widgets, generated API client
├── cli/         # CLI binary notes и agent skill
├── openapi/     # canonical API contract
├── docs/        # architecture, deployment, testing, roadmap
└── docker-compose.yml

Документы

Общий UI и управляемый брендинг Base.

Лицензия

Proprietary source-available. Not open source. Viewing/evaluation only.

Commercial, production, resale, redistribution, SaaS/hosting use require written license from FerrPOINT. См. LICENSE, NOTICE и THIRD_PARTY_NOTICES.md.

Нормативные термины и зависимости: PDLC и интеграция с Base.

Разработка UI со справочником Base

Порядок для разработчика и ИИ: версия UI → check → поиск/карточка → один пример → интеграция → проверка поведения. Из корня подготовленного React-продукта: pnpm --dir frontend exec pdlc-ui. Полный каталог и запуск Storybook/API для offline-поиска не нужны. Общие компоненты и брендинг исправляются в Base, данные и правила остаются у продукта.

Единое пространство PDLC

Согласованная M:N-модель и план: реализация в работе. Source, tests, миграция, образы и live dev acceptance учитываются раздельно; документация цели не подтверждает установленную политику.

Ручные долгие проверки

Долгие opt-in PostgreSQL/integration и браузерные E2E запускаются только через явный workflow_dispatch существующего CI. В Actions выберите CI, ветку и «Run workflow»; сохранены прежние адресные inputs, если они предусмотрены. Обычные PR/push не запускают эти шаги. Быстрые unit, format, typecheck, lint и build-проверки сохраняют прежние условия. Команды, assertions, зависимости и timeouts долгих сценариев не меняются.

Долгий набор также можно запускать вручную штатными командами проекта. Успешный автоматический CI подтверждает быстрый набор; он не подтверждает пропущенную integration/live/E2E приёмку. Перед относящейся к данным или безопасности поставкой необходимый адресный manual gate остаётся обязательным.

Полный workspace-набор тоже ручной: автоматический backend выполняет короткие SDK/domain unit tests; прежний полный набор сохранён с manual predicate.

Владелец identity references и Admin metadata

Private check/freeze/release сохраняет durable fences и прежнюю identity-историю; unknown references не превращаются в zero. Настройки TT_IDENTITY_LEGACY_ISSUER и TT_IDENTITY_DELETION_COORDINATOR_SUBJECTS требуют операторской проверки deployment; примеры в .env.example закомментированы. Human Admin memberships по умолчанию недоступны: только явный TT_USER_MANAGEMENT_READ_ENABLED=true включает read-only проекцию. TT_USER_MANAGEMENT_MACHINE_SUBJECTS исключает subjects, не выдаёт полномочий. См. deployment и контракт. Отдельный genuine owner curl не подтверждает полный cohort восьми owners, Kubernetes или установленный rollout.

About

Таск треккер - для людей и для ИИ

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages