Repo Health

Рейтинг здоровья открытых репозиториев

Оценка от 0 до 100 по данным SourceCraft.

4 категории из 6, пересчёт раз в сутки. Как считается

  1. 13479–16269roz4lina1/first-rep
    25

    for cpp

    282 дня назад0лайковСравнить
  2. 25

    1. Структура репозитория Рекомендуемая структура папок: text Переносить Свернуть Копировать /src /core /calculator # чистая логика расчётов (без UI и API) - calculate.ts - types.ts - utils.ts /api - handler.ts # основной хендлер (FastAPI/Express/etc.) - routes.ts # роуты - validators.ts # валидация запросов /catalog - sync.ts # импорт/синхронизация каталога (CSV/API) - search.ts # поиск и фильтрация /tests - calculator.spec.ts - api.spec.ts /docs - architecture.md - api-spec.md - data-model.md /data - sample-catalog.json - sample-catalog.csv /scripts - sync-catalog.sh # скрипт синхронизации /docker - Dockerfile - docker-compose.yml .gitignore README.md package.json / pyproject.toml 2. Стек технологий (рекомендуемый) Язык: TypeScript (Node.js) или Python (FastAPI) — выбрать один. HTTP: Express (TS) или FastAPI (Py). Валидация: Zod (TS) / Pydantic (Py). Тестирование: Vitest (TS) / pytest (Py), плюс unit-тесты для формул. CI/CD: встроенный в SourceCraft пайплайн (lint → test → build → deploy). Контейнеризация: Docker. Хранение данных каталога: локальный JSON/SQLite для MVP; в будущем — внешняя БД. 3. Требования к функционалу 3.1. Ядро калькулятора (src/core/calculator) Должны быть чистые функции без побочных эффектов: calculateRoomMetrics(room) → периметр, площадь стен, площадь проёмов, полезная площадь. calculatePatternLength(height, rapport) → длина полотна с учётом раппорта. calculateRollsNeeded(params) → количество полотен, рулонов, стоимость, запас. Все расчёты должны быть детерминированными и покрытыми тестами. 3.2. API (src/api) Эндпоинты: POST /api/calculate — принимает параметры комнаты и рулона, возвращает расчёт. GET /api/catalog — список товаров с фильтрами (ширина, раппорт, цена, наличие). POST /api/sync-catalog — загрузка каталога из CSV/JSON или триггер синхронизации. Валидация входных данных обязательна (диапазоны, типы, обязательность полей). 3.3. Каталог (src/catalog) Поддержка двух режимов: Импорт из файла: CSV/JSON с жёсткой схемой (см. ниже). Синхронизация: скрипт, который обновляет локальные данные из внешнего источника. Поиск и фильтрация по: ширине рулона, раппорту, цене, наличию, коллекции, цвету (текстовый поиск). 4. Модель данных каталога (JSON-пример) json Переносить Свернуть Копировать [ { "article": "OB-12345", "name": "Обои Коллекция Весна", "collection": "Весна 2026", "roll_width_m": 1.06, "roll_length_m": 10, "rapport_m": 0.64, "price_rub": 2500, "stock_qty": 42, "join_type": "смещённая", "color": "бежевый", "material": "флизелин" } ] Для CSV — строго фиксированные заголовки колонок, совпадающие с JSON-ключами. 5. Формулы и правила расчёта (для реализации в коде) Периметр: P=2⋅(длина+ширина). Площадь стен: S стен ​ =P⋅высота. Площадь проёмов: S проёмов ​ =∑(ширина⋅высота) по всем окнам и дверям. Полезная площадь: S полезная ​ =S стен ​ −S проёмов ​ . Длина полотна: L полотно ​ =высота+(раппорт⋅n), где n — минимальное целое, при котором стык совпадает. Количество полотен: N полотен ​ =⌈S полезная ​ /(L полотно ​ ⋅ширина)⌉. Количество рулонов: N рулонов ​ =⌈(N полотен ​ ⋅L полотно ​ ⋅ширина)/(ширина⋅длина)⌉, округление вверх. Стоимость: Стоимость=N рулонов ​ ⋅цена. Запас: коэффициент (по умолчанию 1.10, диапазон 1.05–1.20). Округления выполнять через Math.ceil (или аналог) и проверять на граничных значениях. 6. Требования к качеству и тестированию Все формулы вынести в отдельные функции и покрыть юнит‑тестами. Добавить негативные тесты: отрицательные значения, нули, слишком большие числа. Для API — тесты валидации и проверки кодов ответов. В CI SourceCraft: lint → unit-тесты → сборка образа → (опционально) интеграционные тесты. Примеры тестовых кейсов: Комната 4×5 м, высота 2.7 м, 1 окно 1.5×1.2 м, 1 дверь 0.9×2.1 м. Рулон 1.06×10 м, раппорт 0.64 м, цена 2500 руб. Ожидаемый результат: количество рулонов и стоимость (с запасом 10 %).

    111 дней назад0лайковСравнить
  3. 13479–16269rozzzzdi/nambe-3
    25

    Дашборд производителей и объемов производства

    HTML164 дня назад0лайковСравнить
  4. 13479–16269rpmedia/resourses
    25

    122 дня назад0лайковСравнить
  5. 25

    Albion Online network analyzer

    288 дней назад0лайковСравнить
  6. 13479–16269rpornis/ruslan
    25

    Тестовый репозиторий

    288 дней назад0лайковСравнить
  7. 13479–16269rreyzov/you
    25

    Тестовый репозиторий

    43 дня назад0лайковСравнить
  8. 25

    Демонстрационный лендинг для онбординга в SourceCraft

    HTML268 дней назад0лайковСравнить
  9. 25

    Python187 дней назад0лайковСравнить
  10. 13479–16269rudnev-e-y/jjabrams
    25

    367 дней назад0лайковСравнить
  11. 25

    Python46 дней назад0лайковСравнить
  12. 13479–16269runteos/rom
    25

    205 дней назад0лайковСравнить
  13. 25

    384 дня назад0лайковСравнить
  14. 25

    357 дней назад0лайковСравнить
  15. 25

    Телеграмм-бот для генерации случайных чисел

    JavaScript99 дней назад0лайковСравнить
  16. 25

    324 дня назад0лайковСравнить
  17. 25

    337 дней назад0лайковСравнить
  18. 25

    3D MMO игра похожая на Rust с системой крафта на 100 человек и админкой для Яндекс Игр

    200 дней назад0лайковСравнить
  19. 25

    151 день назад0лайковСравнить
  20. 13479–16269ryabyhzhenya/ts
    25

    кце

    152 дня назад0лайковСравнить
  21. 13479–16269ryazanovavk/elka
    25

    321 день назад0лайковСравнить
  22. 13479–16269rychyrych/tree
    25

    337 дней назад0лайковСравнить
  23. 25

    Telegram bot for get-color-cloud service

    Python300 дней назад0лайковСравнить
  24. 25

    Новогодний Git Quest от SourceCraft

    320 дней назад0лайковСравнить
  25. 13479–16269s-evg13/nexus-inst
    25

    592 дня назад0лайковСравнить
Показать ещё 0

15 626–15 650 из 21 931

Выбрано 2 из 3