Skip to content

My project #120

@bahromhaitov75

Description

@bahromhaitov75

Создай профессиональную веб-CRM систему с учётом продаж, складского учёта и финансов, готовую к реальной коммерческой эксплуатации и масштабированию

  1. Цель системы
    Создать быструю, надёжную и масштабируемую CRM, предназначенную для:
    • учёта продаж
    • складского учёта
    • управления поставщиками
    • контроля финансов и долгов
    • аналитики и отчётности
    Система должна одинаково удобно работать на ПК, ноутбуке и телефоне, поддерживать много складов, роли пользователей и несколько валют, быть готовой к росту бизнеса и последующей упаковке в .exe.

  2. Техническая архитектура (строго)
    Backend
    • Python
    • Framework: FastAPI
    • Архитектура: REST API + JWT
    • Асинхронная обработка (для скорости)
    • Чёткое разделение:
    o Auth
    o Sales
    o Warehouse
    o Suppliers
    o Finance
    o Reports
    o Settings
    • Валидация данных на сервере
    • Логирование ошибок и действий
    Frontend
    • React
    • TypeScript (обязательно)
    • UI: MUI / Ant Design / Shadcn (один, не мешать)
    • Адаптивная вёрстка (mobile-first)
    • PWA (офлайн-кеш + быстрый запуск)
    • Поддержка светлой и тёмной темы
    База данных
    • PostgreSQL
    • Чёткая нормализация
    • Индексы для поиска
    • Транзакции для продаж и списаний
    • История изменений (audit log)
    Хранение и резервирование
    • Облачное хранилище
    • Автобэкапы:
    o ежедневно
    o хранение минимум 30 дней
    • Возможность ручного бэкапа
    • Экспорт базы

  3. Авторизация и безопасность
    • Логин + пароль
    • Хеширование паролей
    • JWT с обновлением токена
    • Роли пользователей:
    o Владелец
    o Администратор
    o Продавец
    o Склад
    o Просмотр (read-only)
    • Ограничение прав по ролям
    • Лог действий:
    o кто
    o что
    o когда
    o до / после

  4. Продажи (панель продаж)
    Функционал
    • Создание продажи:
    o выбор товара из склада
    o или ручной ввод (с пометкой)
    • Быстрый поиск:
    o по названию
    o по коду
    o по штрих-коду
    • Поддержка:
    o скидки (фикс / %)
    o возвраты
    o отмены продаж
    • Автоматический расчёт:
    o выручки
    o себестоимости
    o прибыли по каждой продаже
    • Продажа автоматически уменьшает остатки на складе
    • Видимость:
    o что есть в наличии
    o что заканчивается
    o где максимальная прибыль

  5. Складской учёт
    Товар
    • Название
    • Категория
    • Цена закупки
    • Цена продажи
    • Код товара
    • Штрих-код
    • Фото
    • Минимальный остаток
    • Привязка к складу
    Операции
    • Приход товара
    • Продажа (автоматическое списание)
    • Ручная корректировка (с логом причины)
    • Подсветка остатков:
    o 0 — красный
    o ниже минимума — жёлтый
    o норма — зелёный
    • Уведомления при минимальном остатке
    • Автоматическое добавление в список заказов

  6. Категории товаров
    Предустановленные:
    • Экран
    • Сенсоры
    • Батарейки
    • SIM-слот
    • Нижняя часть
    • Стекло камеры
    • возможность ручного добавления / редактирования / удаления.

  7. Поставщики
    • ФИО / Название
    • Контакты
    • История закупок
    • Учёт долгов:
    o сумма
    o валюта
    o дата
    o статус
    • Отчёты:
    o у кого закупаем больше всего
    o средняя цена закупки
    o общая сумма закупок

  8. Финансы
    • Учёт оборота
    • Сколько денег вложено в товар
    • Доход / расход
    • Долги:
    o кто
    o кому
    o сколько
    o дата
    o валюта
    • Поддержка валют:
    o TJK
    o USD
    o AED
    • Хранение курса на дату операции

  9. Отчёты и аналитика
    • Продажи:
    o день
    o неделя
    o месяц
    o год
    • Прибыль:
    o по товарам
    o по категориям
    • Топ продаваемые товары
    • Неликвид (лежит без движения)
    • Отчёты по поставщикам
    • Экспорт:
    o Excel
    o PDF
    • Подготовка к печати

  10. Навигация
    Левое вертикальное меню
    • Продажи
    • Склад
    • Поставщики
    • Финансы
    • Отчёты
    • Заказы
    • ТОП
    • ДОЛГ
    • Настройки
    Требования:
    • иконки
    • подсветка активного раздела
    • возможность свернуть меню

  11. Dashboard (главный экран)
    Показывать сразу:
    • выручку сегодня
    • прибыль
    • товары с минимальным остатком
    • быстрые кнопки:
    o добавить продажу
    o добавить товар
    • графики без агрессивных цветов

  12. Формы
    • Минимум полей
    • Разделение на блоки:
    o Основное
    o Дополнительно
    • Ясные ошибки
    • Большая кнопка «Сохранить»
    • Никакого визуального шума

  13. Дизайн (строго)
    • Минимализм
    • Светлый фон (бело-серый)
    • 1 фирменный цвет
    • Красный — только для ошибок и нулевых остатков
    • Скругления и мягкие тени
    • Читабельность при работе 6–8 часов
    Шрифты
    • Заголовки: 20–24px
    • Подзаголовки: 16–18px
    • Таблицы: 13–14px
    • Без декоративных шрифтов

  14. Темы
    • Светлая
    • Тёмная
    Все элементы должны быть читаемыми в обеих темах.

  15. Анимации
    • Плавные
    • Только:
    o открытие окон
    o сохранение
    o переходы
    Без «игрушек».

  16. Мобильная версия
    • Увеличенные кнопки
    • Таблицы → карточки
    • Быстрый поиск
    • Быстрая продажа

  17. Масштабирование и рост
    • Поддержка нескольких складов
    • Поддержка нескольких пользователей
    • Готовность к увеличению объёма данных
    • Миграции базы данных
    • API-документация (Swagger)

  18. Подготовка к .exe
    • Возможность запуска через локальный сервер
    • PWA или Electron-обёртка
    • Автозапуск
    • Работа без интернета с синхронизацией

  19. Качество
    • Код без костылей
    • Читаемая структура
    • Комментарии
    • Предсказуемое поведение
    • Отсутствие магии

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions