Skip to content

MaxMaximov123/ImpulsNewspaper

Repository files navigation

Сайт школьной газеты "Импульс"

Веб-приложение для школьной газеты "Импульс", агрегирующее и публикующее новости из различных сообществ ВКонтакте, а также предоставляющее собственные материалы редакции. Проект реализован на стеке Vue 3 (Vite) для фронтенда и Node.js (Express) для бэкенда.


Описание проекта

"Импульс" — это современная платформа для школьной газеты, которая позволяет ученикам, учителям и родителям быть в курсе последних новостей школы, олимпиад, мероприятий и других событий. Система автоматически собирает новости из выбранных сообществ ВКонтакте и предоставляет удобный интерфейс для чтения, фильтрации и управления новостями.


Основные возможности

  • Просмотр новостей из разных источников (сообществ ВКонтакте и редакции)
  • Фильтрация и сортировка новостей по дате, популярности, источнику и тематике
  • Авторизация пользователей (через токен)
  • Адаптивный интерфейс для ПК и мобильных устройств
  • Панель администратора для управления новостями (добавление, редактирование, удаление)
  • Интеграция с ВКонтакте для автоматического импорта новостей
  • Собственные материалы редакции
  • Поиск по новостям
  • Возможность комментирования (в планах)
  • Раздел с олимпиадами (в планах)

Структура репозитория

ImpulsNewspaper/
├── site/                # Фронтенд (Vue 3 + Vite)
│   ├── src/
│   ├── public/
│   ├── package.json
│   └── ...
├── server/              # Бэкенд (Node.js + Express)
│   ├── src/
│   ├── package.json
│   └── ...
├── vk-scanner/          # Сервис для сбора новостей из ВК
│   ├── src/
│   └── ...
├── nginx/               # Конфигурация nginx
├── data/                # Данные PostgreSQL
├── ssl/                 # SSL-сертификаты
├── docker-compose.yml   # Docker Compose для запуска всех сервисов
├── README.md            # Документация проекта
└── ...

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

1. Клонирование репозитория

git clone https://github.com/MaxMaximov123/ImpulsNewspaper.git
cd ImpulsNewspaper

2. Запуск через Docker Compose (рекомендуется)

docker-compose up --build

Это поднимет все необходимые сервисы: фронтенд, бэкенд, базу данных, nginx.

3. Ручной запуск (для разработки)

Фронтенд

cd site
npm install
npm run dev

Бэкенд

cd server
npm install
npm start

VK-сканер

cd vk-scanner
npm install
npm start

База данных

Используется PostgreSQL. Конфигурация находится в папке data/ и файле docker-compose.yml.


Конфигурация

  • Все переменные окружения для бэкенда и VK-сканера задаются через .env файлы или напрямую в docker-compose.yml.
  • Для интеграции с ВКонтакте необходим сервисный токен VK API.
  • Для работы авторизации требуется настроить cookie с токеном пользователя.

Основные компоненты

  • Фронтенд: Vue 3, Vuetify, Vue Router, взаимодействие с API через axios.
  • Бэкенд: Node.js, Express, взаимодействие с PostgreSQL через knex.
  • VK-сканер: Сервис для сбора новостей из заданных сообществ ВКонтакте.
  • Nginx: Для проксирования запросов и обслуживания статики.
  • PostgreSQL: Хранение новостей, пользователей и другой информации.

Как добавить новый источник новостей

  1. Добавьте сообщество ВКонтакте в конфиг VK-сканера.
  2. Пропишите соответствие в объекте sourceKeys в server/src/server.js.
  3. Перезапустите VK-сканер и сервер.

Как добавить новость вручную

  1. Авторизуйтесь как администратор.
  2. Перейдите в панель администратора.
  3. Используйте форму добавления новости.

Безопасность

  • Все административные действия защищены авторизацией.
  • Для пользователей используются токены и cookies.

Планы по развитию

  • Добавление новых способов авторизации (например, через VK ID)
  • Увеличение количества источников новостей
  • Реализация раздела с олимпиадами и мероприятиями
  • Возможность комментирования новостей
  • Улучшение мобильной версии

Контакты


Лицензия

Проект распространяется под MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •