Skip to content

minkinad/StackMIREA

Repository files navigation

GitHub Pages Deploy PR Checks Node.js 20+ Next.js 14 TypeScript 5

StackMIREA

StackMIREA - русскоязычная статическая документационная платформа для IT-дисциплин МИРЭА. Проект собирает учебные треки, практики, ноутбуки и методические материалы в единый интерфейс с документацией, семантическим поиском, блоком авторов на главной и публикацией через GitHub Pages.

Production URL: https://minkinad.github.io/StackMIREA/

Актуальное состояние проекта

Актуально на 30 марта 2026 года.

  • 19 учебных треков в content/.
  • 71 синхронизированная Markdown/MDX-страница.
  • 52 отдельных учебных материала без учёта индексных страниц разделов.
  • Крупнейшие треки: java (26 страниц), ai (9), bigdata (9), python (6), procedural-programming (6).
  • Два workflow в CI/CD: PR Checks и Deploy Docs to GitHub Pages.

Что есть?

  • Главная страница с семантическим поиском, блоком авторов и команд, правилами публикации и быстрыми переходами.
  • Раздел документации /docs с карточками треков, sidebar, breadcrumbs, оглавлением страницы и пагинацией.
  • Страница /ask с локальным семантическим поиском по public/search-index.json.
  • MDX-рендеринг с подсветкой кода через Shiki и пользовательскими UI-компонентами.
  • Ссылка Редактировать источник для перехода к редактированию материала в GitHub.
  • Статическая публикация в GitHub Pages через GitHub Actions.

Технологии

  • Next.js 14 App Router
  • React 18
  • TypeScript 5
  • Tailwind CSS
  • next-mdx-remote, remark-gfm, rehype-slug
  • Shiki

Как устроен контент

  • docs/ - исходные материалы, которые редактируются вручную.
  • content/ - синхронизированный слой, который использует приложение.
  • resources/ - дополнительные файлы, датасеты и артефакты практик.
  • scripts/ - генерация контента, поискового индекса и валидация ссылок.

Основной pipeline:

  1. Материалы редактируются в docs/.
  2. npm run content:sync переносит их в content/.
  3. npm run search:build собирает поисковый индекс.
  4. npm run prepare:content объединяет оба шага.
  5. npm run build запускает prepare:content автоматически через prebuild.

Учебные треки

  • algorithms
  • ai
  • bigdata
  • business-process-modeling
  • configuration-management
  • data-structures-and-algorithms-part-1
  • data-structures-and-algorithms-part-2
  • database-development
  • internet-of-things
  • java
  • object-oriented-programming
  • procedural-programming
  • project-management
  • python
  • react
  • software-application-development-part-1
  • software-testing-and-verification
  • system-administration
  • systems-analysis-and-conceptual-modeling-part-1

Быстрый старт

Требование: Node.js >= 20.

npm ci
npm run dev

Локальный dev-сервер будет доступен на http://localhost:3000.

Скрипты

  • npm run dev - локальная разработка; перед запуском автоматически выполняется prepare:content.
  • npm run build - production build со статическим экспортом в out/.
  • npm run start - локальный запуск собранной статической версии на :3000.
  • npm run lint - проверка ESLint.
  • npm run typecheck - проверка TypeScript.
  • npm run prepare:content - синхронизация контента и сборка поискового индекса.
  • npm run content:sync - перенос docs/ -> content/.
  • npm run search:build - генерация public/search-index.json.
  • npm run validate:content - проверка markdown-ссылок, якорей и репозиторных ссылок в code fence.
  • npm run export - информационный скрипт: static export выполняется внутри next build.

Структура проекта

app/
components/
content/
docs/
lib/
public/
resources/
scripts/
styles/
.github/workflows/

CI/CD и деплой

  • .github/workflows/pr-check.yml проверяет prepare:content, validate:content, lint, typecheck и build для Pull Request.
  • .github/workflows/deploy-gh-pages.yml публикует сайт в GitHub Pages при пуше в main и при ручном запуске.
  • В Settings -> Pages должен быть выбран Source: GitHub Actions.

Как вносить изменения

  1. Добавьте или обновите материал в docs/<track>/....
  2. Запустите npm run content:sync или сразу npm run prepare:content.
  3. Проверьте контент командой npm run validate:content.
  4. Проверьте проект командами npm run lint и npm run typecheck.
  5. Откройте Pull Request.

Для автора материала можно указать поле author во frontmatter: GitHub login или ссылку на профиль.

Лицензии

  • Код проекта распространяется по лицензии MIT. См. LICENSE.
  • Контент сайта, статьи и учебные материалы - CC BY-NC-SA 4.0. См. CC-BY-NC-SA-4.0.

About

Documentation platform for IT courses at MIREA, structured as a modern knowledge base.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages