Skip to content
This repository was archived by the owner on Jul 17, 2026. It is now read-only.

Repository files navigation

Ontology.ru - Современные онтологии в нефтегазовой отрасли

Современный веб-сайт для популяризации онтологий и семантических технологий в нефтегазовой отрасли. Проект создан для студентов Губкинского университета и специалистов НИИ Транснефть.

🎯 Цель проекта

Консолидация научной и практической части применения онтологий для автоматизации проектирования в нефтегазовой отрасли. Сайт служит платформой для:

  • Популяризации онтологий среди студентов и специалистов
  • Публикации научных статей и исследований
  • Размещения вакансий и проектов
  • Предоставления полезных ресурсов и материалов
  • Создания сообщества экспертов в области онтологий

🚀 Технологии

  • Frontend: Vue 3 + Vite
  • Роутинг: Vue Router 4
  • Стили: CSS3 с CSS переменными
  • Адаптивность: Mobile-first подход
  • Деплой: GitHub Pages

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

ontology.ru/
├── src/
│   ├── components/          # Переиспользуемые компоненты
│   │   ├── AuthorCard.vue   # Карточка автора
│   │   ├── ArticleCard.vue  # Карточка статьи
│   │   ├── ProjectCard.vue  # Карточка проекта
│   │   └── ResourceCard.vue # Карточка ресурса
│   ├── pages/               # Страницы приложения
│   │   ├── HomePage.vue     # Главная страница
│   │   ├── ProjectsPage.vue # Проекты и вакансии
│   │   ├── ResourcesPage.vue # Полезные ссылки
│   │   ├── SciencePage.vue  # Научные публикации
│   │   └── AuthorsPage.vue  # Авторы и эксперты
│   ├── App.vue              # Главный компонент
│   ├── main.js              # Точка входа
│   └── style.css            # Глобальные стили
├── public/                  # Статические файлы
├── index.html               # HTML шаблон
├── package.json             # Зависимости
├── vite.config.js           # Конфигурация Vite
└── README.md                # Документация

🛠️ Установка и запуск

Предварительные требования

  • Node.js 16+
  • npm или yarn

Установка зависимостей

npm install

Запуск в режиме разработки

npm run dev

Сайт будет доступен по адресу: http://localhost:5173

Сборка для продакшена

npm run build

Предварительный просмотр сборки

npm run preview

Деплой на GitHub Pages

npm run deploy

📄 Страницы сайта

1. Главная страница (/)

  • Hero секция с описанием онтологий
  • Статистика проектов и публикаций
  • Обзор применения онтологий в нефтегазовой отрасли
  • Преимущества использования онтологий
  • Обзор технологий и инструментов

2. Проекты (/projects)

  • Список активных проектов с вакансиями
  • Фильтрация по статусу, технологиям
  • Детальная информация о проектах
  • Возможность отклика на вакансии
  • Статистика проектов

3. Полезные ссылки (/resources)

  • Каталог программ, методичек, курсов
  • Фильтрация по типу ресурса, языку
  • Рейтинговая система
  • Возможность скачивания и добавления в избранное
  • Рекомендуемые ресурсы

4. Наука (/science)

  • Научные публикации и статьи
  • Фильтрация по журналу, году
  • Метрики цитирования и импакт-факторы
  • Популярные журналы
  • Тренды исследований

5. Авторы (/authors)

  • Профили экспертов и авторов
  • Фильтрация по организации, специализации
  • Публикации авторов
  • Контактная информация
  • Партнерские организации

🎨 Компоненты

AuthorCard

Карточка автора с информацией о специалисте:

  • Аватар и основная информация
  • Специализации (теги)
  • Контактные данные
  • Список публикаций

Использование:

<AuthorCard :author="authorData" />

Структура данных:

{
  id: 1,
  name: 'Иванов А.П.',
  title: 'Ведущий научный сотрудник',
  organization: 'НИИ Транснефть',
  specializations: ['Онтологии', 'Нефтегазовая отрасль'],
  description: 'Описание эксперта...',
  contacts: {
    email: 'ivanov@transneft.ru',
    phone: '+7 (495) 123-45-67',
    linkedin: 'https://linkedin.com/in/ivanov'
  },
  publications: [
    { id: 1, title: 'Название статьи', year: 2024, url: '#' }
  ],
  avatar: 'path/to/avatar.jpg'
}

ArticleCard

Карточка научной статьи:

  • Заголовок и авторы
  • Журнал и год публикации
  • DOI и ссылки
  • Аннотация и ключевые слова
  • Метрики (цитирования, импакт-фактор)

Использование:

<ArticleCard :article="articleData" />

ProjectCard

Карточка проекта с вакансиями:

  • Информация о проекте
  • Список вакансий с требованиями
  • Контактная информация
  • Возможность отклика на вакансии

Использование:

<ProjectCard :project="projectData" />

ResourceCard

Карточка полезного ресурса:

  • Тип ресурса (программа, методичка, курс)
  • Описание и метаданные
  • Рейтинг и отзывы
  • Ссылки для скачивания

Использование:

<ResourceCard :resource="resourceData" />

🔧 Добавление контента

Добавление новой статьи

  1. Откройте файл src/pages/SciencePage.vue
  2. Найдите массив articles в секции setup()
  3. Добавьте новый объект статьи:
{
  id: 7, // Уникальный ID
  title: 'Название статьи',
  authors: ['Автор 1', 'Автор 2'],
  journal: 'Название журнала',
  year: 2024,
  doi: '10.1234/doi',
  url: 'https://ссылка-на-статью',
  abstract: 'Аннотация статьи...',
  keywords: ['ключевое', 'слово', '1', 'ключевое', 'слово', '2'],
  metrics: {
    citations: 10,
    impactFactor: 3.5
  }
}

Добавление нового автора

  1. Откройте файл src/pages/AuthorsPage.vue
  2. Найдите массив authors в секции setup()
  3. Добавьте новый объект автора:
{
  id: 7,
  name: 'ФИО автора',
  title: 'Должность',
  organization: 'Организация',
  specializations: ['Специализация 1', 'Специализация 2'],
  description: 'Описание автора...',
  contacts: {
    email: 'email@domain.com',
    phone: '+7 (495) 123-45-67',
    linkedin: 'https://linkedin.com/in/profile'
  },
  publications: [
    { id: 1, title: 'Название публикации', year: 2024, url: '#' }
  ],
  avatar: null // Путь к аватару или null
}

Добавление нового проекта

  1. Откройте файл src/pages/ProjectsPage.vue
  2. Найдите массив projects в секции setup()
  3. Добавьте новый объект проекта:
{
  id: 5,
  title: 'Название проекта',
  description: 'Описание проекта...',
  status: 'active', // active, planning, completed, on-hold, cancelled
  duration: '12 месяцев',
  teamSize: 8,
  budget: '15 млн ₽',
  technologies: ['OWL', 'RDF', 'Protégé'],
  vacancies: [
    {
      id: 1,
      title: 'Название вакансии',
      salary: '120-180 тыс. ₽',
      description: 'Описание вакансии...',
      requirements: ['Требование 1', 'Требование 2']
    }
  ],
  contacts: {
    manager: 'Имя руководителя',
    email: 'project@transneft.ru',
    phone: '+7 (495) 123-45-67'
  }
}

Добавление нового ресурса

  1. Откройте файл src/pages/ResourcesPage.vue
  2. Найдите массив resources в секции setup()
  3. Добавьте новый объект ресурса:
{
  id: 10,
  title: 'Название ресурса',
  description: 'Описание ресурса...',
  type: 'software', // software, manual, article, video, course, book, tool
  url: 'https://ссылка-на-ресурс',
  author: 'Автор',
  year: 2024,
  language: 'ru', // ru, en, de
  rating: 4,
  tags: ['тег1', 'тег2'],
  extra: {
    fileSize: '150 MB',
    pages: 120,
    duration: '6 недель'
  }
}

🎨 Кастомизация стилей

Цветовая схема

Основные цвета определены в CSS переменных в файле src/style.css:

:root {
  --primary-color: #1e3a8a;    /* Основной синий */
  --secondary-color: #3b82f6;  /* Вторичный синий */
  --accent-color: #06b6d4;     /* Акцентный голубой */
  --success-color: #10b981;    /* Зеленый */
  --warning-color: #f59e0b;    /* Оранжевый */
  --error-color: #ef4444;      /* Красный */
}

Изменение цветов

  1. Откройте файл src/style.css
  2. Найдите секцию :root
  3. Измените значения цветовых переменных
  4. Все компоненты автоматически обновятся

Добавление новых стилей

Для добавления новых стилей:

  1. Глобальные стили: Добавьте в src/style.css
  2. Стили компонента: Добавьте в секцию <style scoped> компонента
  3. Стили страницы: Добавьте в секцию <style scoped> страницы

📱 Адаптивность

Сайт полностью адаптивен и оптимизирован для:

  • Desktop: 1200px+
  • Tablet: 768px - 1199px
  • Mobile: до 767px

Медиа-запросы

Используются стандартные брейкпоинты:

@media (max-width: 768px) {
  /* Стили для мобильных устройств */
}

🚀 Деплой

GitHub Pages

  1. Убедитесь, что репозиторий подключен к GitHub
  2. Выполните сборку: npm run build
  3. Деплой: npm run deploy

Другие платформы

Сайт можно развернуть на любой статической платформе:

  • Netlify: Перетащите папку dist в Netlify
  • Vercel: Подключите репозиторий к Vercel
  • Firebase Hosting: Используйте Firebase CLI

🔧 Разработка

Структура компонентов

Каждый компонент следует принципам:

  • Single Responsibility: Один компонент - одна задача
  • Reusability: Компоненты переиспользуемы
  • Props Validation: Валидация входных параметров
  • Composition API: Использование Vue 3 Composition API

Добавление новых страниц

  1. Создайте новый файл в src/pages/
  2. Добавьте роут в src/main.js
  3. Добавьте ссылку в навигацию src/App.vue

Добавление новых компонентов

  1. Создайте файл в src/components/
  2. Экспортируйте компонент с именем
  3. Импортируйте и используйте в нужных местах

📊 Производительность

Оптимизации

  • Lazy Loading: Компоненты загружаются по требованию
  • Code Splitting: Автоматическое разделение кода
  • Image Optimization: Оптимизация изображений
  • CSS Optimization: Минификация CSS

Мониторинг

Для мониторинга производительности:

  1. Используйте Vue DevTools
  2. Проверьте Lighthouse в Chrome DevTools
  3. Мониторьте Core Web Vitals

🐛 Отладка

Vue DevTools

Установите Vue DevTools для отладки:

npm install -g @vue/devtools

Логирование

Используйте console.log() для отладки:

console.log('Debug info:', data)

Ошибки

Проверьте консоль браузера для ошибок JavaScript и Vue.

📝 Лицензия

Проект создан для НИИ Транснефть и Губкинского университета.

🤝 Поддержка

Для вопросов и предложений:

🔄 Обновления

Версия 1.0.0

  • Базовая функциональность
  • 5 основных страниц
  • Адаптивный дизайн
  • Компонентная архитектура

Планы развития

  • Система авторизации
  • Административная панель
  • API для динамического контента
  • Система комментариев
  • Интеграция с внешними API
  • Многоязычность
  • PWA функциональность

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages