CRM для клиентов, проектов и команды
TaskFlow собирает рабочие данные команды в одном месте: контакты клиентов, проекты, состав участников, переписку и финансы. Из карточки проекта можно перейти к договорённостям, проверить затраченное время и поступившие платежи. Общий обзор показывает состояние проектов и команды.
Задача — Собрать работу с клиентами и командой в собственной CRM
Мне нужна была система для повседневной работы своей команды: вести клиентов, распределять людей по проектам, сохранять договорённости и учитывать деньги. Важно было видеть связи между этими данными — кто работает над проектом, сколько времени потрачено, что согласовано с клиентом и какие платежи уже поступили. TaskFlow я создавал под эти рабочие сценарии.
Мой вклад — Спроектировал и разработал систему с нуля
Я определил структуру приложения, спроектировал базу данных и API, написал серверную логику и интерфейсы. Реализовал клиентов и проекты, профили сотрудников и структуру команды, учёт часов, переписку и финансовые операции. Добавил авторизацию и роли, английскую и русскую версии, AI-чат и инструменты анализа обсуждений. Сам связывал разделы между собой, чтобы данные проекта использовались в работе команды и финансовом учёте.
- Клиенты и контакты
- Разработал каталог клиентов с контактами, заметками и отдельными карточками. Связал клиентов с проектами, чтобы сохранять контекст работы с каждым заказчиком.
- Проекты и учёт времени
- Реализовал статусы, сроки, плановые часы и состав участников. Добавил записи затраченного времени с исполнителем, датой и комментарием.
- Команда и подчинение
- Разработал профили сотрудников с должностью, ставкой, доступностью и заметками. Сделал интерактивную схему команды с поиском и сменой руководителя.
- Переписка и AI
- Добавил хранение обсуждений внутри проекта, исходный текст и историю анализа. Реализовал отдельный AI-чат с сохранёнными диалогами и работой с контекстом приложения.
- Финансы
- Связал стоимость проектов, комиссии и поступления с общим финансовым обзором. Добавил выплаты сотрудникам, регулярные и разовые расходы.
- Архитектура и доступ
- Спроектировал серверные модули и связи в PostgreSQL. Настроил авторизацию, роли и общие контракты данных для интерфейса и API.
От договорённостей с клиентом до работы команды и расчётов
Вести клиентов и сохранять рабочий контекст
В каталоге собраны клиенты, контактная информация и заметки. Список показывает, какие записи заполнены, а где ещё не хватает данных. В карточке клиента можно посмотреть контакты, историю создания и обновления записи, проверить связь с системным аккаунтом. Редактор позволяет обновить сведения о компании и сохранить важные детали общения для дальнейшей работы.
Следить за проектами, сроками и временем
Список проектов показывает клиента, статус, срок и плановый объём работы. Внутри проекта собраны описание, обратная связь и финансовые условия. Записи времени хранят дату, исполнителя, количество часов и комментарий к работе; их общий объём можно сопоставить с планом. Участники назначаются на проект с конкретной ролью, а договорённости и платежи остаются связаны с той же карточкой.
Работать с составом и структурой команды
В разделе сотрудников видны статус, должность, часовой пояс, ставка и доступность. В профиль можно добавить контакты, резюме и заметки по собеседованиям и совместной работе. Структура подчинения представлена интерактивной схемой: можно найти человека, раскрыть его команду и назначить руководителя. Это позволяет рассматривать сотрудника и как участника отдельного проекта, и как часть общей команды.
Хранить обсуждения рядом с проектом
Для проекта можно сохранить обсуждения из разных источников, указать ссылку и добавить текст переписки. В отдельном окне доступны исходный разговор и история его анализа: договорённости, вопросы и следующие действия остаются рядом. AI-инструменты работают с обсуждениями и контекстом приложения; для самостоятельных запросов есть отдельный чат с историей диалогов. Участники проекта отображаются в том же рабочем разделе.
Учитывать поступления, выплаты и расходы
Финансовый обзор объединяет доходы по проектам, фактические поступления, выплаты сотрудникам и расходы команды. У проекта хранятся начальная и итоговая стоимость, комиссия, валюта и способ оплаты. Поступления записываются отдельно с датой и комментарием. Для расходов предусмотрены регулярные платежи и разовые покупки, а выплаты сотрудникам доступны как в общей таблице, так и в их профилях.
Общие данные для проектов, команды и финансов
Интерфейс написан на React и TypeScript, сервер — на NestJS с Fastify. PostgreSQL хранит клиентов, проекты, участников, часы работы, обсуждения и финансовые записи; Drizzle описывает схему и миграции. Общий пакет контрактов задаёт форматы данных для интерфейса и API. Проверка сессий и ролей выполняется на сервере. AI-инструменты подключены к операциям приложения, а Docker используется для запуска сервисов.
- TypeScript
- React
- NestJS
- Fastify
- PostgreSQL
- Drizzle ORM
- AI APIs
- Docker