{"id":19831471,"url":"https://github.com/notacat1/compass-3d-courses","last_synced_at":"2026-02-04T11:13:17.169Z","repository":{"id":207207148,"uuid":"718189942","full_name":"NotACat1/COMPASS-3D-courses","owner":"NotACat1","description":"Compass 3D Course","archived":false,"fork":false,"pushed_at":"2024-06-10T14:22:21.000Z","size":61700,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-07-06T16:04:01.583Z","etag":null,"topics":["commitlint","course","eslint","husky","kompas-3d","markdown","nodejs","prettier"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NotACat1.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-13T15:12:00.000Z","updated_at":"2025-03-04T13:41:01.000Z","dependencies_parsed_at":"2023-11-14T16:47:22.498Z","dependency_job_id":"59009103-2dc7-423a-bef7-b0ad97b39356","html_url":"https://github.com/NotACat1/COMPASS-3D-courses","commit_stats":null,"previous_names":["notacat1/compass-3d-courses"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NotACat1/COMPASS-3D-courses","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FCOMPASS-3D-courses","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FCOMPASS-3D-courses/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FCOMPASS-3D-courses/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FCOMPASS-3D-courses/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotACat1","download_url":"https://codeload.github.com/NotACat1/COMPASS-3D-courses/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotACat1%2FCOMPASS-3D-courses/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263931997,"owners_count":23531705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["commitlint","course","eslint","husky","kompas-3d","markdown","nodejs","prettier"],"created_at":"2024-11-12T11:32:06.548Z","updated_at":"2026-02-04T11:13:12.133Z","avatar_url":"https://github.com/NotACat1.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)\n![Markdown](https://img.shields.io/badge/markdown-%23000000.svg?style=for-the-badge\u0026logo=markdown\u0026logoColor=white)\n![ESLint](https://img.shields.io/badge/ESLint-4B3263?style=for-the-badge\u0026logo=eslint\u0026logoColor=white)\n![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge\u0026logo=javascript\u0026logoColor=%23F7DF1E)\n\n# Курс по Компас 3D\n\nДанный проект представляет собой обширный курс по изучению программы Компас 3D, предназначенный для тех, кто желает освоить основы и продвинутые навыки работы в этом инструменте для трехмерного моделирования. Проект включает в себя установку и первый запуск программы, изучение эскизов, деталей и создание сборок.\n\n## Инструкция по установке и сборке\n\nЭта инструкция предназначена для разработчиков и технических специалистов, которые хотят установить и собрать проект \"Курс по Компас 3D\" на своем локальном устройстве.\n\n### Предварительные требования\n\n1. **Node.js и npm**: убедитесь, что на вашем компьютере установлен Node.js и npm. Вы можете их скачать и установить с [официального сайта Node.js](https://nodejs.org/en/download).\n2. **Git**: убедитесь, что у вас установлен Git. Вы можете скачать и установить Git с [официального сайта Git](https://git-scm.com/download).\n\n### Установка и сборка\n\n1. **Клонирование репозитория**: откройте терминал (или командную строку) и выполните следующую команду для клонирования репозитория:\n\n```bash\ngit clone https://github.com/NotACat1/COMPASS-3D-courses.git\n```\n\n2. **Установка зависимостей**: перейдите в директорию проекта, используя команду:\n\n```bash\nnpm install\n```\n\n3. **Сборка проекта**: для сборки проекта используется команда:\n\n```bash\nnpm run build\n```\n\nЭта команда запускает процесс сборки проекта.\n\n## Курс\n\n1. **Установка и первый запуск:** предоставляет подробные инструкции по установке программы Компас 3D. Студенты также ознакомятся с первыми шагами в работе с программой, что включает в себя основные настройки, интерфейс и первый запуск. Этот модуль ориентирован на обеспечение плавного старта в использовании программы.\n2. **Изучение эскизов:** предоставляет обзор основ работы с эскизами в Компас 3D. Студенты углубятся в процесс создания и редактирования эскизов, овладеют ключевыми инструментами и техниками. Этот модуль направлен на формирование навыков работы с основными элементами трехмерных моделей.\n3. **Изучение деталей:** предоставляет студентам возможность глубоко погрузиться в создание и редактирование деталей в программе Компас 3D. В рамках этого модуля рассматриваются продвинутые техники моделирования деталей, включая использование различных инструментов и функций программы.\n4. **Создание сборок:** направлен на развитие навыков создания и управления сложными сборками в Компас 3D. Студенты изучат техники сборки компонентов, работу с ограничениями и взаимодействие между частями сложных конструкций. Этот модуль позволяет студентам освоить навыки построения полноценных трехмерных моделей.\n\nКаждый модуль включает в себя уникальный набор уроков, разработанных для последовательного и систематического изучения соответствующих навыков и тем в программе Компас 3D.\n\n### Преимущества Курса\n\n- **Постепенное углубление:** материал представлен пошагово, обеспечивая плавное углубление в тему и прогрессирование от простых к более сложным концепциям.\n- **Практические задания:** курс включает практические задания и проекты, позволяя студентам непосредственно применять полученные знания в реальных проектах.\n- **Актуальность и практическая применимость:** материал ориентирован на актуальные требования индустрии и фокусируется на практической применимости знаний в современной среде трехмерного моделирования.\n\nПроект \"Курс по Компас 3D\" стремится предоставить студентам компетентные и глубокие знания, необходимые для успешного владения программой Компас 3D в профессиональной деятельности.\n\n## Скрипты\n\nВ файле `package.json` определены различные скрипты, обеспечивающие автоматизацию различных аспектов разработки, тестирования и развертывания проекта.\n\n```json\n\"scripts\": {\n    \"msg-commit\": \"npx commitlint -E HUSKY_GIT_PARAMS\",\n    \"pre-commit\": \"npx lint-staged\",\n    \"husky-inst\": \"npx husky install \u0026\u0026 chmod +x .husky/pre-commit .husky/commit-msg\",\n    \"build\": \"node src/index\",\n    \"deploy\": \"gh-pages -d build\",\n    \"predeploy\": \"npm run build\"\n},\n```\n\n### `msg-commit`\n\n- **Описание:** скрипт, использующий `commitlint`, выполняется перед каждым коммитом для проверки корректности сообщений о коммитах.\n- **Как использовать:** `npm run msg-commit`\n- **Результат:** проверка и валидация сообщения о коммите согласно установленным стандартам.\n\n### `pre-commit`\n\n- **Описание:** скрипт, использующий `lint-staged`, запускается перед каждым коммитом для автоматической проверки и форматирования измененных файлов.\n- **Как использовать:** `npm run pre-commit`\n- **Результат:** проверка и форматирование измененных файлов перед коммитом.\n\n### `husky-inst`\n\n- **Описание:** скрипт устанавливает и конфигурирует `husky`, инструмент для управления хуками Git, такими как `pre-commit` и `commit-msg`.\n- **Как использовать:** `npm run husky-inst`\n- **Результат:** установка и настройка хуков Git для предварительной проверки коммитов.\n\n### `build`\n\n- **Описание:** скрипт для сборки проекта, запускает индексный файл (`src/index`) для создания необходимых файлов и структуры проекта.\n- **Как использовать:** `npm run build`\n- **Результат:** сборка проекта, создание необходимых файлов для дальнейшего развертывания.\n\n### `deploy`\n\n- **Описание:** скрипт для развертывания проекта на GitHub Pages, используя `gh-pages`.\n- **Как использовать:** `npm run deploy`\n- **Результат:** развертывание проекта на GitHub Pages из директории `build`.\n\n### `predeploy`\n\n- **Описание:** скрипт, выполняющий предварительные действия перед развертыванием, в данном случае, выполняет сборку проекта.\n- **Как использовать:** `npm run predeploy`\n- **Результат:** выполнение предварительных действий перед развертыванием, в данном случае, сборка проекта.\n\n## Реализованный функционал скрипта:\n\n1. **Процесс сбора и организации данных:** скрипт проходит по папкам с модулями, где хранятся файлы в формате Markdown с уроками, а также файл `index.json` с дополнительной информацией. Данный скрипт собирает информацию об уроках, присваивает каждому модулю и уроку уникальный идентификатор (UUID), и создает файл `index.json` в папке `build`, содержащий структурированные данные об уроках и модулях.\n2. **Уникальные идентификаторы для уроков и модулей:** каждому модулю и уроку присваивается уникальный идентификатор (UUID), обеспечивая уникальность данных и предотвращая конфликты в структуре.\n3. **Подготовка статических данных для сайта:** скрипт копирует данные модулей и уроков в папку `build`, присваивая каждому элементу уникальный UUID. Эти статические файлы, вместе с `index.json`, используются сайтом для предоставления информации о курсе и его уроках.\n\n## Редактироание скрипта\n\nДля обеспечения удобства редактирования и интеграции в различные проекты, скрипт включает модульность, где основные переменные вынесены в отдельный файл `src/utils/constants.mjs`. Это делает проект гибким и легко настраиваемым под разные требования. Давайте рассмотрим ключевые переменные:\n\n```javascript\n// src/utils/constants.mjs\n\n// Корневая директория проекта\nexport const projectRootDirectory = '.';\n\n// Директории\nexport const buildDirectory = path.join(projectRootDirectory, 'build');\nexport const workDirectory = path.join(projectRootDirectory, 'src/data');\nexport const assetsDirectory = 'images';\n\n// Имена файлов\nexport const buildFileName = 'index.json';\nexport const additionalInfoFileName = 'index.json';\n```\n\n### Особенности скрипта:\n\n1. **Модульность:**\n   - Переменные вынесены в отдельный файл `constants.mjs`, обеспечивая удобство и чистоту кода.\n   - Модульность позволяет легко интегрировать этот файл в другие проекты, обеспечивая повторное использование кода.\n2. **Легкость редактирования:**\n   - Все основные параметры (корневая директория, директории, имена файлов) сосредоточены в одном месте.\n   - Изменения в этих параметрах могут быть произведены легко и безопасно, не затрагивая основной код.\n3. **Интеграция в другие проекты:**\n   - Модульность делает этот скрипт легко интегрируемым в другие проекты, где может потребоваться схожая функциональность.\n   - Компоненты скрипта могут быть использованы в других контекстах, улучшая эффективность разработки.\n4. **Гибкость и настраиваемость:**\n   - Переменные в `constants.mjs` предоставляют возможность быстро адаптировать скрипт к различным требованиям и структурам проектов.\n   - Легкость редактирования и гибкость делают этот скрипт универсальным и применимым в различных сценариях.\n\nТакая архитектура позволяет легко поддерживать и расширять функциональность скрипта, что делает его привлекательным решением для интеграции в разнообразные проекты.\n\n## Технологии\n\n### 1. Node.js\n\n`Node.js` является основным языком программирования для серверной части проекта. Эта среда выполнения `JavaScript` обеспечивает высокую производительность и масштабируемость при создании серверных приложений. С его помощью проект может эффективно обрабатывать запросы, взаимодействовать с файловой системой и выполнять другие серверные задачи.\n\n### 2. Markdown\n\nФормат `Markdown` используется для хранения информации об уроках в проекте. Этот легкий и удобочитаемый язык разметки позволяет создавать структурированный контент с минимумом усилий. `Markdown` обеспечивает простоту редактирования текста и легкость восприятия, что делает его отличным выбором для создания материалов курса.\n\n### 3. ESLint и Prettier\n\n`ESLint` и `Prettier` - это линтеры, которые используются в проекте для поддержания высокого стандарта кодирования. `ESLint` проверяет исходный код на соответствие стандартам и стилю программирования, а `Prettier` автоматически форматирует код, делая его более читаемым и однородным. Вместе эти инструменты помогают поддерживать чистоту кода и облегчают соблюдение стандартов разработки.\n\n### 4. Husky и Commitlint\n\n`Husky` и `Commitlint` предоставляют систему для управления коммитами в проекте. `Husky` интегрируется с системой контроля версий `Git` и позволяет настраивать хуки (`hooks`), которые выполняются перед или после событий, таких как коммит. `Commitlint` вводит стандарты для написания сообщений о коммитах, что способствует единообразному и информативному стилю коммитов. Вместе эти инструменты помогают поддерживать четкую историю изменений и облегчают совместную разработку.\n\n## Заключение\n\nПроект \"Курс по Компас 3D\" создан с целью предоставить студентам удобный и информативный ресурс для изучения программы. Скрипты обновления и технологии, используемые в проекте, обеспечивают легкость в управлении контентом и поддерживают актуальность материалов.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotacat1%2Fcompass-3d-courses","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotacat1%2Fcompass-3d-courses","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotacat1%2Fcompass-3d-courses/lists"}