https://github.com/notacat1/compass-3d-courses
Compass 3D Course
https://github.com/notacat1/compass-3d-courses
commitlint course eslint husky kompas-3d markdown nodejs prettier
Last synced: 4 months ago
JSON representation
Compass 3D Course
- Host: GitHub
- URL: https://github.com/notacat1/compass-3d-courses
- Owner: NotACat1
- Created: 2023-11-13T15:12:00.000Z (over 2 years ago)
- Default Branch: develop
- Last Pushed: 2024-06-10T14:22:21.000Z (almost 2 years ago)
- Last Synced: 2025-07-06T16:04:01.583Z (11 months ago)
- Topics: commitlint, course, eslint, husky, kompas-3d, markdown, nodejs, prettier
- Language: JavaScript
- Homepage:
- Size: 58.8 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README




# Курс по Компас 3D
Данный проект представляет собой обширный курс по изучению программы Компас 3D, предназначенный для тех, кто желает освоить основы и продвинутые навыки работы в этом инструменте для трехмерного моделирования. Проект включает в себя установку и первый запуск программы, изучение эскизов, деталей и создание сборок.
## Инструкция по установке и сборке
Эта инструкция предназначена для разработчиков и технических специалистов, которые хотят установить и собрать проект "Курс по Компас 3D" на своем локальном устройстве.
### Предварительные требования
1. **Node.js и npm**: убедитесь, что на вашем компьютере установлен Node.js и npm. Вы можете их скачать и установить с [официального сайта Node.js](https://nodejs.org/en/download).
2. **Git**: убедитесь, что у вас установлен Git. Вы можете скачать и установить Git с [официального сайта Git](https://git-scm.com/download).
### Установка и сборка
1. **Клонирование репозитория**: откройте терминал (или командную строку) и выполните следующую команду для клонирования репозитория:
```bash
git clone https://github.com/NotACat1/COMPASS-3D-courses.git
```
2. **Установка зависимостей**: перейдите в директорию проекта, используя команду:
```bash
npm install
```
3. **Сборка проекта**: для сборки проекта используется команда:
```bash
npm run build
```
Эта команда запускает процесс сборки проекта.
## Курс
1. **Установка и первый запуск:** предоставляет подробные инструкции по установке программы Компас 3D. Студенты также ознакомятся с первыми шагами в работе с программой, что включает в себя основные настройки, интерфейс и первый запуск. Этот модуль ориентирован на обеспечение плавного старта в использовании программы.
2. **Изучение эскизов:** предоставляет обзор основ работы с эскизами в Компас 3D. Студенты углубятся в процесс создания и редактирования эскизов, овладеют ключевыми инструментами и техниками. Этот модуль направлен на формирование навыков работы с основными элементами трехмерных моделей.
3. **Изучение деталей:** предоставляет студентам возможность глубоко погрузиться в создание и редактирование деталей в программе Компас 3D. В рамках этого модуля рассматриваются продвинутые техники моделирования деталей, включая использование различных инструментов и функций программы.
4. **Создание сборок:** направлен на развитие навыков создания и управления сложными сборками в Компас 3D. Студенты изучат техники сборки компонентов, работу с ограничениями и взаимодействие между частями сложных конструкций. Этот модуль позволяет студентам освоить навыки построения полноценных трехмерных моделей.
Каждый модуль включает в себя уникальный набор уроков, разработанных для последовательного и систематического изучения соответствующих навыков и тем в программе Компас 3D.
### Преимущества Курса
- **Постепенное углубление:** материал представлен пошагово, обеспечивая плавное углубление в тему и прогрессирование от простых к более сложным концепциям.
- **Практические задания:** курс включает практические задания и проекты, позволяя студентам непосредственно применять полученные знания в реальных проектах.
- **Актуальность и практическая применимость:** материал ориентирован на актуальные требования индустрии и фокусируется на практической применимости знаний в современной среде трехмерного моделирования.
Проект "Курс по Компас 3D" стремится предоставить студентам компетентные и глубокие знания, необходимые для успешного владения программой Компас 3D в профессиональной деятельности.
## Скрипты
В файле `package.json` определены различные скрипты, обеспечивающие автоматизацию различных аспектов разработки, тестирования и развертывания проекта.
```json
"scripts": {
"msg-commit": "npx commitlint -E HUSKY_GIT_PARAMS",
"pre-commit": "npx lint-staged",
"husky-inst": "npx husky install && chmod +x .husky/pre-commit .husky/commit-msg",
"build": "node src/index",
"deploy": "gh-pages -d build",
"predeploy": "npm run build"
},
```
### `msg-commit`
- **Описание:** скрипт, использующий `commitlint`, выполняется перед каждым коммитом для проверки корректности сообщений о коммитах.
- **Как использовать:** `npm run msg-commit`
- **Результат:** проверка и валидация сообщения о коммите согласно установленным стандартам.
### `pre-commit`
- **Описание:** скрипт, использующий `lint-staged`, запускается перед каждым коммитом для автоматической проверки и форматирования измененных файлов.
- **Как использовать:** `npm run pre-commit`
- **Результат:** проверка и форматирование измененных файлов перед коммитом.
### `husky-inst`
- **Описание:** скрипт устанавливает и конфигурирует `husky`, инструмент для управления хуками Git, такими как `pre-commit` и `commit-msg`.
- **Как использовать:** `npm run husky-inst`
- **Результат:** установка и настройка хуков Git для предварительной проверки коммитов.
### `build`
- **Описание:** скрипт для сборки проекта, запускает индексный файл (`src/index`) для создания необходимых файлов и структуры проекта.
- **Как использовать:** `npm run build`
- **Результат:** сборка проекта, создание необходимых файлов для дальнейшего развертывания.
### `deploy`
- **Описание:** скрипт для развертывания проекта на GitHub Pages, используя `gh-pages`.
- **Как использовать:** `npm run deploy`
- **Результат:** развертывание проекта на GitHub Pages из директории `build`.
### `predeploy`
- **Описание:** скрипт, выполняющий предварительные действия перед развертыванием, в данном случае, выполняет сборку проекта.
- **Как использовать:** `npm run predeploy`
- **Результат:** выполнение предварительных действий перед развертыванием, в данном случае, сборка проекта.
## Реализованный функционал скрипта:
1. **Процесс сбора и организации данных:** скрипт проходит по папкам с модулями, где хранятся файлы в формате Markdown с уроками, а также файл `index.json` с дополнительной информацией. Данный скрипт собирает информацию об уроках, присваивает каждому модулю и уроку уникальный идентификатор (UUID), и создает файл `index.json` в папке `build`, содержащий структурированные данные об уроках и модулях.
2. **Уникальные идентификаторы для уроков и модулей:** каждому модулю и уроку присваивается уникальный идентификатор (UUID), обеспечивая уникальность данных и предотвращая конфликты в структуре.
3. **Подготовка статических данных для сайта:** скрипт копирует данные модулей и уроков в папку `build`, присваивая каждому элементу уникальный UUID. Эти статические файлы, вместе с `index.json`, используются сайтом для предоставления информации о курсе и его уроках.
## Редактироание скрипта
Для обеспечения удобства редактирования и интеграции в различные проекты, скрипт включает модульность, где основные переменные вынесены в отдельный файл `src/utils/constants.mjs`. Это делает проект гибким и легко настраиваемым под разные требования. Давайте рассмотрим ключевые переменные:
```javascript
// src/utils/constants.mjs
// Корневая директория проекта
export const projectRootDirectory = '.';
// Директории
export const buildDirectory = path.join(projectRootDirectory, 'build');
export const workDirectory = path.join(projectRootDirectory, 'src/data');
export const assetsDirectory = 'images';
// Имена файлов
export const buildFileName = 'index.json';
export const additionalInfoFileName = 'index.json';
```
### Особенности скрипта:
1. **Модульность:**
- Переменные вынесены в отдельный файл `constants.mjs`, обеспечивая удобство и чистоту кода.
- Модульность позволяет легко интегрировать этот файл в другие проекты, обеспечивая повторное использование кода.
2. **Легкость редактирования:**
- Все основные параметры (корневая директория, директории, имена файлов) сосредоточены в одном месте.
- Изменения в этих параметрах могут быть произведены легко и безопасно, не затрагивая основной код.
3. **Интеграция в другие проекты:**
- Модульность делает этот скрипт легко интегрируемым в другие проекты, где может потребоваться схожая функциональность.
- Компоненты скрипта могут быть использованы в других контекстах, улучшая эффективность разработки.
4. **Гибкость и настраиваемость:**
- Переменные в `constants.mjs` предоставляют возможность быстро адаптировать скрипт к различным требованиям и структурам проектов.
- Легкость редактирования и гибкость делают этот скрипт универсальным и применимым в различных сценариях.
Такая архитектура позволяет легко поддерживать и расширять функциональность скрипта, что делает его привлекательным решением для интеграции в разнообразные проекты.
## Технологии
### 1. Node.js
`Node.js` является основным языком программирования для серверной части проекта. Эта среда выполнения `JavaScript` обеспечивает высокую производительность и масштабируемость при создании серверных приложений. С его помощью проект может эффективно обрабатывать запросы, взаимодействовать с файловой системой и выполнять другие серверные задачи.
### 2. Markdown
Формат `Markdown` используется для хранения информации об уроках в проекте. Этот легкий и удобочитаемый язык разметки позволяет создавать структурированный контент с минимумом усилий. `Markdown` обеспечивает простоту редактирования текста и легкость восприятия, что делает его отличным выбором для создания материалов курса.
### 3. ESLint и Prettier
`ESLint` и `Prettier` - это линтеры, которые используются в проекте для поддержания высокого стандарта кодирования. `ESLint` проверяет исходный код на соответствие стандартам и стилю программирования, а `Prettier` автоматически форматирует код, делая его более читаемым и однородным. Вместе эти инструменты помогают поддерживать чистоту кода и облегчают соблюдение стандартов разработки.
### 4. Husky и Commitlint
`Husky` и `Commitlint` предоставляют систему для управления коммитами в проекте. `Husky` интегрируется с системой контроля версий `Git` и позволяет настраивать хуки (`hooks`), которые выполняются перед или после событий, таких как коммит. `Commitlint` вводит стандарты для написания сообщений о коммитах, что способствует единообразному и информативному стилю коммитов. Вместе эти инструменты помогают поддерживать четкую историю изменений и облегчают совместную разработку.
## Заключение
Проект "Курс по Компас 3D" создан с целью предоставить студентам удобный и информативный ресурс для изучения программы. Скрипты обновления и технологии, используемые в проекте, обеспечивают легкость в управлении контентом и поддерживают актуальность материалов.